diff options
author | Pierre Ossman <drzeus-list@drzeus.cx> | 2007-08-20 12:24:42 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 19:50:36 -0400 |
commit | 794760f750655d987499d7a5034519afc84af63b (patch) | |
tree | b648f2dc26d5fec53deb2849248062b5105dcc32 /drivers/net/wireless/libertas/cmd.c | |
parent | b6e99dd6e2c5262e3c2b976d1d5f2c9405433d9a (diff) |
[PATCH] libertas: properly end commands on hardware failure
Make sure that errors reported by the hardware layer is properly
handled. Otherwise commands tend to get stuck in limbo.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/cmd.c')
-rw-r--r-- | drivers/net/wireless/libertas/cmd.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/libertas/cmd.c b/drivers/net/wireless/libertas/cmd.c index 98092b995352..33dbed09fc72 100644 --- a/drivers/net/wireless/libertas/cmd.c +++ b/drivers/net/wireless/libertas/cmd.c | |||
@@ -1009,7 +1009,9 @@ static int DownloadcommandToStation(wlan_private * priv, | |||
1009 | if (ret != 0) { | 1009 | if (ret != 0) { |
1010 | lbs_deb_host("DNLD_CMD: hw_host_to_card failed\n"); | 1010 | lbs_deb_host("DNLD_CMD: hw_host_to_card failed\n"); |
1011 | spin_lock_irqsave(&adapter->driver_lock, flags); | 1011 | spin_lock_irqsave(&adapter->driver_lock, flags); |
1012 | adapter->cur_cmd_retcode = ret; | ||
1012 | __libertas_cleanup_and_insert_cmd(priv, adapter->cur_cmd); | 1013 | __libertas_cleanup_and_insert_cmd(priv, adapter->cur_cmd); |
1014 | adapter->nr_cmd_pending--; | ||
1013 | adapter->cur_cmd = NULL; | 1015 | adapter->cur_cmd = NULL; |
1014 | spin_unlock_irqrestore(&adapter->driver_lock, flags); | 1016 | spin_unlock_irqrestore(&adapter->driver_lock, flags); |
1015 | goto done; | 1017 | goto done; |