diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index ac350c518e0c..900b139668e8 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c @@ -562,6 +562,22 @@ static void fw_load_abort(struct firmware_priv *fw_priv) static LIST_HEAD(pending_fw_head); +#ifdef CONFIG_PM_SLEEP +/* kill pending requests without uevent to avoid blocking suspend */ +static void kill_requests_without_uevent(void) +{ + struct firmware_buf *buf; + struct firmware_buf *next; + + mutex_lock(&fw_lock); + list_for_each_entry_safe(buf, next, &pending_fw_head, pending_list) { + if (!buf->need_uevent) + __fw_load_abort(buf); + } + mutex_unlock(&fw_lock); +} +#endif + /* reboot notifier for avoid deadlock with usermode_lock */ static int fw_shutdown_notify(struct notifier_block *unused1, unsigned long unused2, void *unused3) @@ -1048,22 +1064,6 @@ static int fw_load_from_user_helper(struct firmware *firmware, return _request_firmware_load(fw_priv, opt_flags, timeout); } -#ifdef CONFIG_PM_SLEEP -/* kill pending requests without uevent to avoid blocking suspend */ -static void kill_requests_without_uevent(void) -{ - struct firmware_buf *buf; - struct firmware_buf *next; - - mutex_lock(&fw_lock); - list_for_each_entry_safe(buf, next, &pending_fw_head, pending_list) { - if (!buf->need_uevent) - __fw_load_abort(buf); - } - mutex_unlock(&fw_lock); -} -#endif - #else /* CONFIG_FW_LOADER_USER_HELPER */ static inline int fw_load_from_user_helper(struct firmware *firmware, const char *name,