Skip to contentSkip to conversation

b43: LP-PHY: Fix reading old mode in the set TX power control routine

PATCH In review Gábor Stefanik 3 participants 6 messages Aug 14, 2009 – Aug 17, 2009 Networking drivers (wireless)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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.

---
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(-)
drivers/net/wireless/b43/phy_lp.c +0 -0
index 292ee51..76457f7 100644
@@ -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;
Signature · 1 line
1.6.2.4
#1 lore raw
Quoted 6 lines · Gábor Stefanik

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

---
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

#2 lore raw
In reply to Gábor Stefanik

2009/8/14 Gábor Stefanik <[email protected]>:

Quoted 29 lines

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

---
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(-)
drivers/net/wireless/b43/phy_lp.c +2 -3
index 292ee51..76457f7 100644
@@ -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;
 
--
Quoted 2 lines

1.6.2.4

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

Signature · 1 line
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
#3 lore raw
Quoted 29 lines · Gábor Stefanik

2009/8/14 Gábor Stefanik <[email protected]>:

Quoted 28 lines

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

---
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(-)
drivers/net/wireless/b43/phy_lp.c +2 -2
index 292ee51..76457f7 100644
@@ -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;
Quoted 5 lines
Quoted 3 lines

--
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"...

Signature · 2 lines
John W. Linville		Someday the world will need a hero, and you
[email protected]			might be all we have.  Be ready.
#4 lore raw

2009/8/17 John W. Linville <[email protected]>:

Quoted 30 lines · Gábor Stefanik
Quoted 29 lines

2009/8/14 Gábor Stefanik <[email protected]>:

Quoted 28 lines

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

---
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(-)
drivers/net/wireless/b43/phy_lp.c +2 -2
index 292ee51..76457f7 100644
@@ -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;
Quoted 7 lines
Quoted 5 lines
Quoted 3 lines

--
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.)

Quoted 5 lines

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

Signature · 1 line
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
#5 lore raw
Quoted 35 lines · Gábor Stefanik

2009/8/17 John W. Linville <[email protected]>:

Quoted 34 lines · Gábor Stefanik
Quoted 33 lines

2009/8/14 Gábor Stefanik <[email protected]>:

Quoted 29 lines

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

---
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(-)
drivers/net/wireless/b43/phy_lp.c +2 -3
index 292ee51..76457f7 100644
@@ -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;
 
--
Quoted 2 lines

1.6.2.4

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

Quoted 5 lines
Quoted 1 line

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