diff options
Diffstat (limited to 'drivers/net/wireless/libertas/main.c')
-rw-r--r-- | drivers/net/wireless/libertas/main.c | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c index cdf5934aaf8b..f9bdd123ec45 100644 --- a/drivers/net/wireless/libertas/main.c +++ b/drivers/net/wireless/libertas/main.c | |||
@@ -489,19 +489,9 @@ void lbs_host_to_card_done(struct lbs_private *priv) | |||
489 | priv->dnld_sent = DNLD_RES_RECEIVED; | 489 | priv->dnld_sent = DNLD_RES_RECEIVED; |
490 | 490 | ||
491 | /* Wake main thread if commands are pending */ | 491 | /* Wake main thread if commands are pending */ |
492 | if (!priv->cur_cmd) | 492 | if (!priv->cur_cmd || priv->tx_pending_len > 0) |
493 | wake_up_interruptible(&priv->waitq); | 493 | wake_up_interruptible(&priv->waitq); |
494 | 494 | ||
495 | /* Don't wake netif queues if we're in monitor mode and | ||
496 | a TX packet is already pending, or if there are commands | ||
497 | queued to be sent. */ | ||
498 | if (!priv->currenttxskb && list_empty(&priv->cmdpendingq)) { | ||
499 | if (priv->dev && priv->connect_status == LBS_CONNECTED) | ||
500 | netif_wake_queue(priv->dev); | ||
501 | |||
502 | if (priv->mesh_dev && priv->mesh_connect_status == LBS_CONNECTED) | ||
503 | netif_wake_queue(priv->mesh_dev); | ||
504 | } | ||
505 | spin_unlock_irqrestore(&priv->driver_lock, flags); | 495 | spin_unlock_irqrestore(&priv->driver_lock, flags); |
506 | } | 496 | } |
507 | EXPORT_SYMBOL_GPL(lbs_host_to_card_done); | 497 | EXPORT_SYMBOL_GPL(lbs_host_to_card_done); |