From: John Greene Date: Tue, 11 Mar 2014 18:08:34 +0000 (-0400) Subject: ath5k: add missing dma_map_error call X-Git-Tag: v4.9.8~6652^2~18^2^2~116 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b499abdc76d8b9780cb8918b8755e0437f741d80;p=platform%2Fkernel%2Flinux-rpi3.git ath5k: add missing dma_map_error call Trivial patch to address this trace. Now calls dma_mapping_error and return -ENOSPC if a problem found. WARNING: at lib/dma-debug.c:933 check_unmap+0x47b/0x960() Hardware name: Aspire 5515 ath5k 0000:02:00.0: DMA-API: device driver failed to check map error[device address=0x00000000874fcd42] [size=45 bytes] [mapped as single] Modules linked in: bnep bluetooth ebtable_filter ebtables ip6table_filter ip6_tables be2iscsi iscsi_boot_sysfs bnx2i cnic uio cxgb4i cxgb4 cxgb3i cxgb3 mdio libcxgbi ib_iser rdma_cm ib_addr iw_cm ib_cm ib_sa ib_mad ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi arc4 snd_hda_codec_realtek snd_hda_intel snd_hda_codec snd_hwdep snd_seq snd_seq_device ath5k ath snd_pcm sparse_keymap snd_page_alloc mac80211 snd_timer sp5100_tco snd edac_core k8temp soundcore edac_mce_amd i2c_piix4 cfg80211 rfkill shpchp vhost_net tun macvtap macvlan kvm_amd kvm uinput dm_crypt ata_generic pata_acpi radeon i2c_algo_bit pata_atiixp drm_kms_helper ttm drm r8169 mii i2c_core wmi video sunrpc Pid: 820, comm: firewalld Not tainted 3.9.0-0.rc3.git1.4.fc19.x86_64 #1 Call Trace: [] warn_slowpath_common+0x70/0xa0 [] warn_slowpath_fmt+0x4c/0x50 [] check_unmap+0x47b/0x960 [] ? native_sched_clock+0x15/0x80 [] ? sched_clock+0x9/0x10 [] debug_dma_unmap_page+0x5f/0x70 [] ath5k_tasklet_tx+0x157/0x3f0 [ath5k] [] ? sched_clock_local+0x1d/0x80 [] ? tasklet_action+0x56/0x210 [] tasklet_action+0x97/0x210 [] __do_softirq+0xff/0x400 [] irq_exit+0xb5/0xc0 [] do_IRQ+0x56/0xc0 [] common_interrupt+0x72/0x72 [] ? dput+0x111/0x310 [] ? dput+0x37/0x310 [] link_path_walk+0x528/0x910 [] path_openat+0x94/0x530 [] do_filp_open+0x38/0x80 [] open_exec+0x4a/0x130 [] load_elf_binary+0x7f3/0x18e0 [] ? sched_clock+0x9/0x10 [] ? sched_clock_local+0x1d/0x80 [] ? sched_clock_cpu+0xa8/0x100 [] ? trace_hardirqs_off+0xd/0x10 [] ? local_clock+0x5f/0x70 [] ? lock_release_holdtime.part.28+0xf/0x190 [] ? elf_core_dump+0x1980/0x1980 [] search_binary_handler+0x1a1/0x4f0 [] ? search_binary_handler+0x67/0x4f0 [] do_execve_common.isra.26+0x64c/0x710 [] ? do_execve_common.isra.26+0x112/0x710 [] sys_execve+0x36/0x50 [] stub_execve+0x69/0xa0 Signed-off-by: John Greene Signed-off-by: John W. Linville --- diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c index ef35da8..4b18434 100644 --- a/drivers/net/wireless/ath/ath5k/base.c +++ b/drivers/net/wireless/ath/ath5k/base.c @@ -751,6 +751,9 @@ ath5k_txbuf_setup(struct ath5k_hw *ah, struct ath5k_buf *bf, bf->skbaddr = dma_map_single(ah->dev, skb->data, skb->len, DMA_TO_DEVICE); + if (dma_mapping_error(ah->dev, bf->skbaddr)) + return -ENOSPC; + ieee80211_get_tx_rates(info->control.vif, (control) ? control->sta : NULL, skb, bf->rates, ARRAY_SIZE(bf->rates));