[PATCH] We're getting efi_runtime build warnings with recent kernels:

Colin King colin.king at canonical.com
Fri Jul 5 12:08:06 UTC 2013


From: Colin Ian King <colin.king at canonical.com>

make -C /lib/modules/`uname -r`/build M=`pwd` modules
make[1]: Entering directory `/usr/src/linux-headers-3.8.0-25-generic'
  CC [M] /home/king/tmp/fwts/efi_runtime/efi_runtime.o
/home/king/tmp/fwts/efi_runtime/efi_runtime.c: In function ‘efi_runtime_init’:
/home/king/tmp/fwts/efi_runtime/efi_runtime.c:364:6: warning: the address of ‘efi_enabled’ will always evaluate as ‘true’ [-Waddress]

This occurs because of kernel commit 83e681897 which turned efi_enabled from an integer into a function, hence efi_enabled will always now evaluate as true.
The commit introduced macro EFI_RUNTIME_SERVICES so if this is defined we
call efi_enabled() otherwise efi_enabled is a plain int.  So use this macro
to determine if we are using historic or new efi_enabled for different kernel
versions.

Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
 efi_runtime/efi_runtime.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/efi_runtime/efi_runtime.c b/efi_runtime/efi_runtime.c
index 63fea7b..73171df 100644
--- a/efi_runtime/efi_runtime.c
+++ b/efi_runtime/efi_runtime.c
@@ -34,6 +34,13 @@ MODULE_AUTHOR("Ivan Hu");
 MODULE_DESCRIPTION("EFI Runtime Driver");
 MODULE_LICENSE("GPL");
 
+/* commit 83e681897 turned efi_enabled into a function, so abstract it */
+#ifdef EFI_RUNTIME_SERVICES
+#define EFI_RUNTIME_ENABLED	efi_enabled(EFI_RUNTIME_SERVICES)
+#else
+#define EFI_RUNTIME_ENABLED	efi_enabled
+#endif
+
 static void convert_from_efi_time(efi_time_t *eft, EFI_TIME *time)
 {
 	memset(time, 0, sizeof(EFI_TIME));
@@ -361,8 +368,10 @@ static int __init efi_runtime_init(void)
 
 	printk(KERN_INFO "EFI_RUNTIME Driver v%s\n", EFI_FWTS_EFI_VERSION);
 
-	if (!efi_enabled)
+	if (!EFI_RUNTIME_ENABLED) {
+		printk(KERN_INFO "EFI runtime services not enabled.\n");
 		return -ENODEV;
+	}
 
 	ret = misc_register(&efi_runtime_dev);
 	if (ret) {
-- 
1.8.1.2




More information about the fwts-devel mailing list