diff options
Diffstat (limited to 'drivers/net/wireless/libertas/scan.c')
| -rw-r--r-- | drivers/net/wireless/libertas/scan.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/drivers/net/wireless/libertas/scan.c b/drivers/net/wireless/libertas/scan.c index c6a6c042b82f..b0b1c7841500 100644 --- a/drivers/net/wireless/libertas/scan.c +++ b/drivers/net/wireless/libertas/scan.c | |||
| @@ -567,11 +567,8 @@ int lbs_scan_networks(struct lbs_private *priv, int full_scan) | |||
| 567 | chan_count = lbs_scan_create_channel_list(priv, chan_list); | 567 | chan_count = lbs_scan_create_channel_list(priv, chan_list); |
| 568 | 568 | ||
| 569 | netif_stop_queue(priv->dev); | 569 | netif_stop_queue(priv->dev); |
| 570 | netif_carrier_off(priv->dev); | 570 | if (priv->mesh_dev) |
| 571 | if (priv->mesh_dev) { | ||
| 572 | netif_stop_queue(priv->mesh_dev); | 571 | netif_stop_queue(priv->mesh_dev); |
| 573 | netif_carrier_off(priv->mesh_dev); | ||
| 574 | } | ||
| 575 | 572 | ||
| 576 | /* Prepare to continue an interrupted scan */ | 573 | /* Prepare to continue an interrupted scan */ |
| 577 | lbs_deb_scan("chan_count %d, scan_channel %d\n", | 574 | lbs_deb_scan("chan_count %d, scan_channel %d\n", |
| @@ -635,16 +632,13 @@ out2: | |||
| 635 | priv->scan_channel = 0; | 632 | priv->scan_channel = 0; |
| 636 | 633 | ||
| 637 | out: | 634 | out: |
| 638 | if (priv->connect_status == LBS_CONNECTED) { | 635 | if (priv->connect_status == LBS_CONNECTED && !priv->tx_pending_len) |
| 639 | netif_carrier_on(priv->dev); | 636 | netif_wake_queue(priv->dev); |
| 640 | if (!priv->tx_pending_len) | 637 | |
| 641 | netif_wake_queue(priv->dev); | 638 | if (priv->mesh_dev && (priv->mesh_connect_status == LBS_CONNECTED) && |
| 642 | } | 639 | !priv->tx_pending_len) |
| 643 | if (priv->mesh_dev && (priv->mesh_connect_status == LBS_CONNECTED)) { | 640 | netif_wake_queue(priv->mesh_dev); |
| 644 | netif_carrier_on(priv->mesh_dev); | 641 | |
| 645 | if (!priv->tx_pending_len) | ||
| 646 | netif_wake_queue(priv->mesh_dev); | ||
| 647 | } | ||
| 648 | kfree(chan_list); | 642 | kfree(chan_list); |
| 649 | 643 | ||
| 650 | lbs_deb_leave_args(LBS_DEB_SCAN, "ret %d", ret); | 644 | lbs_deb_leave_args(LBS_DEB_SCAN, "ret %d", ret); |
