diff options
author | Ming Lei <ming.lei@canonical.com> | 2013-06-03 22:01:13 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-06-04 13:24:40 -0400 |
commit | ddf1f0648e8cd6d2208b1d3bfabd6501f5a9407f (patch) | |
tree | 4af7376a3b1913efcc8157d2e66b4241a4d4ff5b /drivers/base/firmware_class.c | |
parent | 17c057a35f2672ba2e4d4f9bd7b5652ca0e11b92 (diff) |
firmware loader: fix build failure with !CONFIG_FW_LOADER_USER_HELPER
This patch fixes one build failure which is introduced by the patch
below:
driver core: firmware loader: kill FW_ACTION_NOHOTPLUG requests
before suspend
When CONFIG_FW_LOADER_USER_HELPER is unset, kill_requests_without_uevent()
should be nop because no userspace loading is involved.
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/base/firmware_class.c')
-rw-r--r-- | drivers/base/firmware_class.c | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index c4150431185f..c31fc295500a 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c | |||
@@ -916,6 +916,21 @@ static int fw_load_from_user_helper(struct firmware *firmware, | |||
916 | fw_priv->buf = firmware->priv; | 916 | fw_priv->buf = firmware->priv; |
917 | return _request_firmware_load(fw_priv, uevent, timeout); | 917 | return _request_firmware_load(fw_priv, uevent, timeout); |
918 | } | 918 | } |
919 | |||
920 | /* kill pending requests without uevent to avoid blocking suspend */ | ||
921 | static void kill_requests_without_uevent(void) | ||
922 | { | ||
923 | struct firmware_buf *buf; | ||
924 | struct firmware_buf *next; | ||
925 | |||
926 | mutex_lock(&fw_lock); | ||
927 | list_for_each_entry_safe(buf, next, &pending_fw_head, pending_list) { | ||
928 | if (!buf->need_uevent) | ||
929 | fw_load_abort(buf); | ||
930 | } | ||
931 | mutex_unlock(&fw_lock); | ||
932 | } | ||
933 | |||
919 | #else /* CONFIG_FW_LOADER_USER_HELPER */ | 934 | #else /* CONFIG_FW_LOADER_USER_HELPER */ |
920 | static inline int | 935 | static inline int |
921 | fw_load_from_user_helper(struct firmware *firmware, const char *name, | 936 | fw_load_from_user_helper(struct firmware *firmware, const char *name, |
@@ -928,6 +943,8 @@ fw_load_from_user_helper(struct firmware *firmware, const char *name, | |||
928 | /* No abort during direct loading */ | 943 | /* No abort during direct loading */ |
929 | #define is_fw_load_aborted(buf) false | 944 | #define is_fw_load_aborted(buf) false |
930 | 945 | ||
946 | static inline void kill_requests_without_uevent(void) { } | ||
947 | |||
931 | #endif /* CONFIG_FW_LOADER_USER_HELPER */ | 948 | #endif /* CONFIG_FW_LOADER_USER_HELPER */ |
932 | 949 | ||
933 | 950 | ||
@@ -1414,20 +1431,6 @@ static void __device_uncache_fw_images(void) | |||
1414 | spin_unlock(&fwc->name_lock); | 1431 | spin_unlock(&fwc->name_lock); |
1415 | } | 1432 | } |
1416 | 1433 | ||
1417 | /* kill pending requests without uevent to avoid blocking suspend */ | ||
1418 | static void kill_requests_without_uevent(void) | ||
1419 | { | ||
1420 | struct firmware_buf *buf; | ||
1421 | struct firmware_buf *next; | ||
1422 | |||
1423 | mutex_lock(&fw_lock); | ||
1424 | list_for_each_entry_safe(buf, next, &pending_fw_head, pending_list) { | ||
1425 | if (!buf->need_uevent) | ||
1426 | fw_load_abort(buf); | ||
1427 | } | ||
1428 | mutex_unlock(&fw_lock); | ||
1429 | } | ||
1430 | |||
1431 | /** | 1434 | /** |
1432 | * device_cache_fw_images - cache devices' firmware | 1435 | * device_cache_fw_images - cache devices' firmware |
1433 | * | 1436 | * |