From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael =?UTF-8?B?QsO8c2No?= Date: Sun, 5 May 2013 15:56:19 +0200 Subject: [PATCH] B43: Handle DMA RX descriptor underrun In-Reply-To: References: Message-ID: <20130505155619.1f316a6b@milhouse> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= Cc: Thommy Jakobsson , linville@tuxdriver.com, linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org, piotras@gmail.com, Larry.Finger@lwfinger.net On Sun, 5 May 2013 14:44:14 +0200 Rafa? Mi?ecki wrote: > 2013/4/23 Thommy Jakobsson : > > 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. > > Thommy: does it mean firmware actually ignores what we write to the > B43_DMA64_RXINDEX (recently renamed to the B43_DMA64_RXSTOPINDEX)? Is > our set_current_rxslot and op64_set_current_rxslot (same for 32bit > version) useless in this situation? > > Could this be a off-by-one issue? Maybe we're writing a value too low > by a one and firmware believes the whole ring is empty while it's > full? The ring looks the same if it's full or empty. We can only know that it is full when this interrupt fires, which happens as the indexes collide. -- Michael -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: not available URL: