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
This commit is contained in:
@@ -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)
|
|||||||
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)
|
|||||||
*/
|
*/
|
||||||
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);
|
|||||||
#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[] = {
|
|||||||
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,
|
|||||||
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;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user