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

+21 -9
+5 -3
arch/x86/kernel/apic/x2apic_cluster.c
··· 17 17 return x2apic_enabled(); 18 18 } 19 19 20 - /* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */ 21 - 20 + /* 21 + * need to use more than cpu 0, because we need more vectors when 22 + * MSI-X are used. 23 + */ 22 24 static const struct cpumask *x2apic_target_cpus(void) 23 25 { 24 - return cpumask_of(0); 26 + return cpu_online_mask; 25 27 } 26 28 27 29 /*
+5 -3
arch/x86/kernel/apic/x2apic_phys.c
··· 27 27 return 0; 28 28 } 29 29 30 - /* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */ 31 - 30 + /* 31 + * need to use more than cpu 0, because we need more vectors when 32 + * MSI-X are used. 33 + */ 32 34 static const struct cpumask *x2apic_target_cpus(void) 33 35 { 34 - return cpumask_of(0); 36 + return cpu_online_mask; 35 37 } 36 38 37 39 static void x2apic_vector_allocation_domain(int cpu, struct cpumask *retmask)
+1 -1
arch/x86/kernel/efi.c
··· 354 354 */ 355 355 c16 = tmp = early_ioremap(efi.systab->fw_vendor, 2); 356 356 if (c16) { 357 - for (i = 0; i < sizeof(vendor) && *c16; ++i) 357 + for (i = 0; i < sizeof(vendor) - 1 && *c16; ++i) 358 358 vendor[i] = *c16++; 359 359 vendor[i] = '\0'; 360 360 } else
+9 -1
arch/x86/kernel/reboot.c
··· 405 405 #endif /* CONFIG_X86_32 */ 406 406 407 407 /* 408 - * Apple MacBook5,2 (2009 MacBook) needs reboot=p 408 + * Some Apple MacBook and MacBookPro's needs reboot=p to be able to reboot 409 409 */ 410 410 static int __init set_pci_reboot(const struct dmi_system_id *d) 411 411 { ··· 424 424 .matches = { 425 425 DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."), 426 426 DMI_MATCH(DMI_PRODUCT_NAME, "MacBook5,2"), 427 + }, 428 + }, 429 + { /* Handle problems with rebooting on Apple MacBookPro5,1 */ 430 + .callback = set_pci_reboot, 431 + .ident = "Apple MacBookPro5,1", 432 + .matches = { 433 + DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."), 434 + DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro5,1"), 427 435 }, 428 436 }, 429 437 { }
+1 -1
arch/x86/kernel/vmi_32.c
··· 441 441 ap.ds = __USER_DS; 442 442 ap.es = __USER_DS; 443 443 ap.fs = __KERNEL_PERCPU; 444 - ap.gs = 0; 444 + ap.gs = __KERNEL_STACK_CANARY; 445 445 446 446 ap.eflags = 0; 447 447