diff options
author | Matt Fleming <matt.fleming@intel.com> | 2013-01-03 09:02:37 +0000 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2013-01-30 11:52:11 -0800 |
commit | e0094244e41c4d0c7ad69920681972fc45d8ce34 (patch) | |
tree | 1908d5420877a04429d68d1e091b6b1eefb11185 | |
parent | 83e68189745ad931c2afd45d8ee3303929233e7f (diff) | |
download | linux-3.10-e0094244e41c4d0c7ad69920681972fc45d8ce34.tar.gz linux-3.10-e0094244e41c4d0c7ad69920681972fc45d8ce34.tar.bz2 linux-3.10-e0094244e41c4d0c7ad69920681972fc45d8ce34.zip |
samsung-laptop: Disable on EFI hardware
It has been reported that running this driver on some Samsung laptops
with EFI can cause those machines to become bricked as detailed in the
following report,
https://bugs.launchpad.net/ubuntu-cdimage/+bug/1040557
There have also been reports of this driver causing Machine Check
Exceptions on recent EFI-enabled Samsung laptops,
https://bugzilla.kernel.org/show_bug.cgi?id=47121
So disable it if booting from EFI since this driver relies on
grovelling around in the BIOS memory map which isn't going to work.
Cc: Corentin Chary <corentincj@iksaif.net>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Colin Ian King <colin.king@canonical.com>
Cc: Steve Langasek <steve.langasek@canonical.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
-rw-r--r-- | drivers/platform/x86/samsung-laptop.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c index 71623a2ff3e..d1f03005317 100644 --- a/drivers/platform/x86/samsung-laptop.c +++ b/drivers/platform/x86/samsung-laptop.c @@ -26,6 +26,7 @@ #include <linux/seq_file.h> #include <linux/debugfs.h> #include <linux/ctype.h> +#include <linux/efi.h> #include <acpi/video.h> /* @@ -1544,6 +1545,9 @@ static int __init samsung_init(void) struct samsung_laptop *samsung; int ret; + if (efi_enabled(EFI_BOOT)) + return -ENODEV; + quirks = &samsung_unknown; if (!force && !dmi_check_system(samsung_dmi_table)) return -ENODEV; |