diff options
author | David Woodhouse <dwmw2@infradead.org> | 2007-12-15 19:33:43 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:07:37 -0500 |
commit | 2a345099a4fbe551a1982630b3d89c85fa5a341d (patch) | |
tree | 6556158a8b8b3f63385e36a80b9b7d7f58e8fc92 /drivers/net/wireless/libertas/cmdresp.c | |
parent | 9fae899c2b5dc224042da63b14118abdb22ae9b6 (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.c | 6 |
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; |