Commit e0094244e41c4d0c7ad69920681972fc45d8ce34

Authored by Matt Fleming
Committed by H. Peter Anvin
1 parent 83e6818974

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>

Showing 1 changed file with 4 additions and 0 deletions Side-by-side Diff

drivers/platform/x86/samsung-laptop.c
... ... @@ -26,6 +26,7 @@
26 26 #include <linux/seq_file.h>
27 27 #include <linux/debugfs.h>
28 28 #include <linux/ctype.h>
  29 +#include <linux/efi.h>
29 30 #include <acpi/video.h>
30 31  
31 32 /*
... ... @@ -1543,6 +1544,9 @@
1543 1544 {
1544 1545 struct samsung_laptop *samsung;
1545 1546 int ret;
  1547 +
  1548 + if (efi_enabled(EFI_BOOT))
  1549 + return -ENODEV;
1546 1550  
1547 1551 quirks = &samsung_unknown;
1548 1552 if (!force && !dmi_check_system(samsung_dmi_table))