aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/libertas/cmdresp.c
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@infradead.org>2007-12-12 00:41:51 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:07:00 -0500
commita27b9f96f21a2f15c423cca745f65de3db61e364 (patch)
tree31703fb9de80eb03279eaeb730d279296979cc26 /drivers/net/wireless/libertas/cmdresp.c
parent23d36eec263d2c913ee651dc43472524397e4a0b (diff)
libertas: slight cleanup of netif queue stop/wake
In particular, we shouldn't be waking the queues in lbs_host_to_card_done() any more. 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.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/net/wireless/libertas/cmdresp.c b/drivers/net/wireless/libertas/cmdresp.c
index 53f73c4abdd0..a809f8f9997b 100644
--- a/drivers/net/wireless/libertas/cmdresp.c
+++ b/drivers/net/wireless/libertas/cmdresp.c
@@ -43,14 +43,15 @@ void lbs_mac_event_disconnected(struct lbs_private *priv)
43 msleep_interruptible(1000); 43 msleep_interruptible(1000);
44 wireless_send_event(priv->dev, SIOCGIWAP, &wrqu, NULL); 44 wireless_send_event(priv->dev, SIOCGIWAP, &wrqu, NULL);
45 45
46 /* Free Tx and Rx packets */
47 kfree_skb(priv->currenttxskb);
48 priv->currenttxskb = NULL;
49
50 /* report disconnect to upper layer */ 46 /* report disconnect to upper layer */
51 netif_stop_queue(priv->dev); 47 netif_stop_queue(priv->dev);
52 netif_carrier_off(priv->dev); 48 netif_carrier_off(priv->dev);
53 49
50 /* Free Tx and Rx packets */
51 kfree_skb(priv->currenttxskb);
52 priv->currenttxskb = NULL;
53 priv->tx_pending_len = 0;
54
54 /* reset SNR/NF/RSSI values */ 55 /* reset SNR/NF/RSSI values */
55 memset(priv->SNR, 0x00, sizeof(priv->SNR)); 56 memset(priv->SNR, 0x00, sizeof(priv->SNR));
56 memset(priv->NF, 0x00, sizeof(priv->NF)); 57 memset(priv->NF, 0x00, sizeof(priv->NF));
@@ -883,9 +884,10 @@ int lbs_process_event(struct lbs_private *priv)
883 } 884 }
884 lbs_pr_info("EVENT: MESH_AUTO_STARTED\n"); 885 lbs_pr_info("EVENT: MESH_AUTO_STARTED\n");
885 priv->mesh_connect_status = LBS_CONNECTED; 886 priv->mesh_connect_status = LBS_CONNECTED;
886 if (priv->mesh_open == 1) { 887 if (priv->mesh_open) {
887 netif_wake_queue(priv->mesh_dev);
888 netif_carrier_on(priv->mesh_dev); 888 netif_carrier_on(priv->mesh_dev);
889 if (!priv->tx_pending_len)
890 netif_wake_queue(priv->mesh_dev);
889 } 891 }
890 priv->mode = IW_MODE_ADHOC; 892 priv->mode = IW_MODE_ADHOC;
891 schedule_work(&priv->sync_channel); 893 schedule_work(&priv->sync_channel);