2009-08-14 18:29:47

by Gábor Stefanik

[permalink] [raw]
Subject: [PATCH] b43: LP-PHY: Fix reading old mode in the set TX power control routine

Check the mode the hardware is in, not the mode we used the last time.

Signed-off-by: Gábor Stefanik <[email protected]>
---
Mark, please test if this fixes the TX power control WARN_ON you were seeing.

drivers/net/wireless/b43/phy_lp.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/b43/phy_lp.c b/drivers/net/wireless/b43/phy_lp.c
index 292ee51..76457f7 100644
--- a/drivers/net/wireless/b43/phy_lp.c
+++ b/drivers/net/wireless/b43/phy_lp.c
@@ -1015,9 +1015,9 @@ static void lpphy_set_tx_power_control(struct b43_wldev *dev,
struct b43_phy_lp *lpphy = dev->phy.lp;
enum b43_lpphy_txpctl_mode oldmode;

- oldmode = lpphy->txpctl_mode;
lpphy_read_tx_pctl_mode_from_hardware(dev);
- if (lpphy->txpctl_mode == mode)
+ oldmode = lpphy->txpctl_mode;
+ if (oldmode == mode)
return;
lpphy->txpctl_mode = mode;

--
1.6.2.4





2009-08-17 20:00:15

by John W. Linville

[permalink] [raw]
Subject: Re: [PATCH] b43: LP-PHY: Fix reading old mode in the set TX power control routine

On Mon, Aug 17, 2009 at 09:33:06PM +0200, G?bor Stefanik wrote:
> 2009/8/14 G?bor Stefanik <[email protected]>:
> > Check the mode the hardware is in, not the mode we used the last time.
> >
> > Signed-off-by: G?bor Stefanik <[email protected]>
> > ---
> > Mark, please test if this fixes the TX power control WARN_ON you were
> > seeing.
> >
> > drivers/net/wireless/b43/phy_lp.c | ? ?4 ++--
> > 1 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/net/wireless/b43/phy_lp.c
> > b/drivers/net/wireless/b43/phy_lp.c
> > index 292ee51..76457f7 100644
> > --- a/drivers/net/wireless/b43/phy_lp.c
> > +++ b/drivers/net/wireless/b43/phy_lp.c
> > @@ -1015,9 +1015,9 @@ static void lpphy_set_tx_power_control(struct
> > b43_wldev *dev,
> > ? ? ? ?struct b43_phy_lp *lpphy = dev->phy.lp;
> > ? ? ? ?enum b43_lpphy_txpctl_mode oldmode;
> >
> > - ? ? ? oldmode = lpphy->txpctl_mode;
> > ? ? ? ?lpphy_read_tx_pctl_mode_from_hardware(dev);
> > - ? ? ? if (lpphy->txpctl_mode == mode)
> > + ? ? ? oldmode = lpphy->txpctl_mode;
> > + ? ? ? if (oldmode == mode)
> > ? ? ? ? ? ? ? ?return;
> > ? ? ? ?lpphy->txpctl_mode = mode;
> >
> > --
> > 1.6.2.4
> >
>
> John, any news on this one? I can't see it in wireless testing.

Larry said "It does not fix it here. I'll take a look at the specs"...

--
John W. Linville Someday the world will need a hero, and you
[email protected] might be all we have. Be ready.

2009-08-17 19:33:25

by Gábor Stefanik

[permalink] [raw]
Subject: Re: [PATCH] b43: LP-PHY: Fix reading old mode in the set TX power control routine

2009/8/14 G?bor Stefanik <[email protected]>:
> Check the mode the hardware is in, not the mode we used the last time.
>
> Signed-off-by: G?bor Stefanik <[email protected]>
> ---
> Mark, please test if this fixes the TX power control WARN_ON you were
> seeing.
>
> drivers/net/wireless/b43/phy_lp.c | ? ?4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/b43/phy_lp.c
> b/drivers/net/wireless/b43/phy_lp.c
> index 292ee51..76457f7 100644
> --- a/drivers/net/wireless/b43/phy_lp.c
> +++ b/drivers/net/wireless/b43/phy_lp.c
> @@ -1015,9 +1015,9 @@ static void lpphy_set_tx_power_control(struct
> b43_wldev *dev,
> ? ? ? ?struct b43_phy_lp *lpphy = dev->phy.lp;
> ? ? ? ?enum b43_lpphy_txpctl_mode oldmode;
>
> - ? ? ? oldmode = lpphy->txpctl_mode;
> ? ? ? ?lpphy_read_tx_pctl_mode_from_hardware(dev);
> - ? ? ? if (lpphy->txpctl_mode == mode)
> + ? ? ? oldmode = lpphy->txpctl_mode;
> + ? ? ? if (oldmode == mode)
> ? ? ? ? ? ? ? ?return;
> ? ? ? ?lpphy->txpctl_mode = mode;
>
> --
> 1.6.2.4
>

John, any news on this one? I can't see it in wireless testing.

--
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)

2009-08-14 18:44:41

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] b43: LP-PHY: Fix reading old mode in the set TX power control routine

Gábor Stefanik wrote:
> Check the mode the hardware is in, not the mode we used the last time.
>
> Signed-off-by: Gábor Stefanik <[email protected]>
> ---
> Mark, please test if this fixes the TX power control WARN_ON you were
> seeing.

It does not fix it here. I'll take a look at the specs.

Larry

2009-08-17 21:19:25

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] b43: LP-PHY: Fix reading old mode in the set TX power control routine

G?bor Stefanik wrote:
> 2009/8/17 John W. Linville <[email protected]>:
>> On Mon, Aug 17, 2009 at 09:33:06PM +0200, G?bor Stefanik wrote:
>>> 2009/8/14 G?bor Stefanik <[email protected]>:
>>>> Check the mode the hardware is in, not the mode we used the last time.
>>>>
>>>> Signed-off-by: G?bor Stefanik <[email protected]>
>>>> ---
>>>> Mark, please test if this fixes the TX power control WARN_ON you were
>>>> seeing.
>>>>
>>>> drivers/net/wireless/b43/phy_lp.c | 4 ++--
>>>> 1 files changed, 2 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/drivers/net/wireless/b43/phy_lp.c
>>>> b/drivers/net/wireless/b43/phy_lp.c
>>>> index 292ee51..76457f7 100644
>>>> --- a/drivers/net/wireless/b43/phy_lp.c
>>>> +++ b/drivers/net/wireless/b43/phy_lp.c
>>>> @@ -1015,9 +1015,9 @@ static void lpphy_set_tx_power_control(struct
>>>> b43_wldev *dev,
>>>> struct b43_phy_lp *lpphy = dev->phy.lp;
>>>> enum b43_lpphy_txpctl_mode oldmode;
>>>>
>>>> - oldmode = lpphy->txpctl_mode;
>>>> lpphy_read_tx_pctl_mode_from_hardware(dev);
>>>> - if (lpphy->txpctl_mode == mode)
>>>> + oldmode = lpphy->txpctl_mode;
>>>> + if (oldmode == mode)
>>>> return;
>>>> lpphy->txpctl_mode = mode;
>>>>
>>>> --
>>>> 1.6.2.4
>>>>
>>> John, any news on this one? I can't see it in wireless testing.
>> Larry said "It does not fix it here. I'll take a look at the specs"...
>
> It did not fix the warning, but it is nevertheless a legitimate fix.
> (I found this bug when I was looking for the source of the WARN_ON -
> this is not the source of the WARN_ON, but still a bug.)

This patch is OK.

Larry

2009-08-17 20:03:35

by Gábor Stefanik

[permalink] [raw]
Subject: Re: [PATCH] b43: LP-PHY: Fix reading old mode in the set TX power control routine

2009/8/17 John W. Linville <[email protected]>:
> On Mon, Aug 17, 2009 at 09:33:06PM +0200, G?bor Stefanik wrote:
>> 2009/8/14 G?bor Stefanik <[email protected]>:
>> > Check the mode the hardware is in, not the mode we used the last time.
>> >
>> > Signed-off-by: G?bor Stefanik <[email protected]>
>> > ---
>> > Mark, please test if this fixes the TX power control WARN_ON you were
>> > seeing.
>> >
>> > drivers/net/wireless/b43/phy_lp.c | ? ?4 ++--
>> > 1 files changed, 2 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/drivers/net/wireless/b43/phy_lp.c
>> > b/drivers/net/wireless/b43/phy_lp.c
>> > index 292ee51..76457f7 100644
>> > --- a/drivers/net/wireless/b43/phy_lp.c
>> > +++ b/drivers/net/wireless/b43/phy_lp.c
>> > @@ -1015,9 +1015,9 @@ static void lpphy_set_tx_power_control(struct
>> > b43_wldev *dev,
>> > ? ? ? ?struct b43_phy_lp *lpphy = dev->phy.lp;
>> > ? ? ? ?enum b43_lpphy_txpctl_mode oldmode;
>> >
>> > - ? ? ? oldmode = lpphy->txpctl_mode;
>> > ? ? ? ?lpphy_read_tx_pctl_mode_from_hardware(dev);
>> > - ? ? ? if (lpphy->txpctl_mode == mode)
>> > + ? ? ? oldmode = lpphy->txpctl_mode;
>> > + ? ? ? if (oldmode == mode)
>> > ? ? ? ? ? ? ? ?return;
>> > ? ? ? ?lpphy->txpctl_mode = mode;
>> >
>> > --
>> > 1.6.2.4
>> >
>>
>> John, any news on this one? I can't see it in wireless testing.
>
> Larry said "It does not fix it here. I'll take a look at the specs"...

It did not fix the warning, but it is nevertheless a legitimate fix.
(I found this bug when I was looking for the source of the WARN_ON -
this is not the source of the WARN_ON, but still a bug.)

>
> --
> John W. Linville ? ? ? ? ? ? ? ?Someday the world will need a hero, and you
> [email protected] ? ? ? ? ? ? ? ? ?might be all we have. ?Be ready.
>



--
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)