瀏覽代碼

ibm_rtl: _RTL_ is not available in UEFI mode

Some of the IBM servers that are supported by ibm_rtl
can run in both Legacy mode (BIOS) and in UEFI mode.
When running in UEFI mode, it is possible that the
EBDA table exists but cannot be mapped and reports
errors.  We need to make sure that by default we don't
try to probe the machines if they are running in UEFI
mode.

Signed-off-by: Vernon Mauery <vernux@us.ibm.com>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
Vernon Mauery 14 年之前
父節點
當前提交
1d37db77c1
共有 1 個文件被更改,包括 2 次插入1 次删除
  1. 2 1
      drivers/platform/x86/ibm_rtl.c

+ 2 - 1
drivers/platform/x86/ibm_rtl.c

@@ -28,6 +28,7 @@
 #include <linux/io.h>
 #include <linux/io.h>
 #include <linux/sysdev.h>
 #include <linux/sysdev.h>
 #include <linux/dmi.h>
 #include <linux/dmi.h>
+#include <linux/efi.h>
 #include <linux/mutex.h>
 #include <linux/mutex.h>
 #include <asm/bios_ebda.h>
 #include <asm/bios_ebda.h>
 
 
@@ -238,7 +239,7 @@ static int __init ibm_rtl_init(void) {
 	if (force)
 	if (force)
 		pr_warning("ibm-rtl: module loaded by force\n");
 		pr_warning("ibm-rtl: module loaded by force\n");
 	/* first ensure that we are running on IBM HW */
 	/* first ensure that we are running on IBM HW */
-	else if (!dmi_check_system(ibm_rtl_dmi_table))
+	else if (efi_enabled || !dmi_check_system(ibm_rtl_dmi_table))
 		return -ENODEV;
 		return -ENODEV;
 
 
 	/* Get the address for the Extended BIOS Data Area */
 	/* Get the address for the Extended BIOS Data Area */