2018-08-27 19:21:24

by Larry Finger

[permalink] [raw]
Subject: [PATCH] b43: Fix regression in kernel 4.18

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 <[email protected]> # 4.18+
Cc: Taketo Kabe <[email protected]>
Reported-and-tested-by: D. Prabhu <[email protected]>
Signed-off-by: Larry Finger <[email protected]>
---
drivers/net/wireless/broadcom/b43/dma.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

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;
}
}
--
2.18.0


2018-08-31 19:46:12

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] b43: Fix regression in kernel 4.18

Larry Finger <[email protected]> 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 <[email protected]> # 4.18+
> Cc: Taketo Kabe <[email protected]>
> Reported-and-tested-by: D. Prabhu <[email protected]>
> Signed-off-by: Larry Finger <[email protected]>

I'll change the title to something more descriptive:

b43: fix DMA error related regression with proprietary firmware

Does that make sense?

--
https://patchwork.kernel.org/patch/10577379/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2018-09-20 17:43:07

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] b43: fix DMA error related regression with proprietary firmware

Larry Finger <[email protected]> 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 <[email protected]> # 4.18+
> Cc: Taketo Kabe <[email protected]>
> Reported-and-tested-by: D. Prabhu <[email protected]>
> Signed-off-by: Larry Finger <[email protected]>

Patch applied to wireless-drivers.git, thanks.

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

--
https://patchwork.kernel.org/patch/10577379/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches