diff options
Diffstat (limited to 'drivers/base/firmware_class.c')
-rw-r--r-- | drivers/base/firmware_class.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index 96d994a35372..5870ec35efe6 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c | |||
@@ -927,6 +927,13 @@ static int _request_firmware_load(struct firmware_priv *fw_priv, | |||
927 | retval = wait_for_completion_interruptible(&buf->completion); | 927 | retval = wait_for_completion_interruptible(&buf->completion); |
928 | 928 | ||
929 | cancel_delayed_work_sync(&fw_priv->timeout_work); | 929 | cancel_delayed_work_sync(&fw_priv->timeout_work); |
930 | |||
931 | if (retval == -ERESTARTSYS) { | ||
932 | mutex_lock(&fw_lock); | ||
933 | fw_load_abort(fw_priv); | ||
934 | mutex_unlock(&fw_lock); | ||
935 | } | ||
936 | |||
930 | if (is_fw_load_aborted(buf)) | 937 | if (is_fw_load_aborted(buf)) |
931 | retval = -EAGAIN; | 938 | retval = -EAGAIN; |
932 | else if (!buf->data) | 939 | else if (!buf->data) |