aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlegacy/iwl-hcmd.c
diff options
context:
space:
mode:
authorStanislaw Gruszka <sgruszka@redhat.com>2011-09-20 16:49:03 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2011-10-03 11:41:12 -0700
commit111118a4e62d7fbe365cc47ae78e4d9e96b73b6f (patch)
tree63db4a1ea728d52e0c60c41d07f8394b0136e4e6 /drivers/net/wireless/iwlegacy/iwl-hcmd.c
parentcc54ab32355ef870a14787d9ad7d5e0459b7007a (diff)
downloadkernel_samsung_smdk4412-111118a4e62d7fbe365cc47ae78e4d9e96b73b6f.zip
kernel_samsung_smdk4412-111118a4e62d7fbe365cc47ae78e4d9e96b73b6f.tar.gz
kernel_samsung_smdk4412-111118a4e62d7fbe365cc47ae78e4d9e96b73b6f.tar.bz2
iwlegacy: do not use interruptible waits
commit 65d0f19e583e80e42b1c67c166bfc4dfdf6ab693 upstream. iwlegacy version of fix: commit effd4d9aece9184f526e6556786a94d335e38b71 Author: Johannes Berg <johannes.berg@intel.com> Date: Thu Sep 15 11:46:52 2011 -0700 iwlagn: do not use interruptible waits Since the dawn of its time, iwlwifi has used interruptible waits to wait for synchronous commands and firmware loading. This leads to "interesting" bugs, because it can't actually handle the interruptions; for example when a command sending is interrupted it will assume the command completed fully, and then leave it pending, which leads to all kinds of trouble when the command finishes later. Since there's no easy way to gracefully deal with interruptions, fix the driver to not use interruptible waits. This at least fixes the error iwlagn 0000:02:00.0: Error: Response NULL in 'REPLY_SCAN_ABORT_CMD' I have seen in P2P testing, but it is likely that there are other errors caused by this. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/net/wireless/iwlegacy/iwl-hcmd.c')
-rw-r--r--drivers/net/wireless/iwlegacy/iwl-hcmd.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlegacy/iwl-hcmd.c b/drivers/net/wireless/iwlegacy/iwl-hcmd.c
index 62b4b09..ce1fc9f 100644
--- a/drivers/net/wireless/iwlegacy/iwl-hcmd.c
+++ b/drivers/net/wireless/iwlegacy/iwl-hcmd.c
@@ -167,7 +167,7 @@ int iwl_legacy_send_cmd_sync(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
goto out;
}
- ret = wait_event_interruptible_timeout(priv->wait_command_queue,
+ ret = wait_event_timeout(priv->wait_command_queue,
!test_bit(STATUS_HCMD_ACTIVE, &priv->status),
HOST_COMPLETE_TIMEOUT);
if (!ret) {