[PATCH] libertas: properly end commands on hardware failure
authorPierre Ossman <drzeus-list@drzeus.cx>
Mon, 20 Aug 2007 16:24:42 +0000 (12:24 -0400)
committerDavid S. Miller <davem@sunset.davemloft.net>
Wed, 10 Oct 2007 23:50:36 +0000 (16:50 -0700)
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>
drivers/net/wireless/libertas/cmd.c

index 98092b9..33dbed0 100644 (file)
@@ -1009,7 +1009,9 @@ static int DownloadcommandToStation(wlan_private * priv,
        if (ret != 0) {
                lbs_deb_host("DNLD_CMD: hw_host_to_card failed\n");
                spin_lock_irqsave(&adapter->driver_lock, flags);
+               adapter->cur_cmd_retcode = ret;
                __libertas_cleanup_and_insert_cmd(priv, adapter->cur_cmd);
+               adapter->nr_cmd_pending--;
                adapter->cur_cmd = NULL;
                spin_unlock_irqrestore(&adapter->driver_lock, flags);
                goto done;