On Thu, 10 May 2018 19:30:45 +0900 Taketo Kabe <k...@sra-tohoku.co.jp> wrote:
> Signed-off-by: Taketo Kabe <k...@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...@bues.ch> I think this is a good thing to have. It improves robustness against firmware/DMA misbehavior. -- Michael
pgpcNqd0vtBr1.pgp
Description: OpenPGP digital signature