linux/drivers/net
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
..
appletalk net: Rationalise email address: Network Specific Parts 2008-10-13 19:01:08 -07:00
arcnet drivers/net: replace __FUNCTION__ with __func__ 2008-09-24 18:59:00 -04:00
arm at91_ether: request/free GPIO for PHY interrupt 2008-10-31 00:47:56 -04:00
atl1e atl1e: fix broken multicast by removing unnecessary crc inversion 2008-11-14 18:18:55 -05:00
atlx atl2: don't request irq on resume if netif running 2008-11-20 04:18:25 -08:00
bonding bonding: fix panic when taking bond interface down before removing module 2008-10-31 00:46:12 -04:00
can
chelsio
cris [CRIS] Move header files from include to arch/cris/include. 2008-10-29 17:29:44 +01:00
cxgb3 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2008-11-12 10:56:31 -08:00
e1000 e1000: Use device_set_wakeup_enable 2008-11-16 01:35:56 -08:00
e1000e e1000e: fix IPMI traffic 2008-11-16 19:05:16 -08:00
ehea ehea: Detect 16GB hugepages for firmware restriction 2008-10-27 14:49:55 -04:00
enic net: fix driver build errors due to missing net/ip6_checksum.h include 2008-10-13 18:41:01 -07:00
fs_enet fs_enet: fix polling 2008-11-03 15:23:02 -05:00
hamradio drivers/net: use nr_irqs 2008-10-16 16:52:05 +02:00
ibm_newemac ibm_newemac: Fix typo in flow control config option 2008-10-27 14:49:58 -04:00
igb igb: use dev_printk instead of printk 2008-11-16 01:42:36 -08:00
irda IRDA: remove double inclusion of module.h 2008-11-01 21:30:50 -07:00
ixgb ixgb: fix bug when freeing resources 2008-10-08 16:53:40 -07:00
ixgbe ixgbe: fix compilation with gcc-3.4 2008-11-19 14:17:02 -08:00
ixp2000
mlx4 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-11-17 07:53:25 -08:00
myri10ge myri10ge: fix stop/go ordering even more 2008-11-11 03:49:53 -05:00
netxen netxen: enable msi-x for quad-gig boards 2008-09-24 18:59:01 -04:00
pcmcia axnet_cs / pcnet_cs: moving PCMCIA_DEVICE_PROD_ID for Netgear FA411 2008-11-21 16:06:12 -08:00
phy phy: fix phy_id detection also for broken hardware. 2008-11-20 20:43:18 -08:00
qlge qlge: Fix MSI/legacy single interrupt bug. 2008-10-22 07:00:49 -04:00
sfc sfc: Correct address of gPXE boot configuration in EEPROM 2008-11-07 03:33:45 -05:00
skfp drivers/net/skfp/pmf.c: Use offsetof() macro 2008-09-24 18:48:56 -04:00
tokenring net: Rationalise email address: Network Specific Parts 2008-10-13 19:01:08 -07:00
tulip dmfe: check pci_alloc_consistent errors 2008-10-27 14:49:02 -04:00
usb asix: Fix asix-based cards connecting to 10/100Mbs LAN. 2008-11-20 01:48:46 -08:00
wan net: delete excess kernel-doc notation 2008-10-30 23:54:35 -07:00
wireless ath9k: Fix SW-IOMMU bounce buffer starvation 2008-11-25 16:13:08 -05:00
3c59x.c drivers/net: use nr_irqs 2008-10-16 16:52:05 +02:00
3c501.c net: Rationalise email address: Network Specific Parts 2008-10-13 19:01:08 -07:00
3c501.h
3c503.c
3c503.h
3c505.c drivers/net: replace __FUNCTION__ with __func__ 2008-09-24 18:59:00 -04:00
3c505.h
3c507.c
3c509.c el3_common_init() should be __devinit, not __init 2008-11-07 03:33:44 -05:00
3c515.c net: Rationalise email address: Network Specific Parts 2008-10-13 19:01:08 -07:00
3c523.c
3c523.h
3c527.c
3c527.h
7990.c
7990.h
8139cp.c 8139x: reduce message severity on driver overlap 2008-10-22 07:00:28 -04:00
8139too.c 8139x: reduce message severity on driver overlap 2008-10-22 07:00:28 -04:00
8390.c
8390.h
8390p.c
82596.c
a2065.c
a2065.h
ac3200.c
acenic_firmware.h
acenic.c
acenic.h
amd8111e.c amd8111e: fix dma_free_coherent context 2008-10-31 00:47:43 -04:00
amd8111e.h
apne.c
ariadne.c
ariadne.h
at1700.c
atarilance.c
atp.c
atp.h
au1000_eth.c net/au1000_eth.c MDIO namespace fixes 2008-10-12 21:02:19 -07:00
au1000_eth.h phylib: move to dynamic allocation of struct mii_bus 2008-10-08 16:29:57 -07:00
ax88796.c AX88796: ax_probe() fix irq assignment 2008-10-22 06:22:08 -04:00
b44.c
b44.h
bfin_mac.c net/bfin_mac.c MDIO namespace fixes 2008-10-12 21:15:17 -07:00
bfin_mac.h phylib: move to dynamic allocation of struct mii_bus 2008-10-08 16:29:57 -07:00
bmac.c
bmac.h
bnx2_fw2.h
bnx2_fw.h bnx2: Update 5706/5708 firmware. 2008-10-09 12:22:38 -07:00
bnx2.c bnx2: fix poll_controller to pass proper structures and check all rx queues 2008-11-12 16:23:44 -08:00
bnx2.h bnx2: Handle DMA mapping errors. 2008-10-09 12:26:41 -07:00
bnx2x_fw_defs.h
bnx2x_hsi.h
bnx2x_init_values.h
bnx2x_init.h bnx2x: PCI configuration bug on big-endian 2008-11-03 16:46:19 -08:00
bnx2x_link.c
bnx2x_link.h
bnx2x_main.c bnx2x: Version Update 2008-11-03 16:46:58 -08:00
bnx2x_reg.h
bnx2x.h bnx2x: Accessing un-mapped page 2008-09-03 14:38:00 -07:00
bsd_comp.c
cassini.c cassini: use request_firmware 2008-09-22 19:27:10 -07:00
cassini.h cassini: use request_firmware 2008-09-22 19:27:10 -07:00
cpmac.c phylib: move to dynamic allocation of struct mii_bus 2008-10-08 16:29:57 -07:00
cs89x0.c Remove Andrew Morton's old email accounts 2008-10-16 11:21:32 -07:00
cs89x0.h
de600.c
de600.h
de620.c
de620.h
declance.c
defxx.c
defxx.h
depca.c
depca.h
dl2k.c
dl2k.h
dm9000.c netdev: DM9000: remove BLACKFIN hacking in DM9000 netdev driver 2008-10-22 06:22:15 -04:00
dm9000.h
dummy.c
e100.c e100: fix dma error in direction for mapping 2008-11-16 01:45:24 -08:00
e2100.c
eepro100.c
eepro.c
eexpress.c net: Rationalise email address: Network Specific Parts 2008-10-13 19:01:08 -07:00
eexpress.h
enc28j60_hw.h
enc28j60.c drivers/net: replace __FUNCTION__ with __func__ 2008-09-24 18:59:00 -04:00
epic100.c
eql.c
es3210.c
eth16i.c
ewrk3.c
ewrk3.h
fealnx.c netdev: uniquify the tx_timeout name 2008-10-08 17:09:54 -07:00
fec_mpc52xx_phy.c powerpc/mpc5200: Refactor FEC mdio read/write routines 2008-10-15 11:10:00 -06:00
fec_mpc52xx.c [netdrvr] fec_mpc52xx: Implement polling, to make netconsole work. 2008-10-22 07:26:49 -04:00
fec_mpc52xx.h
fec.c
fec.h
forcedeth.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-10-01 06:12:56 -07:00
gianfar_ethtool.c
gianfar_mii.c gianfar: Fix race in TBI/SerDes configuration 2008-10-31 00:59:46 -04:00
gianfar_mii.h gianfar: Fix race in TBI/SerDes configuration 2008-10-31 00:59:46 -04:00
gianfar_sysfs.c
gianfar.c gianfar: Fix DMA unmap invocations 2008-11-14 18:18:30 -05:00
gianfar.h
hamachi.c
hp100.c
hp100.h
hp-plus.c hpplus: fix build regression 2008-09-16 19:35:05 -07:00
hp.c
hplance.c
hplance.h
hydra.c
ibmlana.c net: Rationalise email address: Network Specific Parts 2008-10-13 19:01:08 -07:00
ibmlana.h
ibmveth.c
ibmveth.h
ifb.c
ioc3-eth.c
ipg.c net: ipg.c fix bracing on endian swapping 2008-11-19 15:54:38 -08:00
ipg.h
isa-skeleton.c
iseries_veth.c
jazzsonic.c
jme.c net: jme.c rxdesc.flags is __le16, other missing endian swaps 2008-11-19 15:50:59 -08:00
jme.h jme: Advances version number 2008-10-08 19:51:33 -07:00
Kconfig net: kconfig cleanup 2008-11-03 15:23:12 -05:00
korina.c
lance.c
lasi_82596.c
lib8390.c lib8390: Fix locking in ei_poll (poll controller) 2008-10-08 16:56:48 -07:00
lib82596.c
LICENSE.SRC
lne390.c
loopback.c net: Really remove all of LOOPBACK_TSO code. 2008-10-31 00:00:33 -07:00
lp486e.c
mac89x0.c
mac8390.c
macb.c phylib: move to dynamic allocation of struct mii_bus 2008-10-08 16:29:57 -07:00
macb.h phylib: move to dynamic allocation of struct mii_bus 2008-10-08 16:29:57 -07:00
mace.c
mace.h
macmace.c net: Rationalise email address: Network Specific Parts 2008-10-13 19:01:08 -07:00
macsonic.c
macvlan.c
Makefile net/hp-plus: fix link errors 2008-11-21 16:33:25 -08:00
meth.c drivers/net: replace __FUNCTION__ with __func__ 2008-09-24 18:59:00 -04:00
meth.h
mii.c
mipsnet.c drivers/net: replace __FUNCTION__ with __func__ 2008-09-24 18:59:00 -04:00
mv643xx_eth.c mv643xx_eth: fix recycle check bound 2008-11-20 01:39:52 -08:00
mvme147.c
myri_code.h
myri_sbus.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-10-11 12:39:35 -07:00
myri_sbus.h
natsemi.c netdev: uniquify the tx_timeout name 2008-10-08 17:09:54 -07:00
ne2.c
ne2k-pci.c
ne3210.c
ne-h8300.c
ne.c ne.c: fix rmmod, platform driver improvements 2008-09-24 20:49:00 -04:00
netconsole.c
netx-eth.c drivers/net: replace __FUNCTION__ with __func__ 2008-09-24 18:59:00 -04:00
ni52.c
ni52.h
ni65.c
ni65.h
ni5010.c
ni5010.h
niu.c niu: Bump driver version and release date. 2008-11-14 14:47:29 -08:00
niu.h NIU: Add Sun CP3260 ATCA blade support 2008-11-14 14:44:08 -08:00
ns83820.c
pasemi_mac_ethtool.c
pasemi_mac.c
pasemi_mac.h
pci-skeleton.c drivers/net: replace __FUNCTION__ with __func__ 2008-09-24 18:59:00 -04:00
pcnet32.c
plip.c
ppp_async.c
ppp_deflate.c
ppp_generic.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2008-10-16 12:40:26 -07:00
ppp_mppe.c
ppp_mppe.h
ppp_synctty.c
pppoe.c pppoe: Fix socket leak. 2008-10-30 23:35:02 -07:00
pppol2tp.c net: Remove __skb_insert() calls outside of skbuff internals. 2008-09-21 21:28:51 -07:00
pppox.c remove CONFIG_KMOD from drivers 2008-10-17 02:38:35 +11:00
ps3_gelic_net.c
ps3_gelic_net.h
ps3_gelic_wireless.c
ps3_gelic_wireless.h
qla3xxx.c qla3xxx: Cleanup: Fix link print statements. 2008-11-16 01:38:18 -08:00
qla3xxx.h
r6040.c r6040: fix wrong assignment in r6040_free_txbufs 2008-09-24 20:48:08 -04:00
r8169.c r8169: revert "read MAC address from EEPROM on init" 2008-10-26 09:35:05 -07:00
rionet.c
rrunner.c
rrunner.h
s2io-regs.h
s2io.c drivers/net: replace __FUNCTION__ with __func__ 2008-09-24 18:59:00 -04:00
s2io.h s2io: Fix enabling VLAN tag stripping at driver initialization 2008-09-24 18:49:04 -04:00
sb1000.c
sb1250-mac.c phylib: move to dynamic allocation of struct mii_bus 2008-10-08 16:29:57 -07:00
sc92031.c
seeq8005.c
seeq8005.h
sgiseeq.c
sgiseeq.h
sh_eth.c sh: sh_eth: Update to change of mii_bus 2008-11-20 01:28:30 -08:00
sh_eth.h
sis190.c sis190: add identifier for Atheros AR8021 PHY 2008-10-22 07:00:34 -04:00
sis900.c
sis900.h
skge.c skge: Fix skge_set_ring_param() losing error return 2008-10-08 16:02:40 -07:00
skge.h
sky2.c sky2: Fix WOL regression 2008-10-12 20:59:48 -07:00
sky2.h
slhc.c
slip.c
slip.h
smc91x.c SMC91x: Fix compilation on some platforms. 2008-11-03 00:19:31 -08:00
smc91x.h Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2008-10-11 10:09:45 -07:00
smc911x.c smc911x: Fix printf format typo in smc911x driver. 2008-11-20 01:56:08 -08:00
smc911x.h SMC911x: unbreak PXA builds 2008-10-22 06:22:13 -04:00
smc9194.c
smc9194.h
smc-mca.c
smc-ultra32.c
smc-ultra.c
sni_82596.c
sonic.c
sonic.h
Space.c
spider_net_ethtool.c
spider_net.c
spider_net.h
starfire_firmware.h
starfire_firmware.pl
starfire.c
stnic.c
sun3_82586.c
sun3_82586.h
sun3lance.c
sunbmac.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-10-11 12:39:35 -07:00
sunbmac.h
sundance.c sundance: set carrier status on link change events 2008-09-24 18:59:01 -04:00
sungem_phy.c
sungem_phy.h
sungem.c
sungem.h
sunhme.c
sunhme.h
sunlance.c
sunqe.c
sunqe.h
sunvnet.c
sunvnet.h
tc35815.c net/tc35815.c: fix compilation 2008-10-12 21:01:53 -07:00
tehuti_fw.h
tehuti.c
tehuti.h drivers/net: replace __FUNCTION__ with __func__ 2008-09-24 18:59:00 -04:00
tg3.c phylib: move to dynamic allocation of struct mii_bus 2008-10-08 16:29:57 -07:00
tg3.h phylib: move to dynamic allocation of struct mii_bus 2008-10-08 16:29:57 -07:00
tlan.c net: Rationalise email address: Network Specific Parts 2008-10-13 19:01:08 -07:00
tlan.h
tsi108_eth.c drivers/net: replace __FUNCTION__ with __func__ 2008-09-24 18:59:00 -04:00
tsi108_eth.h
tun.c saner FASYNC handling on file close 2008-11-01 09:49:46 -07:00
typhoon-firmware.h
typhoon.c
typhoon.h
ucc_geth_ethtool.c net/ucc_geth: Fix oops in uec_get_ethtool_stats() 2008-11-14 18:18:17 -05:00
ucc_geth_mii.c phylib: move to dynamic allocation of struct mii_bus 2008-10-08 16:29:57 -07:00
ucc_geth_mii.h
ucc_geth.c drivers/net: replace __FUNCTION__ with __func__ 2008-09-24 18:59:00 -04:00
ucc_geth.h
veth.c
via-rhine.c via-rhine: changed to use netdev_alloc_skb() from dev_alloc_skb 2008-09-03 10:24:04 -04:00
via-velocity.c via-velocity: enable perfect filtering for multicast packets 2008-11-16 00:39:35 -08:00
via-velocity.h drivers/net: replace __FUNCTION__ with __func__ 2008-09-24 18:59:00 -04:00
virtio_net.c
wd.c
xen-netfront.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-10-17 08:58:52 -07:00
xtsonic.c xtensa: Add support for the Sonic Ethernet device for the XT2000 board. 2008-10-21 07:58:06 -07:00
yellowfin.c
znet.c
zorro8390.c