• N
    forcedeth: Do a dma_mapping_error check after skb_frag_dma_map · f7f22874
    Neil Horman 提交于
    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: NNeil Horman <nhorman@tuxdriver.com>
    CC: "David S. Miller" <davem@davemloft.net>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    f7f22874
forcedeth.c 189.8 KB