linux/drivers/net/ethernet
Neil Horman 9b4fe5fb0b via-rhine: fix dma mapping errors
this bug:
https://bugzilla.redhat.com/show_bug.cgi?id=951695

Reported a dma debug backtrace:

WARNING: at lib/dma-debug.c:937 check_unmap+0x47d/0x930()
Hardware name: To Be Filled By O.E.M.
via-rhine 0000:00:12.0: DMA-API: device driver failed to check map error[device
address=0x0000000075a837b2] [size=90 bytes] [mapped as single]
Modules linked in: ip6_tables gspca_spca561 gspca_main videodev media
snd_hda_codec_realtek snd_hda_intel i2c_viapro snd_hda_codec snd_hwdep snd_seq
ppdev mperf via_rhine coretemp snd_pcm mii microcode snd_page_alloc snd_timer
snd_mpu401 snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore parport_pc
parport shpchp ata_generic pata_acpi radeon i2c_algo_bit drm_kms_helper ttm drm
pata_via sata_via i2c_core uinput
Pid: 295, comm: systemd-journal Not tainted 3.9.0-0.rc6.git2.1.fc20.x86_64 #1
Call Trace:
 <IRQ>  [<ffffffff81068dd0>] warn_slowpath_common+0x70/0xa0
 [<ffffffff81068e4c>] warn_slowpath_fmt+0x4c/0x50
 [<ffffffff8137ec6d>] check_unmap+0x47d/0x930
 [<ffffffff810ace9f>] ? local_clock+0x5f/0x70
 [<ffffffff8137f17f>] debug_dma_unmap_page+0x5f/0x70
 [<ffffffffa0225edc>] ? rhine_ack_events.isra.14+0x3c/0x50 [via_rhine]
 [<ffffffffa02275f8>] rhine_napipoll+0x1d8/0xd80 [via_rhine]
 [<ffffffff815d3d51>] ? net_rx_action+0xa1/0x380
 [<ffffffff815d3e22>] net_rx_action+0x172/0x380
 [<ffffffff8107345f>] __do_softirq+0xff/0x400
 [<ffffffff81073925>] irq_exit+0xb5/0xc0
 [<ffffffff81724cd6>] do_IRQ+0x56/0xc0
 [<ffffffff81719ff2>] common_interrupt+0x72/0x72
 <EOI>  [<ffffffff8170ff57>] ? __slab_alloc+0x4c2/0x526
 [<ffffffff811992e0>] ? mmap_region+0x2b0/0x5a0
 [<ffffffff810d5807>] ? __lock_is_held+0x57/0x80
 [<ffffffff811992e0>] ? mmap_region+0x2b0/0x5a0
 [<ffffffff811bf1bf>] kmem_cache_alloc+0x2df/0x360
 [<ffffffff811992e0>] mmap_region+0x2b0/0x5a0
 [<ffffffff811998e6>] do_mmap_pgoff+0x316/0x3d0
 [<ffffffff81183ca0>] vm_mmap_pgoff+0x90/0xc0
 [<ffffffff81197d6c>] sys_mmap_pgoff+0x4c/0x190
 [<ffffffff81367d7e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
 [<ffffffff8101eb42>] sys_mmap+0x22/0x30
 [<ffffffff81722fd9>] system_call_fastpath+0x16/0x1b

Usual problem with the usual fix, add the appropriate calls to dma_mapping_error
where appropriate

Untested, as I don't have hardware, but its pretty straightforward

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
CC: David S. Miller <davem@davemloft.net>
CC: Roger Luethi <rl@hellgate.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-07-12 16:28:02 -07:00
..
3com net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
8390 net/trivial: replace numeric with standard PM state macros 2013-06-28 22:11:48 -07:00
adaptec net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
adi net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
aeroflex net: ethernet: use platform_{get,set}_drvdata() 2013-05-25 21:27:58 -07:00
allwinner net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
alteon net/ethernet/alteon/acenic: Use module_pci_driver to register driver 2013-05-22 14:35:04 -07:00
amd amd8111e: use pdev->pm_cap instead of pci_find_capability(.., PCI_CAP_ID_PM) 2013-06-19 22:22:56 -07:00
apple net: Restore unintentional reverts. 2013-06-24 12:43:40 -07:00
arc arc_emac: fix compile-time errors & warnings on PPC64 2013-06-26 01:35:44 -07:00
atheros atl1e: fix dma mapping warnings 2013-07-12 16:25:54 -07:00
broadcom bnx2x: fix tunneling CSUM calculation 2013-07-11 11:48:06 -07:00
brocade Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-07-09 18:24:39 -07:00
cadence drivers/net/ethernet/cadence: don't use devm_pinctrl_get_select_default() in probe 2013-07-11 17:18:26 -07:00
calxeda net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
chelsio cxgb3: Missing rtnl lock in error recovery 2013-07-02 12:37:48 -07:00
cirrus net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
cisco drivers/net: enic: release rtnl_lock on error-path 2013-07-09 12:55:48 -07:00
davicom net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
dec net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
dlink net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
emulex net/trivial: replace numeric with standard PM state macros 2013-06-28 22:11:48 -07:00
faraday net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
freescale net: fec: Add VLAN receive HW support. 2013-07-03 16:45:34 -07:00
fujitsu Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-05-01 14:08:52 -07:00
hp
i825xx drivers:net: Remove unnecessary OOM messages after netdev_alloc_skb 2013-03-09 16:09:19 -05:00
ibm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-07-09 18:24:39 -07:00
icplus net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
intel net: rename ll methods to busy-poll 2013-07-10 17:08:27 -07:00
marvell net: mv643xx_eth: do not use port number as platform device id 2013-07-09 12:51:47 -07:00
mellanox net: rename ll methods to busy-poll 2013-07-10 17:08:27 -07:00
micrel net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
microchip net: ethernet: enc28j60: use spi_get_drvdata() and spi_set_drvdata() 2013-04-07 16:48:19 -04:00
myricom net/trivial: replace numeric with standard PM state macros 2013-06-28 22:11:48 -07:00
natsemi net: vlan: add protocol argument to packet tagging functions 2013-04-19 14:46:06 -04:00
neterion treewide: Fix typo in printk 2013-06-18 13:48:45 +02:00
nuvoton net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
nvidia net/ethernet/nvidia/forcedeth: Use module_pci_driver to register driver 2013-05-22 14:35:05 -07:00
nxp net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
octeon Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-07-03 14:55:13 -07:00
oki-semi pch_gbe: use managed functions pcim_* and devm_* 2013-06-28 21:37:48 -07:00
packetengines net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
pasemi drivers:net: dma_alloc_coherent: use __GFP_ZERO instead of memset(, 0) 2013-03-17 12:50:24 -04:00
qlogic Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-07-09 18:24:39 -07:00
rdc net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
realtek r8169: add a new chip for RTL8411 2013-07-10 17:43:12 -07:00
renesas sh_eth: SH_ETH should depend on HAS_DMA 2013-07-10 19:47:14 -07:00
seeq net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
sfc sfc: Fix memory leak when discarding scattered packets 2013-07-05 01:29:15 -07:00
sgi net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
silan net/ethernet/silan/sc92031: Use module_pci_driver to register driver 2013-05-22 14:35:03 -07:00
sis net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
smsc net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
stmicro dt:net:stmmac: Add dt specific phy reset callback support. 2013-07-04 14:34:17 -07:00
sun cassini: Make missing firmware non-fatal 2013-07-01 23:47:33 -07:00
tehuti net: vlan: add protocol argument to packet tagging functions 2013-04-19 14:46:06 -04:00
ti Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-07-09 18:24:39 -07:00
tile tile: support new Tilera hypervisor 2013-05-02 16:20:31 -04:00
toshiba net/ethernet/toshiba/tc35815: Use module_pci_driver to register driver 2013-05-22 14:35:04 -07:00
tundra net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
via via-rhine: fix dma mapping errors 2013-07-12 16:28:02 -07:00
wiznet net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
xilinx net: emaclite: Convert to use devm_ioremap_resource 2013-06-12 02:22:35 -07:00
xircom Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-05-01 14:08:52 -07:00
xscale net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
dnet.c
dnet.h
ethoc.c net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
fealnx.c
jme.c net, jme: remove redundant D0 power state set 2013-05-31 01:39:08 -07:00
jme.h
Kconfig ethernet/arc/arc_emac - Add new driver 2013-06-25 16:34:32 -07:00
korina.c net: Restore unintentional reverts. 2013-06-24 12:43:40 -07:00
lantiq_etop.c lantiq_etop: use free_netdev(netdev) instead of kfree() 2013-03-21 11:50:10 -04:00
Makefile ethernet/arc/arc_emac - Add new driver 2013-06-25 16:34:32 -07:00
netx-eth.c net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
s6gmac.c net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00