Skip to contentSkip to conversation

driver core: firmware loader: fix build error

PATCH In review Arnd Bergmann 2 participants 2 messages Jun 4, 2013 Driver core

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 driver core: firmware loader: fix build error

Patch af5bc11e9 "driver core: firmware loader: kill FW_ACTION_NOHOTPLUG requests before suspend" caused a regression for the case where CONFIG_FW_LOADER_USER_HELPER is not enabled, because it adds references to code that is not available in that configuration:

drivers/base/firmware_class.c: In function 'kill_requests_without_uevent':
drivers/base/firmware_class.c:1424:49: error: 'struct firmware_buf' has no member named 'pending_list'
list_for_each_entry_safe(buf, next, &pending_fw_head, pending_list) {
drivers/base/firmware_class.c:1426:5: error: implicit declaration of function 'fw_load_abort' [-Werror=implicit-function-declaration]

This fixes the build error by making the new code conditional as well. Found using ARM ape6evm_defconfig on today's linux-next.

Cc Ming Lei <[email protected]>
Cc Takashi Iwai <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
drivers/base/firmware_class.c +2 -0
index c415043..6cca468 100644
@@ -1417,6 +1417,7 @@ static void __device_uncache_fw_images(void)
 /* kill pending requests without uevent to avoid blocking suspend */
 static void kill_requests_without_uevent(void)
 {
+#ifdef CONFIG_FW_LOADER_USER_HELPER
 	struct firmware_buf *buf;
 	struct firmware_buf *next;
 
@@ -1426,6 +1427,7 @@ static void kill_requests_without_uevent(void)
 			 fw_load_abort(buf);
 	}
 	mutex_unlock(&fw_lock);
+#endif
 }
 
 /**
#1 lore raw

Hi Arnd,

Thanks for the fix.

Quoted 31 lines · Arnd Bergmann

Patch af5bc11e9 "driver core: firmware loader: kill FW_ACTION_NOHOTPLUG requests before suspend" caused a regression for the case where CONFIG_FW_LOADER_USER_HELPER is not enabled, because it adds references to code that is not available in that configuration:

drivers/base/firmware_class.c: In function 'kill_requests_without_uevent':
drivers/base/firmware_class.c:1424:49: error: 'struct firmware_buf' has no member named 'pending_list'
list_for_each_entry_safe(buf, next, &pending_fw_head, pending_list) {
drivers/base/firmware_class.c:1426:5: error: implicit declaration of function 'fw_load_abort' [-Werror=implicit-function-declaration]

This fixes the build error by making the new code conditional as well. Found using ARM ape6evm_defconfig on today's linux-next.

Cc Ming Lei <[email protected]>
Cc Takashi Iwai <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
drivers/base/firmware_class.c +1 -0
index c415043..6cca468 100644
@@ -1417,6 +1417,7 @@ static void __device_uncache_fw_images(void)
 /* kill pending requests without uevent to avoid blocking suspend */
 static void kill_requests_without_uevent(void)
 {
+#ifdef CONFIG_FW_LOADER_USER_HELPER
        struct firmware_buf *buf;
        struct firmware_buf *next;
 

drivers/base/firmware_class.c static void kill_requests_without_uevent(void) · line 1430

Quoted 4 lines
drivers/base/firmware_class.c +1 -0
@@ -1426,6 +1427,7 @@ static void kill_requests_without_uevent(void)
                         fw_load_abort(buf);
        }
        mutex_unlock(&fw_lock);
+#endif

Fenggang's kbuild robot captured the build failure, and a similar fix patch has been posted out:

      http://marc.info/?l=linux-kernel&m=137031139632564&w=2

Thanks,
--
Ming Lei