B43: Handle DMA RX descriptor underrun
authorThommy Jakobsson <thommyj@gmail.com>
Tue, 23 Apr 2013 19:45:11 +0000 (21:45 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 30 May 2013 13:34:53 +0000 (14:34 +0100)
commitfc6320b1a675001ac9599bf82aeba59f47deba6d
treef07a58e8c75d385e1dac68094862040af6a400f0
parent43d5219bffe5fe4b4e8c37959d4a9b37856af59f
B43: Handle DMA RX descriptor underrun

commit 73b82bf0bfbf58e6ff328d3726934370585f6e78 upstream.

Add handling of rx descriptor underflow. This fixes a fault that could
happen on slow machines, where data is received faster than the CPU can
handle. In such a case the device will use up all rx descriptors and
refuse to send any more data before confirming that it is ok. This
patch enables necessary interrupt to discover such a situation and will
handle them by dropping everything in the ring buffer.

Reviewed-by: Michael Buesch <m@bues.ch>
Signed-off-by: Thommy Jakobsson <thommyj@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/net/wireless/b43/dma.c
drivers/net/wireless/b43/dma.h
drivers/net/wireless/b43/main.c