diff options
| -rw-r--r-- | arch/x86/kernel/reboot.c | 18 | ||||
| -rw-r--r-- | arch/x86/platform/efi/efi.c | 11 |
2 files changed, 24 insertions, 5 deletions
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c index 563ed91e6faa..e643e744e4d8 100644 --- a/arch/x86/kernel/reboot.c +++ b/arch/x86/kernel/reboot.c | |||
| @@ -352,12 +352,28 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = { | |||
| 352 | }, | 352 | }, |
| 353 | { /* Handle problems with rebooting on the Precision M6600. */ | 353 | { /* Handle problems with rebooting on the Precision M6600. */ |
| 354 | .callback = set_pci_reboot, | 354 | .callback = set_pci_reboot, |
| 355 | .ident = "Dell OptiPlex 990", | 355 | .ident = "Dell Precision M6600", |
| 356 | .matches = { | 356 | .matches = { |
| 357 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | 357 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), |
| 358 | DMI_MATCH(DMI_PRODUCT_NAME, "Precision M6600"), | 358 | DMI_MATCH(DMI_PRODUCT_NAME, "Precision M6600"), |
| 359 | }, | 359 | }, |
| 360 | }, | 360 | }, |
| 361 | { /* Handle problems with rebooting on the Dell PowerEdge C6100. */ | ||
| 362 | .callback = set_pci_reboot, | ||
| 363 | .ident = "Dell PowerEdge C6100", | ||
| 364 | .matches = { | ||
| 365 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
| 366 | DMI_MATCH(DMI_PRODUCT_NAME, "C6100"), | ||
| 367 | }, | ||
| 368 | }, | ||
| 369 | { /* Some C6100 machines were shipped with vendor being 'Dell'. */ | ||
| 370 | .callback = set_pci_reboot, | ||
| 371 | .ident = "Dell PowerEdge C6100", | ||
| 372 | .matches = { | ||
| 373 | DMI_MATCH(DMI_SYS_VENDOR, "Dell"), | ||
| 374 | DMI_MATCH(DMI_PRODUCT_NAME, "C6100"), | ||
| 375 | }, | ||
| 376 | }, | ||
| 361 | { } | 377 | { } |
| 362 | }; | 378 | }; |
| 363 | 379 | ||
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c index 90f6ed127096..c7e22ab29a5a 100644 --- a/arch/x86/platform/efi/efi.c +++ b/arch/x86/platform/efi/efi.c | |||
| @@ -912,10 +912,13 @@ void __init efi_enter_virtual_mode(void) | |||
| 912 | 912 | ||
| 913 | for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) { | 913 | for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) { |
| 914 | md = p; | 914 | md = p; |
| 915 | if (!(md->attribute & EFI_MEMORY_RUNTIME) && | 915 | if (!(md->attribute & EFI_MEMORY_RUNTIME)) { |
| 916 | md->type != EFI_BOOT_SERVICES_CODE && | 916 | #ifdef CONFIG_X86_64 |
| 917 | md->type != EFI_BOOT_SERVICES_DATA) | 917 | if (md->type != EFI_BOOT_SERVICES_CODE && |
| 918 | continue; | 918 | md->type != EFI_BOOT_SERVICES_DATA) |
| 919 | #endif | ||
| 920 | continue; | ||
| 921 | } | ||
| 919 | 922 | ||
| 920 | size = md->num_pages << EFI_PAGE_SHIFT; | 923 | size = md->num_pages << EFI_PAGE_SHIFT; |
| 921 | end = md->phys_addr + size; | 924 | end = md->phys_addr + size; |
