On 08/26/2018 02:23 AM, prabhu wrote:
Larry,
Upgrading the firmware didn't fix the issue.
The patch fixes it. My system has been running without any issues
since yesterday.
I did not think the new firmware would help, but it had to be tried. Thanks for
the testing.
@Pradhu & @Taketo: Attached is a new (improved?) patch for you to try. You need
to start from an unmodified 4.18 source. This patch should allow both of your
systems to work and avoid needing to revert Taketo's fix for his setup.
Thanks,
Larry
>From 4805a08715de42d49587975979425031307218b6 Mon Sep 17 00:00:00 2001
From: Larry Finger <[email protected]>
Date: Sun, 26 Aug 2018 10:47:52 -0500
Subject: [PATCH] b43: Fix regression in kernel 4.18
To: Linus Torvalds <[email protected]>
Cc: [email protected]
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]>
Cc: 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
_______________________________________________
b43-dev mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/b43-dev