diff mbox series

b43: Fix regression in kernel 4.18

Message ID 20180827153407.5612-1-Larry.Finger@lwfinger.net (mailing list archive)
State Accepted
Commit 2823c8716c687d6c7e261a3a02b3cab43809fe9c
Delegated to: Kalle Valo
Headers show
Series b43: Fix regression in kernel 4.18 | expand

Commit Message

Larry Finger Aug. 27, 2018, 3:34 p.m. UTC
In commit 66cffd6daab7 ("b43: fix transmit failure when VT is switched"),
a condition is noted where the network controller needs to be reset. Note
that this situation happens when running the open-source firmware
(http://netweb.ing.unibs.it/~openfwwf/), plus a number of other special
conditions.

for a different card model, it is reported that this change breaks
operation running the proprietary firmware
(https://marc.info/?l=linux-wireless&m=153504546924558&w=2). Rather
than reverting the previous patch, the code is tweaked to avoid the
reset unless the open-source firmware is being used.

Fixes: 66cffd6daab7 ("b43: fix transmit failure when VT is switched")
Cc: Stable <stable@vger.kernel.org> # 4.18+
Cc: Taketo Kabe <kabe@sra-tohoku.co.jp>
Reported-and-tested-by: D. Prabhu <d.praabhu@gmail.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
 drivers/net/wireless/broadcom/b43/dma.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Kalle Valo Aug. 31, 2018, 3:38 p.m. UTC | #1
Larry Finger <Larry.Finger@lwfinger.net> wrote:

> In commit 66cffd6daab7 ("b43: fix transmit failure when VT is switched"),
> a condition is noted where the network controller needs to be reset. Note
> that this situation happens when running the open-source firmware
> (http://netweb.ing.unibs.it/~openfwwf/), plus a number of other special
> conditions.
> 
> for a different card model, it is reported that this change breaks
> operation running the proprietary firmware
> (https://marc.info/?l=linux-wireless&m=153504546924558&w=2). Rather
> than reverting the previous patch, the code is tweaked to avoid the
> reset unless the open-source firmware is being used.
> 
> Fixes: 66cffd6daab7 ("b43: fix transmit failure when VT is switched")
> Cc: Stable <stable@vger.kernel.org> # 4.18+
> Cc: Taketo Kabe <kabe@sra-tohoku.co.jp>
> Reported-and-tested-by: D. Prabhu <d.praabhu@gmail.com>
> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>

I'll change the title to something more descriptive:

b43: fix DMA error related regression with proprietary firmware

Does that make sense?
Larry Finger Aug. 31, 2018, 4:15 p.m. UTC | #2
On 08/31/2018 10:38 AM, Kalle Valo wrote:
> Larry Finger <Larry.Finger@lwfinger.net> wrote:
> 
>> In commit 66cffd6daab7 ("b43: fix transmit failure when VT is switched"),
>> a condition is noted where the network controller needs to be reset. Note
>> that this situation happens when running the open-source firmware
>> (http://netweb.ing.unibs.it/~openfwwf/), plus a number of other special
>> conditions.
>>
>> for a different card model, it is reported that this change breaks
>> operation running the proprietary firmware
>> (https://marc.info/?l=linux-wireless&m=153504546924558&w=2). Rather
>> than reverting the previous patch, the code is tweaked to avoid the
>> reset unless the open-source firmware is being used.
>>
>> Fixes: 66cffd6daab7 ("b43: fix transmit failure when VT is switched")
>> Cc: Stable <stable@vger.kernel.org> # 4.18+
>> Cc: Taketo Kabe <kabe@sra-tohoku.co.jp>
>> Reported-and-tested-by: D. Prabhu <d.praabhu@gmail.com>
>> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
> 
> I'll change the title to something more descriptive:
> 
> b43: fix DMA error related regression with proprietary firmware
> 
> Does that make sense?

Yes, that is fine.

Larry
Kalle Valo Sept. 20, 2018, 11:59 a.m. UTC | #3
Larry Finger <Larry.Finger@lwfinger.net> wrote:

> In commit 66cffd6daab7 ("b43: fix transmit failure when VT is switched"),
> a condition is noted where the network controller needs to be reset. Note
> that this situation happens when running the open-source firmware
> (http://netweb.ing.unibs.it/~openfwwf/), plus a number of other special
> conditions.
> 
> for a different card model, it is reported that this change breaks
> operation running the proprietary firmware
> (https://marc.info/?l=linux-wireless&m=153504546924558&w=2). Rather
> than reverting the previous patch, the code is tweaked to avoid the
> reset unless the open-source firmware is being used.
> 
> Fixes: 66cffd6daab7 ("b43: fix transmit failure when VT is switched")
> Cc: Stable <stable@vger.kernel.org> # 4.18+
> Cc: Taketo Kabe <kabe@sra-tohoku.co.jp>
> Reported-and-tested-by: D. Prabhu <d.praabhu@gmail.com>
> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>

Patch applied to wireless-drivers.git, thanks.

2823c8716c68 b43: fix DMA error related regression with proprietary firmware
diff mbox series

Patch

diff --git a/drivers/net/wireless/broadcom/b43/dma.c b/drivers/net/wireless/broadcom/b43/dma.c
index 6b0e1ec346cb..d46d57b989ae 100644
--- a/drivers/net/wireless/broadcom/b43/dma.c
+++ b/drivers/net/wireless/broadcom/b43/dma.c
@@ -1518,13 +1518,15 @@  void b43_dma_handle_txstatus(struct b43_wldev *dev,
 			}
 		} else {
 			/* More than a single header/data pair were missed.
-			 * Report this error, and reset the controller to
+			 * Report this error. If running with open-source
+			 * firmware, then reset the controller to
 			 * revive operation.
 			 */
 			b43dbg(dev->wl,
 			       "Out of order TX status report on DMA ring %d. Expected %d, but got %d\n",
 			       ring->index, firstused, slot);
-			b43_controller_restart(dev, "Out of order TX");
+			if (dev->fw.opensource)
+				b43_controller_restart(dev, "Out of order TX");
 			return;
 		}
 	}