[PATCH v2] drivers/net/wireless/broadcom/b43: fix transmit failure when VT is switched
Michael Büsch
m at bues.ch
Thu May 10 04:15:22 PDT 2018
On Thu, 10 May 2018 19:30:45 +0900
Taketo Kabe <kabe at sra-tohoku.co.jp> wrote:
> Signed-off-by: Taketo Kabe <kabe at sra-tohoku.co.jp>
> ---
> diff -up ./drivers/net/wireless/broadcom/b43/dma.c.b43 ./drivers/net/wireless/broadcom/b43/dma.c
> --- ./drivers/net/wireless/broadcom/b43/dma.c.b43 2018-05-04 15:18:12.000000000 +0900
> +++ ./drivers/net/wireless/broadcom/b43/dma.c 2018-05-10 18:46:36.000000000 +0900
> @@ -1484,7 +1484,7 @@ void b43_dma_handle_txstatus(struct b43_
> int slot, firstused;
> bool frame_succeed;
> int skip;
> - static u8 err_out1, err_out2;
> + static u8 err_out1;
>
> ring = parse_cookie(dev, status->cookie, &slot);
> if (unlikely(!ring))
> @@ -1518,13 +1518,13 @@ void b43_dma_handle_txstatus(struct b43_
> }
> } else {
> /* More than a single header/data pair were missed.
> - * Report this error once.
> + * Report this error, and reset the controller to
> + * revive operation.
> */
> - if (!err_out2)
> - b43dbg(dev->wl,
> - "Out of order TX status report on DMA ring %d. Expected %d, but got %d\n",
> - ring->index, firstused, slot);
> - err_out2 = 1;
> + 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");
> return;
> }
> }
Reviewed-by: Michael Büsch <m at bues.ch>
I think this is a good thing to have.
It improves robustness against firmware/DMA misbehavior.
--
Michael
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/b43-dev/attachments/20180510/4c3fee2e/attachment.sig>
More information about the b43-dev
mailing list