linux_old1/drivers/net/wireless/ath9k
Luis R. Rodriguez ca0c7e5101 ath9k: Fix SW-IOMMU bounce buffer starvation
This should fix the SW-IOMMU bounce buffer starvation
seen ok kernel.org bugzilla 11811:

http://bugzilla.kernel.org/show_bug.cgi?id=11811

Users on MacBook Pro 3.1/MacBook v2 would see something like:

DMA: Out of SW-IOMMU space for 4224 bytes at device 0000:0b:00.0

Unfortunately its only easy to trigger on MacBook Pro 3.1/MacBook v2
so far so its difficult to debug (even with swiotlb=force).

We were pci_unmap_single()'ing less bytes than what we called
for with pci_map_single() and as such we were starving
the swiotlb from its 64MB amount of bounce buffers. We remain
consistent and now always use sc->rxbufsize for RX. While at
it we update the beacon DMA maps as well to only use the data
portion of the skb, previous to this we were pci_map_single()'ing
more data for beaconing than what we tell the hardware it can use,
therefore pushing more iotlb abuse.

Still not sure why this is so easily triggerable on
MacBook Pro 3.1, it may be the hardware configuration
tends to use more memory > 3GB mark for DMA.

Signed-off-by: Maciej Zenczykowski <zenczykowski@gmail.com>
Signed-off-by: Bennyam Malavazi <Bennyam.Malavazi@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-11-25 16:13:08 -05:00
..
Kconfig ath9k: uses/needs led_classdev_[un]register 2008-09-05 16:17:49 -04:00
Makefile ath9k: Add new Atheros IEEE 802.11n driver 2008-08-07 09:49:42 -04:00
ath9k.h ath9k: enable ANI to help with noisy environments 2008-10-06 18:14:56 -04:00
beacon.c ath9k: Fix SW-IOMMU bounce buffer starvation 2008-11-25 16:13:08 -05:00
core.c ath9k: enable ANI to help with noisy environments 2008-10-06 18:14:56 -04:00
core.h ath9k: enable ANI to help with noisy environments 2008-10-06 18:14:56 -04:00
hw.c ath9k: Fix return code when ath9k_hw_setpower() fails on reset 2008-10-10 12:26:24 -07:00
hw.h ath9k: Remove more dead code 2008-08-29 16:24:09 -04:00
initvals.h ath9k: Add new Atheros IEEE 802.11n driver 2008-08-07 09:49:42 -04:00
main.c ath9k/mac80211: disallow fragmentation in ath9k, report to userspace 2008-10-14 21:12:37 -04:00
phy.c ath9k: Add new Atheros IEEE 802.11n driver 2008-08-07 09:49:42 -04:00
phy.h ath9k: Add IEEE80211_HW_RX_INCLUDES_FCS to hw flags 2008-08-29 16:24:05 -04:00
rc.c mac80211: clean up rate control API 2008-09-24 16:18:03 -04:00
rc.h ath9k: rc.h cleanup 2008-08-29 16:24:10 -04:00
recv.c ath9k: Fix SW-IOMMU bounce buffer starvation 2008-11-25 16:13:08 -05:00
reg.h ath9k: Add LED support 2008-08-29 16:24:09 -04:00
regd.c ath9k: Revamp wireless mode usage 2008-08-07 09:49:44 -04:00
regd.h ath9k: Revamp wireless mode usage 2008-08-07 09:49:44 -04:00
regd_common.h ath9k: Revamp wireless mode usage 2008-08-07 09:49:44 -04:00
xmit.c mac80211: free up 2 bytes in skb->cb 2008-10-06 18:14:57 -04:00