• Neil Horman's avatar
    atl1e: fix dma mapping warnings · 352900b5
    Neil Horman authored
    Recently had this backtrace reported:
    WARNING: at lib/dma-debug.c:937 check_unmap+0x47d/0x930()
    Hardware name: System Product Name
    ATL1E 0000:02:00.0: DMA-API: device driver failed to check map error[device
    address=0x00000000cbfd1000] [size=90 bytes] [mapped as single]
    Modules linked in: xt_conntrack nf_conntrack ebtable_filter ebtables
    ip6table_filter ip6_tables snd_hda_codec_hdmi snd_hda_codec_realtek iTCO_wdt
    iTCO_vendor_support snd_hda_intel acpi_cpufreq mperf coretemp btrfs zlib_deflate
    snd_hda_codec snd_hwdep microcode raid6_pq libcrc32c snd_seq usblp serio_raw xor
    snd_seq_device joydev snd_pcm snd_page_alloc snd_timer snd lpc_ich i2c_i801
    soundcore mfd_core atl1e asus_atk0110 ata_generic pata_acpi radeon i2c_algo_bit
    drm_kms_helper ttm drm i2c_core pata_marvell uinput
    Pid: 314, comm: systemd-journal Not tainted 3.9.0-0.rc6.git2.3.fc19.x86_64 #1
    Call Trace:
     <IRQ>  [<ffffffff81069106>] warn_slowpath_common+0x66/0x80
     [<ffffffff8106916c>] warn_slowpath_fmt+0x4c/0x50
     [<ffffffff8138151d>] check_unmap+0x47d/0x930
     [<ffffffff810ad048>] ? sched_clock_cpu+0xa8/0x100
     [<ffffffff81381a2f>] debug_dma_unmap_page+0x5f/0x70
     [<ffffffff8137ce30>] ? unmap_single+0x20/0x30
     [<ffffffffa01569a1>] atl1e_intr+0x3a1/0x5b0 [atl1e]
     [<ffffffff810d53fd>] ? trace_hardirqs_off+0xd/0x10
     [<ffffffff81119636>] handle_irq_event_percpu+0x56/0x390
     [<ffffffff811199ad>] handle_irq_event+0x3d/0x60
     [<ffffffff8111cb6a>] handle_fasteoi_irq+0x5a/0x100
     [<ffffffff8101c36f>] handle_irq+0xbf/0x150
     [<ffffffff811dcb2f>] ? file_sb_list_del+0x3f/0x50
     [<ffffffff81073b10>] ? irq_enter+0x50/0xa0
     [<ffffffff8172738d>] do_IRQ+0x4d/0xc0
     [<ffffffff811dcb2f>] ? file_sb_list_del+0x3f/0x50
     [<ffffffff8171c6b2>] common_interrupt+0x72/0x72
     <EOI>  [<ffffffff810db5b2>] ? lock_release+0xc2/0x310
     [<ffffffff8109ea04>] lg_local_unlock_cpu+0x24/0x50
     [<ffffffff811dcb2f>] file_sb_list_del+0x3f/0x50
     [<ffffffff811dcb6d>] fput+0x2d/0xc0
     [<ffffffff811d8ea1>] filp_close+0x61/0x90
     [<ffffffff811fae4d>] __close_fd+0x8d/0x150
     [<ffffffff811d8ef0>] sys_close+0x20/0x50
     [<ffffffff81725699>] system_call_fastpath+0x16/0x1b
    
    The usual straighforward failure to check for dma_mapping_error after a map
    operation is completed.
    
    This patch should fix it, the reporter wandered off after filing this bz:
    https://bugzilla.redhat.com/show_bug.cgi?id=954170
    
    and I don't have hardware to test, but the fix is pretty straightforward, so I
    figured I'd post it for review.
    Signed-off-by: default avatarNeil Horman <nhorman@tuxdriver.com>
    CC: Jay Cliburn <jcliburn@gmail.com>
    CC: Chris Snook <chris.snook@gmail.com>
    CC: "David S. Miller" <davem@davemloft.net>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    352900b5
atl1e_main.c 67.5 KB