| .. | .. |
|---|
| 106 | 106 | |
|---|
| 107 | 107 | static LIST_HEAD(pending_fw_head); |
|---|
| 108 | 108 | |
|---|
| 109 | | -void kill_pending_fw_fallback_reqs(bool only_kill_custom) |
|---|
| 109 | +void kill_pending_fw_fallback_reqs(bool kill_all) |
|---|
| 110 | 110 | { |
|---|
| 111 | 111 | struct fw_priv *fw_priv; |
|---|
| 112 | 112 | struct fw_priv *next; |
|---|
| .. | .. |
|---|
| 114 | 114 | mutex_lock(&fw_lock); |
|---|
| 115 | 115 | list_for_each_entry_safe(fw_priv, next, &pending_fw_head, |
|---|
| 116 | 116 | pending_list) { |
|---|
| 117 | | - if (!fw_priv->need_uevent || !only_kill_custom) |
|---|
| 117 | + if (kill_all || !fw_priv->need_uevent) |
|---|
| 118 | 118 | __fw_load_abort(fw_priv); |
|---|
| 119 | 119 | } |
|---|
| 120 | + |
|---|
| 121 | + if (kill_all) |
|---|
| 122 | + fw_load_abort_all = true; |
|---|
| 123 | + |
|---|
| 120 | 124 | mutex_unlock(&fw_lock); |
|---|
| 121 | 125 | } |
|---|
| 122 | 126 | |
|---|
| .. | .. |
|---|
| 511 | 515 | } |
|---|
| 512 | 516 | |
|---|
| 513 | 517 | mutex_lock(&fw_lock); |
|---|
| 514 | | - if (fw_state_is_aborted(fw_priv)) { |
|---|
| 518 | + if (fw_load_abort_all || fw_state_is_aborted(fw_priv)) { |
|---|
| 515 | 519 | mutex_unlock(&fw_lock); |
|---|
| 516 | 520 | retval = -EINTR; |
|---|
| 517 | 521 | goto out; |
|---|