Commit 413dd876 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'x86-fixes-for-linus' of...

Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86: fix buffer overflow in efi_init()
  x86: Add quirk to make Apple MacBookPro5,1 use reboot=pci
  x86: Fix MSI-X initialization by using online_mask for x2apic target_cpus
  x86: Fix VMI && stack protector
parents 713e3e18 fdb8a427
...@@ -17,11 +17,13 @@ static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id) ...@@ -17,11 +17,13 @@ static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
return x2apic_enabled(); return x2apic_enabled();
} }
/* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */ /*
* need to use more than cpu 0, because we need more vectors when
* MSI-X are used.
*/
static const struct cpumask *x2apic_target_cpus(void) static const struct cpumask *x2apic_target_cpus(void)
{ {
return cpumask_of(0); return cpu_online_mask;
} }
/* /*
......
...@@ -27,11 +27,13 @@ static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id) ...@@ -27,11 +27,13 @@ static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
return 0; return 0;
} }
/* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */ /*
* need to use more than cpu 0, because we need more vectors when
* MSI-X are used.
*/
static const struct cpumask *x2apic_target_cpus(void) static const struct cpumask *x2apic_target_cpus(void)
{ {
return cpumask_of(0); return cpu_online_mask;
} }
static void x2apic_vector_allocation_domain(int cpu, struct cpumask *retmask) static void x2apic_vector_allocation_domain(int cpu, struct cpumask *retmask)
......
...@@ -354,7 +354,7 @@ void __init efi_init(void) ...@@ -354,7 +354,7 @@ void __init efi_init(void)
*/ */
c16 = tmp = early_ioremap(efi.systab->fw_vendor, 2); c16 = tmp = early_ioremap(efi.systab->fw_vendor, 2);
if (c16) { if (c16) {
for (i = 0; i < sizeof(vendor) && *c16; ++i) for (i = 0; i < sizeof(vendor) - 1 && *c16; ++i)
vendor[i] = *c16++; vendor[i] = *c16++;
vendor[i] = '\0'; vendor[i] = '\0';
} else } else
......
...@@ -405,7 +405,7 @@ EXPORT_SYMBOL(machine_real_restart); ...@@ -405,7 +405,7 @@ EXPORT_SYMBOL(machine_real_restart);
#endif /* CONFIG_X86_32 */ #endif /* CONFIG_X86_32 */
/* /*
* Apple MacBook5,2 (2009 MacBook) needs reboot=p * Some Apple MacBook and MacBookPro's needs reboot=p to be able to reboot
*/ */
static int __init set_pci_reboot(const struct dmi_system_id *d) static int __init set_pci_reboot(const struct dmi_system_id *d)
{ {
...@@ -426,6 +426,14 @@ static struct dmi_system_id __initdata pci_reboot_dmi_table[] = { ...@@ -426,6 +426,14 @@ static struct dmi_system_id __initdata pci_reboot_dmi_table[] = {
DMI_MATCH(DMI_PRODUCT_NAME, "MacBook5,2"), DMI_MATCH(DMI_PRODUCT_NAME, "MacBook5,2"),
}, },
}, },
{ /* Handle problems with rebooting on Apple MacBookPro5,1 */
.callback = set_pci_reboot,
.ident = "Apple MacBookPro5,1",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro5,1"),
},
},
{ } { }
}; };
......
...@@ -441,7 +441,7 @@ vmi_startup_ipi_hook(int phys_apicid, unsigned long start_eip, ...@@ -441,7 +441,7 @@ vmi_startup_ipi_hook(int phys_apicid, unsigned long start_eip,
ap.ds = __USER_DS; ap.ds = __USER_DS;
ap.es = __USER_DS; ap.es = __USER_DS;
ap.fs = __KERNEL_PERCPU; ap.fs = __KERNEL_PERCPU;
ap.gs = 0; ap.gs = __KERNEL_STACK_CANARY;
ap.eflags = 0; ap.eflags = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment