android_kernel_motorola_sm6225/drivers/net
Neil Horman f7f2287426 forcedeth: Do a dma_mapping_error check after skb_frag_dma_map
This backtrace was recently reported on a 3.9 kernel:

Actual results: from syslog /var/log/messsages:
kernel: [17539.340285] ------------[ cut here ]------------
kernel: [17539.341012] WARNING: at lib/dma-debug.c:937 check_unmap+0x493/0x960()
kernel: [17539.341012] Hardware name: MS-7125
kernel: [17539.341012] forcedeth 0000:00:0a.0: DMA-API: device driver failed to
check map error[device address=0x0000000013c88000] [size=544 bytes] [mapped as
page]
kernel: [17539.341012] Modules linked in: fuse ebtable_nat ipt_MASQUERADE
nf_conntrack_netbios_ns nf_conntrack_broadcast ip6table_nat nf_nat_ipv6
ip6table_mangle ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 iptable_nat
nf_nat_ipv4 nf_nat iptable_mangle nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack
nf_conntrack bnep bluetooth rfkill ebtable_filter ebtables ip6table_filter
ip6_tables snd_hda_codec_hdmi snd_cmipci snd_mpu401_uart snd_hda_intel
snd_intel8x0 snd_opl3_lib snd_ac97_codec gameport snd_hda_codec snd_rawmidi
ac97_bus snd_hwdep snd_seq snd_seq_device snd_pcm snd_page_alloc snd_timer snd
k8temp soundcore serio_raw i2c_nforce2 forcedeth ata_generic pata_acpi nouveau
video mxm_wmi wmi i2c_algo_bit drm_kms_helper ttm drm i2c_core sata_sil pata_amd
sata_nv uinput
kernel: [17539.341012] Pid: 17340, comm: sshd Not tainted
3.9.0-0.rc4.git0.1.fc19.i686.PAE #1
kernel: [17539.341012] Call Trace:
kernel: [17539.341012]  [<c045573c>] warn_slowpath_common+0x6c/0xa0
kernel: [17539.341012]  [<c0701953>] ? check_unmap+0x493/0x960
kernel: [17539.341012]  [<c0701953>] ? check_unmap+0x493/0x960
kernel: [17539.341012]  [<c04557a3>] warn_slowpath_fmt+0x33/0x40
kernel: [17539.341012]  [<c0701953>] check_unmap+0x493/0x960
kernel: [17539.341012]  [<c049238f>] ? sched_clock_cpu+0xdf/0x150
kernel: [17539.341012]  [<c0701e87>] debug_dma_unmap_page+0x67/0x70
kernel: [17539.341012]  [<f7eae8f2>] nv_unmap_txskb.isra.32+0x92/0x100

Its pretty plainly the result of an skb fragment getting unmapped without having
its initial mapping operation checked for errors.  This patch corrects that.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
CC: "David S. Miller" <davem@davemloft.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-04-02 14:32:24 -04:00
..
appletalk appletalk: remove "config IPDDP_DECAP" 2013-03-22 10:21:09 -04:00
arcnet
bonding Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-04-01 13:36:50 -04:00
caif caif: remove caif_shm 2013-03-17 12:16:38 -04:00
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-04-01 13:36:50 -04:00
cris ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
dsa DSA: Convert spaces to tabs where appropriate 2013-01-10 00:04:34 -08:00
ethernet forcedeth: Do a dma_mapping_error check after skb_frag_dma_map 2013-04-02 14:32:24 -04:00
fddi drivers:net: dma_alloc_coherent: use __GFP_ZERO instead of memset(, 0) 2013-03-17 12:50:24 -04:00
hamradio yam: remove redundant null check on dev 2013-03-27 14:30:55 -04:00
hippi rrunner.c: fix possible memory leak in rr_init_one() 2013-03-10 16:42:23 -04:00
hyperv Char/Misc driver patches for 3.9-rc1 2013-02-21 13:57:13 -08:00
ieee802154 ieee802154/at86rf230: Fix register names for RX_AACK_ON and TX_ARET_ON 2013-03-27 00:52:07 -04:00
irda net: au1k_ir: Use module_platform_driver() 2013-03-20 13:25:36 -04:00
phy phy: Elimination the forced speed reduction algorithm. 2013-03-27 13:10:43 -04:00
plip net: add ETH_P_802_3_MIN 2013-03-28 01:20:42 -04:00
ppp ppp: reuse print_hex_dump_bytes 2013-03-27 12:48:33 -04:00
slip tty: Added a CONFIG_TTY option to allow removal of TTY 2013-01-18 16:15:27 -08:00
team Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-03-12 05:52:22 -04:00
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-04-01 13:36:50 -04:00
vmxnet3 vmxnet3: prevent div-by-zero panic when ring resizing uninitialized dev 2013-03-07 16:10:47 -05:00
wan Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
wimax Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-02-20 18:58:50 -08:00
wireless Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-04-01 13:36:50 -04:00
xen-netback net: switch to use skb_probe_transport_header() 2013-03-27 12:48:31 -04:00
dummy.c
eql.c
ifb.c ifb: dont hard code inet_net use 2013-01-14 15:13:39 -05:00
Kconfig VXLAN: Fix vxlan stats handling. 2013-03-26 12:27:18 -04:00
LICENSE.SRC
loopback.c net: loopback: fix a dst refcounting issue 2013-01-27 01:30:35 -05:00
macvlan.c macvlan: use the right RCU api 2013-03-30 17:31:25 -04:00
macvtap.c net: switch to use skb_probe_transport_header() 2013-03-27 12:48:31 -04:00
Makefile net: Add support for NTB virtual ethernet device 2013-01-17 19:11:14 -08:00
mdio.c
mii.c
netconsole.c netconsole: don't call __netpoll_cleanup() while atomic 2013-03-12 06:58:55 -04:00
ntb_netdev.c ntb_netdev: Update Version 2013-01-20 15:48:14 -08:00
rionet.c ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
sb1000.c
Space.c drivers/net: delete old x86 variant of the seeq8005 driver 2013-01-22 10:39:56 -05:00
sungem_phy.c
tun.c net: switch to use skb_probe_transport_header() 2013-03-27 12:48:31 -04:00
veth.c veth: fix NULL dereference in veth_dellink() 2013-02-10 20:41:43 -05:00
virtio_net.c virtio: remove obsolete virtqueue_get_queue_index() 2013-03-22 10:23:34 -04:00
vxlan.c VXLAN: Fix sparse warnings. 2013-03-27 00:52:06 -04:00
xen-netfront.c xen-netfront: frags -> slots in xennet_get_responses 2013-03-25 12:19:26 -04:00