mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-09 07:23:14 +00:00
firmware_loader: Refactor kill_pending_fw_fallback_reqs()
Rename 'only_kill_custom' and refactor logic related to it to be more meaningful. Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com> Acked-by: Luis Chamberlain <mcgrof@kernel.org> Link: https://lore.kernel.org/r/1698330459-31776-1-git-send-email-quic_mojha@quicinc.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0217f3944a
commit
87ffa98eee
@ -46,7 +46,7 @@ static inline int fw_sysfs_wait_timeout(struct fw_priv *fw_priv, long timeout)
|
|||||||
|
|
||||||
static LIST_HEAD(pending_fw_head);
|
static LIST_HEAD(pending_fw_head);
|
||||||
|
|
||||||
void kill_pending_fw_fallback_reqs(bool only_kill_custom)
|
void kill_pending_fw_fallback_reqs(bool kill_all)
|
||||||
{
|
{
|
||||||
struct fw_priv *fw_priv;
|
struct fw_priv *fw_priv;
|
||||||
struct fw_priv *next;
|
struct fw_priv *next;
|
||||||
@ -54,7 +54,7 @@ void kill_pending_fw_fallback_reqs(bool only_kill_custom)
|
|||||||
mutex_lock(&fw_lock);
|
mutex_lock(&fw_lock);
|
||||||
list_for_each_entry_safe(fw_priv, next, &pending_fw_head,
|
list_for_each_entry_safe(fw_priv, next, &pending_fw_head,
|
||||||
pending_list) {
|
pending_list) {
|
||||||
if (!fw_priv->need_uevent || !only_kill_custom)
|
if (kill_all || !fw_priv->need_uevent)
|
||||||
__fw_load_abort(fw_priv);
|
__fw_load_abort(fw_priv);
|
||||||
}
|
}
|
||||||
mutex_unlock(&fw_lock);
|
mutex_unlock(&fw_lock);
|
||||||
|
@ -13,7 +13,7 @@ int firmware_fallback_sysfs(struct firmware *fw, const char *name,
|
|||||||
struct device *device,
|
struct device *device,
|
||||||
u32 opt_flags,
|
u32 opt_flags,
|
||||||
int ret);
|
int ret);
|
||||||
void kill_pending_fw_fallback_reqs(bool only_kill_custom);
|
void kill_pending_fw_fallback_reqs(bool kill_all);
|
||||||
|
|
||||||
void fw_fallback_set_cache_timeout(void);
|
void fw_fallback_set_cache_timeout(void);
|
||||||
void fw_fallback_set_default_timeout(void);
|
void fw_fallback_set_default_timeout(void);
|
||||||
@ -28,7 +28,7 @@ static inline int firmware_fallback_sysfs(struct firmware *fw, const char *name,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void kill_pending_fw_fallback_reqs(bool only_kill_custom) { }
|
static inline void kill_pending_fw_fallback_reqs(bool kill_all) { }
|
||||||
static inline void fw_fallback_set_cache_timeout(void) { }
|
static inline void fw_fallback_set_cache_timeout(void) { }
|
||||||
static inline void fw_fallback_set_default_timeout(void) { }
|
static inline void fw_fallback_set_default_timeout(void) { }
|
||||||
#endif /* CONFIG_FW_LOADER_USER_HELPER */
|
#endif /* CONFIG_FW_LOADER_USER_HELPER */
|
||||||
|
@ -1524,10 +1524,10 @@ static int fw_pm_notify(struct notifier_block *notify_block,
|
|||||||
case PM_SUSPEND_PREPARE:
|
case PM_SUSPEND_PREPARE:
|
||||||
case PM_RESTORE_PREPARE:
|
case PM_RESTORE_PREPARE:
|
||||||
/*
|
/*
|
||||||
* kill pending fallback requests with a custom fallback
|
* Here, kill pending fallback requests will only kill
|
||||||
* to avoid stalling suspend.
|
* non-uevent firmware request to avoid stalling suspend.
|
||||||
*/
|
*/
|
||||||
kill_pending_fw_fallback_reqs(true);
|
kill_pending_fw_fallback_reqs(false);
|
||||||
device_cache_fw_images();
|
device_cache_fw_images();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1612,7 +1612,7 @@ static int fw_shutdown_notify(struct notifier_block *unused1,
|
|||||||
* Kill all pending fallback requests to avoid both stalling shutdown,
|
* Kill all pending fallback requests to avoid both stalling shutdown,
|
||||||
* and avoid a deadlock with the usermode_lock.
|
* and avoid a deadlock with the usermode_lock.
|
||||||
*/
|
*/
|
||||||
kill_pending_fw_fallback_reqs(false);
|
kill_pending_fw_fallback_reqs(true);
|
||||||
|
|
||||||
return NOTIFY_DONE;
|
return NOTIFY_DONE;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user