aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/libertas/cmd.c
diff options
context:
space:
mode:
authorPierre Ossman <drzeus-list@drzeus.cx>2007-08-20 12:24:42 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:50:36 -0400
commit794760f750655d987499d7a5034519afc84af63b (patch)
treeb648f2dc26d5fec53deb2849248062b5105dcc32 /drivers/net/wireless/libertas/cmd.c
parentb6e99dd6e2c5262e3c2b976d1d5f2c9405433d9a (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.c2
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;