2009-12-18 10:35:20

by Samuel Ortiz

[permalink] [raw]
Subject: [PATCH] libertas: Remove carrier signaling from the scan code


There is no reason to signal a carrier off when doing a 802.11 scan.

Cc: Dan Williams <[email protected]>
Cc: Holger Schurig <[email protected]>
Signed-off-by: Samuel Ortiz <[email protected]>
---
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 c6a6c04..b0b1c78 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)
chan_count = lbs_scan_create_channel_list(priv, chan_list);

netif_stop_queue(priv->dev);
- netif_carrier_off(priv->dev);
- if (priv->mesh_dev) {
+ if (priv->mesh_dev)
netif_stop_queue(priv->mesh_dev);
- netif_carrier_off(priv->mesh_dev);
- }

/* Prepare to continue an interrupted scan */
lbs_deb_scan("chan_count %d, scan_channel %d\n",
@@ -635,16 +632,13 @@ out2:
priv->scan_channel = 0;

out:
- if (priv->connect_status == LBS_CONNECTED) {
- netif_carrier_on(priv->dev);
- if (!priv->tx_pending_len)
- netif_wake_queue(priv->dev);
- }
- if (priv->mesh_dev && (priv->mesh_connect_status == LBS_CONNECTED)) {
- netif_carrier_on(priv->mesh_dev);
- if (!priv->tx_pending_len)
- netif_wake_queue(priv->mesh_dev);
- }
+ if (priv->connect_status == LBS_CONNECTED && !priv->tx_pending_len)
+ netif_wake_queue(priv->dev);
+
+ if (priv->mesh_dev && (priv->mesh_connect_status == LBS_CONNECTED) &&
+ !priv->tx_pending_len)
+ netif_wake_queue(priv->mesh_dev);
+
kfree(chan_list);

lbs_deb_leave_args(LBS_DEB_SCAN, "ret %d", ret);
--
1.6.3.3

Intel Open Source Technology Centre
http://oss.intel.com/


2009-12-28 01:42:17

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] libertas: Remove carrier signaling from the scan code

Hi John,

> > There is no reason to signal a carrier off when doing a 802.11 scan.
> >
> > Cc: Dan Williams <[email protected]>
> > Cc: Holger Schurig <[email protected]>
> > Signed-off-by: Samuel Ortiz <[email protected]>
>
> Acked-by: Dan Williams <[email protected]>

can we get this driver merged since no wireless driver should play with
carrier on/off settings during scanning.

I would actually go that far that we should fix it in 2.6.33 and also
backport it to -stable.

Regards

Marcel



2009-12-19 08:41:22

by Dan Williams

[permalink] [raw]
Subject: Re: [PATCH] libertas: Remove carrier signaling from the scan code

On Fri, 2009-12-18 at 11:36 +0100, Samuel Ortiz wrote:
> There is no reason to signal a carrier off when doing a 802.11 scan.
>
> Cc: Dan Williams <[email protected]>
> Cc: Holger Schurig <[email protected]>
> Signed-off-by: Samuel Ortiz <[email protected]>

Acked-by: Dan Williams <[email protected]>

> ---
> 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 c6a6c04..b0b1c78 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)
> chan_count = lbs_scan_create_channel_list(priv, chan_list);
>
> netif_stop_queue(priv->dev);
> - netif_carrier_off(priv->dev);
> - if (priv->mesh_dev) {
> + if (priv->mesh_dev)
> netif_stop_queue(priv->mesh_dev);
> - netif_carrier_off(priv->mesh_dev);
> - }
>
> /* Prepare to continue an interrupted scan */
> lbs_deb_scan("chan_count %d, scan_channel %d\n",
> @@ -635,16 +632,13 @@ out2:
> priv->scan_channel = 0;
>
> out:
> - if (priv->connect_status == LBS_CONNECTED) {
> - netif_carrier_on(priv->dev);
> - if (!priv->tx_pending_len)
> - netif_wake_queue(priv->dev);
> - }
> - if (priv->mesh_dev && (priv->mesh_connect_status == LBS_CONNECTED)) {
> - netif_carrier_on(priv->mesh_dev);
> - if (!priv->tx_pending_len)
> - netif_wake_queue(priv->mesh_dev);
> - }
> + if (priv->connect_status == LBS_CONNECTED && !priv->tx_pending_len)
> + netif_wake_queue(priv->dev);
> +
> + if (priv->mesh_dev && (priv->mesh_connect_status == LBS_CONNECTED) &&
> + !priv->tx_pending_len)
> + netif_wake_queue(priv->mesh_dev);
> +
> kfree(chan_list);
>
> lbs_deb_leave_args(LBS_DEB_SCAN, "ret %d", ret);


2010-01-07 06:25:44

by Dan Williams

[permalink] [raw]
Subject: Re: [PATCH] libertas: Remove carrier signaling from the scan code

On Sun, 2009-12-27 at 17:41 -0800, Marcel Holtmann wrote:
> Hi John,
>
> > > There is no reason to signal a carrier off when doing a 802.11 scan.
> > >
> > > Cc: Dan Williams <[email protected]>
> > > Cc: Holger Schurig <[email protected]>
> > > Signed-off-by: Samuel Ortiz <[email protected]>
> >
> > Acked-by: Dan Williams <[email protected]>
>
> can we get this driver merged since no wireless driver should play with
> carrier on/off settings during scanning.
>
> I would actually go that far that we should fix it in 2.6.33 and also
> backport it to -stable.

Well likewise even if it *did* play with carrier, nothing should be
listening to the carrier signal for wifi devices anyway. So it
shouldn't really be a problem.

Dan