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