Bug 70031 - regression: b43 PHY transmission error, warning at lib/dma-debug.c:491 add_dma_entry+0x127/0x130()
Summary: regression: b43 PHY transmission error, warning at lib/dma-debug.c:491 add_dm...
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: network-wireless (show other bugs)
Hardware: x86-64 Linux
: P1 high
Assignee: drivers_network-wireless@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-02-05 03:58 UTC by Chris Murphy
Modified: 2014-02-22 01:35 UTC (History)
5 users (show)

See Also:
Kernel Version: 3.14.0-0.rc1.git0.2.fc21.x86_64
Subsystem:
Regression: Yes
Bisected commit-id:


Attachments
dmesg 3.14.0-0.rc1.git0.2.fc21.x86_64 (110.00 KB, text/plain)
2014-02-05 03:58 UTC, Chris Murphy
Details
lspci (2.59 KB, text/plain)
2014-02-05 04:00 UTC, Chris Murphy
Details
dmesg 3.11.10-301.fc20.x86_64 (97.03 KB, text/plain)
2014-02-05 04:17 UTC, Chris Murphy
Details
journal.log (392.59 KB, text/plain)
2014-02-05 04:45 UTC, Chris Murphy
Details
dmesg 3.14.0-0.rc1.git1.1.fc21.x86_64 (137.44 KB, text/plain)
2014-02-06 06:04 UTC, Chris Murphy
Details
dmesg 3.14.0-0.rc1.git1.1.rev64e5acb.fc20.x86_64 (147.93 KB, text/plain)
2014-02-06 06:06 UTC, Chris Murphy
Details

Description Chris Murphy 2014-02-05 03:58:16 UTC
Created attachment 124541 [details]
dmesg 3.14.0-0.rc1.git0.2.fc21.x86_64

Upon connection to wireless access point, numerous kernel messages:
b43-phy0 ERROR: PHY transmission error, eventually resulting in wireless failure and kernel message:

[  112.702339] b43-phy0 ERROR: PHY transmission error
[  171.473736] ------------[ cut here ]------------
[  171.473744] WARNING: CPU: 0 PID: 116 at lib/dma-debug.c:491 add_dma_entry+0x127/0x130()
[  171.473745] DMA-API: exceeded 7 overlapping mappings of pfn 2537ac
[  171.473746] Modules linked in: fuse ccm ip6t_rpfilter ip6t_REJECT xt_conntrack ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_security iptable_raw arc4 b43 mac80211 cfg80211 ssb iTCO_wdt iTCO_vendor_support applesmc input_polldev nls_utf8 hfsplus uvcvideo x86_pkg_temp_thermal videobuf2_vmalloc videobuf2_memops coretemp btusb kvm_intel hid_appleir kvm crct10dif_pclmul bluetooth videobuf2_core crc32_pclmul videodev crc32c_intel ghash_clmulni_intel 6lowpan_iphc rfkill media bcm5974 microcode i2c_i801 sdhci_pci tg3 ptp sdhci mmc_core snd_hda_codec_cirrus
[  171.473784]  pps_core snd_hda_codec_generic sbs snd_hda_codec_hdmi snd_hda_intel snd_hda_codec sbshc snd_hwdep snd_seq apple_gmux snd_seq_device snd_pcm apple_bl bcma snd_timer snd mei_me soundcore mei lpc_ich shpchp mfd_core nfsd auth_rpcgss nfs_acl lockd sunrpc btrfs libcrc32c xor raid6_pq radeon i915 i2c_algo_bit firewire_ohci drm_kms_helper ttm firewire_core drm crc_itu_t i2c_core video
[  171.473812] CPU: 0 PID: 116 Comm: kworker/u16:4 Not tainted 3.14.0-0.rc1.git0.2.fc21.x86_64 #1
[  171.473813] Hardware name: Apple Inc. MacBookPro8,2/Mac-94245A3940C91C80, BIOS    MBP81.88Z.0047.B27.1201241646 01/24/12
[  171.473818] Workqueue: phy0 b43_tx_work [b43]
[  171.473820]  0000000000000000 000000003585fa80 ffff88025ff8fb48 ffffffff817cef2d
[  171.473823]  ffff88025ff8fb90 ffff88025ff8fb80 ffffffff810967cd 00000000002537ac
[  171.473826]  ffff8802605819c0 0000000000000292 ffffffff82d7e340 0000000000000292
[  171.473828] Call Trace:
[  171.473832]  [<ffffffff817cef2d>] dump_stack+0x4d/0x66
[  171.473835]  [<ffffffff810967cd>] warn_slowpath_common+0x7d/0xa0
[  171.473837]  [<ffffffff8109684c>] warn_slowpath_fmt+0x5c/0x80
[  171.473839]  [<ffffffff813f353d>] ? active_pfn_read_overlap+0x2d/0x50
[  171.473841]  [<ffffffff813f3b07>] add_dma_entry+0x127/0x130
[  171.473843]  [<ffffffff813f3e6a>] debug_dma_map_page+0x11a/0x140
[  171.473850]  [<ffffffffa08421f2>] b43_dma_tx+0x2a2/0xbf0 [b43]
[  171.473856]  [<ffffffffa08136f2>] b43_tx_work+0xa2/0x130 [b43]
[  171.473859]  [<ffffffff810bba80>] process_one_work+0x220/0x6f0
[  171.473861]  [<ffffffff810bba14>] ? process_one_work+0x1b4/0x6f0
[  171.473866]  [<ffffffff810bc06b>] worker_thread+0x11b/0x3a0
[  171.473868]  [<ffffffff810bbf50>] ? process_one_work+0x6f0/0x6f0
[  171.473871]  [<ffffffff810c43cf>] kthread+0xff/0x120
[  171.473873]  [<ffffffff810c42d0>] ? insert_kthread_work+0x80/0x80
[  171.473876]  [<ffffffff817e2cfc>] ret_from_fork+0x7c/0xb0
[  171.473878]  [<ffffffff810c42d0>] ? insert_kthread_work+0x80/0x80
[  171.473879] ---[ end trace 35c2b50962922df9 ]---
[  171.518691] b43-phy0 ERROR: PHY transmission error


Uncertain when this was last working so I'll need to test some older kernels.

Configuration:
Apple MacBookPro 8,2
03:00.0 Network controller: Broadcom Corporation BCM4331 802.11a/b/g/n (rev 02)

Wireless access point:
Linksys WRT600N v1.1
DD-WRT v24-sp2 (07/24/13) mini-usb-ftp - build 22118 
Linux 2.4.37 #32206 Wed Jul 24 02:20:18 CEST 2013 mips
Comment 1 Chris Murphy 2014-02-05 04:00:01 UTC
Created attachment 124551 [details]
lspci
Comment 2 Chris Murphy 2014-02-05 04:17:18 UTC
Created attachment 124561 [details]
dmesg 3.11.10-301.fc20.x86_64

Problem does not occur with this kernel.
Comment 3 Chris Murphy 2014-02-05 04:39:16 UTC
Problem also does not occur with kernels 3.12.9-301.fc20.x86_64 or 3.13.0-1.fc21.x86_64. So it appears to be a new regression in 3.14.
Comment 4 Chris Murphy 2014-02-05 04:45:05 UTC
Created attachment 124571 [details]
journal.log

journalctl -xb -o short-monotonic
3.14.0-0.rc1.git0.2.fc21.x86_64

Different boot of 3.14 debug kernel, but same results as the first posted dmesg, this time with journal output so more things other than just kernel events can be seen.

Wireless works for a minute or two, web browsing in FireFox increasingly gets sluggish, but then eventually FireFox gives up on all subsequent attempts.
Comment 5 Larry Finger 2014-02-05 18:02:03 UTC
Thanks for the complete posting.

I do not have a 14e4:4331 device, but I have posted on the wireless and b43 mailing lists to see if anyone else has seen the problem. My 1434:4315 does not have this problem, which is a an indication that changes in the rest of the kernel did not cause this problem. One difficulty is that I do not understand the "PHY transmission error" messages. They are some kind of error indication from the firmware that the TX descriptor is faulty, but the cause is not clear. A further complication is that we have no source for that firmware.

I reviewed the changes to both bcma and b43 between 3.13 and 3.14-rc1. None of the bcma changes is likely to be the problem. The only change for b43 that cannot be ruled out is one that fixed a definite bug. It is possible, however, that fixing that bug exposed another that is now triggering on your device.

Is it possible for you to obtain the full mainline git repo and bisect the problem?
Comment 6 Chris Murphy 2014-02-06 06:01:21 UTC
I haven't done a bisect yet. However, I've reproduced the problem with 3.14.0-0.rc1.git1.1.fc21.x86_64, and then reverted this:
https://gitorious.org/linux-can/linux-can/commit/64e5acb09ca6b50c97299cff9ef51299470b29f2.patch
from kernel-3.14.0-0.rc1.git1.1.fc21.src.rpm, built it, and the problem still occurs. I'll attach a journal -k from each.
Comment 7 Chris Murphy 2014-02-06 06:04:29 UTC
Created attachment 124761 [details]
dmesg 3.14.0-0.rc1.git1.1.fc21.x86_64
Comment 8 Chris Murphy 2014-02-06 06:06:28 UTC
Created attachment 124771 [details]
dmesg 3.14.0-0.rc1.git1.1.rev64e5acb.fc20.x86_64

This is with patch reverted.
Comment 9 Larry Finger 2014-02-06 07:25:06 UTC
I think a bisection is needed.
Comment 10 Hauke Mehrtens 2014-02-06 11:39:12 UTC
I tried backports with the wireless code from 3.14-rc1 on a 3.10.28 kernel and had no problems with an BCM4331 in AP mode on a MIPS BCM4706 SoC.

Currently I think that some change in some non b43 code caused this problem or made it visible.
I will try kernel 3.14-rc on this device in the next days.
Comment 11 xguimax 2014-02-21 23:09:00 UTC
The official BCM wireless (module wl.ko compilable from broadcom) module worked up to kernel 3.5. In 3.11 it does no more works.

b43 works pretty bad and should be replaced by this one: http://www.broadcom.com/support/802.11/linux_sta.php
Comment 12 Larry Finger 2014-02-22 01:35:11 UTC
As that one is not GPL licensed and closed source, there is no chance of it being added to the kernel!

If b43 does not work for you, then help debug it.

BTW, I am still waiting for a bisection.

Note You need to log in before you can comment on or make changes to this bug.