aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/libertas/cmdresp.c
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@infradead.org>2007-12-15 19:33:43 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:07:37 -0500
commit2a345099a4fbe551a1982630b3d89c85fa5a341d (patch)
tree6556158a8b8b3f63385e36a80b9b7d7f58e8fc92 /drivers/net/wireless/libertas/cmdresp.c
parent9fae899c2b5dc224042da63b14118abdb22ae9b6 (diff)
libertas: handle command timeout in main thread instead of directly in timer
And handle the case where it times out more than once, too, instead of locking up for ever. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/cmdresp.c')
-rw-r--r--drivers/net/wireless/libertas/cmdresp.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/libertas/cmdresp.c b/drivers/net/wireless/libertas/cmdresp.c
index 4c22e784951..ef63c376c55 100644
--- a/drivers/net/wireless/libertas/cmdresp.c
+++ b/drivers/net/wireless/libertas/cmdresp.c
@@ -667,6 +667,12 @@ int lbs_process_rx_command(struct lbs_private *priv)
667 667
668 /* Now we got response from FW, cancel the command timer */ 668 /* Now we got response from FW, cancel the command timer */
669 del_timer(&priv->command_timer); 669 del_timer(&priv->command_timer);
670 priv->cmd_timed_out = 0;
671 if (priv->nr_retries) {
672 lbs_pr_info("Received result %x to command %x after %d retries\n",
673 result, curcmd, priv->nr_retries);
674 priv->nr_retries = 0;
675 }
670 676
671 /* Store the response code to cur_cmd_retcode. */ 677 /* Store the response code to cur_cmd_retcode. */
672 priv->cur_cmd_retcode = result; 678 priv->cur_cmd_retcode = result;