printk(KERN_WARNING PREFIX "x2apic entry ignored\n");
else
acpi_register_lapic(apic_id, enabled);
-#else
+#elif !defined(CONFIG_XEN)
printk(KERN_WARNING PREFIX "x2apic entry ignored\n");
#endif
#define dbg_restore_debug_regs()
#endif /* ! CONFIG_KGDB */
-#ifndef CONFIG_XEN
-/*
- * Prints an error where the NUMA and configured core-number mismatch and the
- * platform didn't override this to fix it up
- */
-void __cpuinit x86_default_fixup_cpu_id(struct cpuinfo_x86 *c, int node)
-{
- pr_err("NUMA core number %d differs from configured core number %d\n", node, c->phys_proc_id);
-}
-#endif
-
/*
* cpu_init() initializes state that is per-CPU. Some data is already
* initialized (naturally) in the bootstrap process, such as the GDT
#ifdef CONFIG_XEN
#ifdef CONFIG_KEXEC
xen_machine_kexec_setup_resources();
+# define kexec_enabled() (crashk_res.start < crashk_res.end)
+#else
+# define kexec_enabled() 0
#endif
p2m_pages = max_pfn;
if (xen_start_info->nr_pages > max_pfn) {
PFN_PHYS(PFN_UP(xen_start_info->nr_pages *
sizeof(unsigned long))));
-#ifndef CONFIG_KEXEC
- if (!is_initial_xendomain())
-#endif
+ if (!is_initial_xendomain() || kexec_enabled())
setup_pfn_to_mfn_frame_list(__alloc_bootmem);
}
MODULE_PARM_DESC(tjmax, "TjMax value in degrees Celsius");
#define BASE_SYSFS_ATTR_NO 2 /* Sysfs Base attr no for coretemp */
-#define NUM_REAL_CORES 16 /* Number of Real cores per cpu */
+#define NUM_REAL_CORES 32 /* Number of Real cores per cpu */
#define CORETEMP_NAME_LENGTH 17 /* String Length of attrs */
#define MAX_CORE_ATTRS 4 /* Maximum no of basic attrs */
#define TOTAL_ATTRS (MAX_CORE_ATTRS + 1)
return;
indx = CORE_ATTR_NO(cpu_core_id);
+ /* The core id is too big, just return */
+ if (indx > MAX_CORE_DATA - 1)
+ return;
+
if (pdata->core_data[indx] && pdata->core_data[indx]->cpu == cpu)
coretemp_remove_core(pdata, &pdev->dev, indx);