Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Dec 2011 17:03:18 GMT
From:      Joel Dahl <joel@FreeBSD.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/163318: ath(4) stops working
Message-ID:  <201112151703.pBFH3ION011442@red.freebsd.org>
Resent-Message-ID: <201112151710.pBFHA4vH079020@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         163318
>Category:       kern
>Synopsis:       ath(4) stops working
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Dec 15 17:10:03 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Joel Dahl
>Release:        10.0-CURRENT
>Organization:
N/A
>Environment:
FreeBSD crashbox.vnode.se 10.0-CURRENT FreeBSD 10.0-CURRENT #0: Wed Dec 14 20:11:58 CET 2011     joel@crashbox.vnode.se:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
I bought a wireless PCI card for my desktop machine a couple of days ago, it is identified as:

joel@crashbox [~] dmesg | grep -i ath
ath0: <Atheros 9220> mem 0xf0600000-0xf060ffff irq 20 at device 0.0 on pci16
ath0: Enabling register serialisation
ath0: AR9220 mac 128.2 RF5133 phy 13.0

joel@crashbox [~] pciconf -bclv
ath0@pci0:16:0:0:       class=0x028000 card=0x3a7c1186 chip=0x0029168c rev=0x01 hdr=0x00
vendor     = 'Atheros Communications Inc.'
device     = 'AR922X Wireless Network Adapter'
class      = network
bar   [10] = type Memory, range 32, base 0xf0600000, size 65536, enabled
cap 01[44] = powerspec 2  supports D0 D3  current D0

I've noticed that somewhere around 4 hours of uptime it stops working. I just get no route to host while trying to ping something. I've played around with ifconfig and the wlan0 interface but rebooting seems to be my only option in order to get it working again.

I have compiled my kernel with:

options ATH_DEBUG
options AH_DEBUG
options ATH_DIAGAPI

On the console I see the following, but these messages stops as soon as ath stops working:
Dec 14 21:29:05 crashbox wpa_supplicant[473]: WPA: Group rekeying completed with f8:1e:df:fc:34:2b [GTK=CCMP]
Dec 14 22:29:04 crashbox wpa_supplicant[473]: WPA: Group rekeying completed with f8:1e:df:fc:34:2b [GTK=CCMP]
Dec 14 22:29:09 crashbox wpa_supplicant[473]: WPA: Group rekeying completed with f8:1e:df:fc:34:2b [GTK=CCMP]
Dec 14 23:29:09 crashbox wpa_supplicant[473]: WPA: Group rekeying completed with f8:1e:df:fc:34:2b [GTK=CCMP]
Dec 14 23:29:14 crashbox wpa_supplicant[473]: WPA: Group rekeying completed with f8:1e:df:fc:34:2b [GTK=CCMP]
Dec 14 23:55:24 crashbox wpa_supplicant[473]: WPA: Group rekeying completed with f8:1e:df:fc:34:2b [GTK=CCMP]
Dec 15 00:55:22 crashbox wpa_supplicant[473]: WPA: Group rekeying completed with f8:1e:df:fc:34:2b [GTK=CCMP]
Dec 15 01:55:24 crashbox wpa_supplicant[473]: WPA: Group rekeying completed with f8:1e:df:fc:34:2b [GTK=CCMP]
Dec 15 01:55:29 crashbox wpa_supplicant[473]: WPA: Group rekeying completed with f8:1e:df:fc:34:2b [GTK=CCMP]

Running tcpdump -ni wlan0 -y IEEE802_11_RADIO after ath has died produces no output. I see the following on the console however:

wlan0: promiscuous mode enabled
wlan0: promiscuous mode disabled
wlan0: promiscuous mode enabled
taskqueue_drain with the following non-sleepable locks held:
exclusive sleep mutex bpf global lock (bpf global lock) r = 0 (0xffffffff8133f6a0) locked @ /usr/src/sys/net/bpf.c:651
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
kdb_backtrace() at kdb_backtrace+0x37
_witness_debugger() at _witness_debugger+0x2c
witness_warn() at witness_warn+0x2c6
taskqueue_drain() at taskqueue_drain+0xfd
ieee80211_waitfor_parent() at ieee80211_waitfor_parent+0x2b
ieee80211_ioctl() at ieee80211_ioctl+0x161
if_setflag() at if_setflag+0x111
ifpromisc() at ifpromisc+0x34
bpf_detachd() at bpf_detachd+0x1c6
bpf_dtor() at bpf_dtor+0x8d
devfs_destroy_cdevpriv() at devfs_destroy_cdevpriv+0x8b
devfs_close_f() at devfs_close_f+0x54
_fdrop() at _fdrop+0x23
closef() at closef+0x5c
kern_close() at kern_close+0x121
amd64_syscall() at amd64_syscall+0x3ac
Xfast_syscall() at Xfast_syscall+0xf7
--- syscall (6, FreeBSD ELF64, sys_close), rip = 0x8011c899c, rsp = 0x7fffffffd258, rbp = 0x801807300 ---
taskqueue_drain with the following non-sleepable locks held:
exclusive sleep mutex bpf global lock (bpf global lock) r = 0 (0xffffffff8133f6a0) locked @ /usr/src/sys/net/bpf.c:651
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
kdb_backtrace() at kdb_backtrace+0x37
_witness_debugger() at _witness_debugger+0x2c
witness_warn() at witness_warn+0x2c6
taskqueue_drain() at taskqueue_drain+0xfd
ieee80211_waitfor_parent() at ieee80211_waitfor_parent+0x3e
ieee80211_ioctl() at ieee80211_ioctl+0x161
if_setflag() at if_setflag+0x111
ifpromisc() at ifpromisc+0x34
bpf_detachd() at bpf_detachd+0x1c6
bpf_dtor() at bpf_dtor+0x8d
devfs_destroy_cdevpriv() at devfs_destroy_cdevpriv+0x8b
devfs_close_f() at devfs_close_f+0x54
_fdrop() at _fdrop+0x23
closef() at closef+0x5c
kern_close() at kern_close+0x121
amd64_syscall() at amd64_syscall+0x3ac
Xfast_syscall() at Xfast_syscall+0xf7
--- syscall (6, FreeBSD ELF64, sys_close), rip = 0x8011c899c, rsp = 0x7fffffffd258, rbp = 0x801807300 ---
taskqueue_drain with the following non-sleepable locks held:
exclusive sleep mutex bpf global lock (bpf global lock) r = 0 (0xffffffff8133f6a0) locked @ /usr/src/sys/net/bpf.c:651
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
kdb_backtrace() at kdb_backtrace+0x37
_witness_debugger() at _witness_debugger+0x2c
witness_warn() at witness_warn+0x2c6
taskqueue_drain() at taskqueue_drain+0xfd
ieee80211_waitfor_parent() at ieee80211_waitfor_parent+0x51
ieee80211_ioctl() at ieee80211_ioctl+0x161
if_setflag() at if_setflag+0x111
ifpromisc() at ifpromisc+0x34
bpf_detachd() at bpf_detachd+0x1c6
bpf_dtor() at bpf_dtor+0x8d
devfs_destroy_cdevpriv() at devfs_destroy_cdevpriv+0x8b
devfs_close_f() at devfs_close_f+0x54
_fdrop() at _fdrop+0x23
closef() at closef+0x5c
kern_close() at kern_close+0x121
amd64_syscall() at amd64_syscall+0x3ac
Xfast_syscall() at Xfast_syscall+0xf7
--- syscall (6, FreeBSD ELF64, sys_close), rip = 0x8011c899c, rsp = 0x7fffffffd258, rbp = 0x801807300 ---
taskqueue_drain with the following non-sleepable locks held:
exclusive sleep mutex bpf global lock (bpf global lock) r = 0 (0xffffffff8133f6a0) locked @ /usr/src/sys/net/bpf.c:651
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
kdb_backtrace() at kdb_backtrace+0x37
_witness_debugger() at _witness_debugger+0x2c
witness_warn() at witness_warn+0x2c6
taskqueue_drain() at taskqueue_drain+0xfd
ieee80211_waitfor_parent() at ieee80211_waitfor_parent+0x64
ieee80211_ioctl() at ieee80211_ioctl+0x161
if_setflag() at if_setflag+0x111
ifpromisc() at ifpromisc+0x34
bpf_detachd() at bpf_detachd+0x1c6
bpf_dtor() at bpf_dtor+0x8d
devfs_destroy_cdevpriv() at devfs_destroy_cdevpriv+0x8b
devfs_close_f() at devfs_close_f+0x54
_fdrop() at _fdrop+0x23
closef() at closef+0x5c
kern_close() at kern_close+0x121
amd64_syscall() at amd64_syscall+0x3ac
Xfast_syscall() at Xfast_syscall+0xf7
--- syscall (6, FreeBSD ELF64, sys_close), rip = 0x8011c899c, rsp = 0x7fffffffd258, rbp = 0x801807300 ---
taskqueue_drain with the following non-sleepable locks held:
exclusive sleep mutex bpf global lock (bpf global lock) r = 0 (0xffffffff8133f6a0) locked @ /usr/src/sys/net/bpf.c:651
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
kdb_backtrace() at kdb_backtrace+0x37
_witness_debugger() at _witness_debugger+0x2c
witness_warn() at witness_warn+0x2c6
taskqueue_drain() at taskqueue_drain+0xfd
ieee80211_waitfor_parent() at ieee80211_waitfor_parent+0x77
ieee80211_ioctl() at ieee80211_ioctl+0x161
if_setflag() at if_setflag+0x111
ifpromisc() at ifpromisc+0x34
bpf_detachd() at bpf_detachd+0x1c6
bpf_dtor() at bpf_dtor+0x8d
devfs_destroy_cdevpriv() at devfs_destroy_cdevpriv+0x8b
devfs_close_f() at devfs_close_f+0x54
_fdrop() at _fdrop+0x23
closef() at closef+0x5c
kern_close() at kern_close+0x121
amd64_syscall() at amd64_syscall+0x3ac
Xfast_syscall() at Xfast_syscall+0xf7
--- syscall (6, FreeBSD ELF64, sys_close), rip = 0x8011c899c, rsp = 0x7fffffffd258, rbp = 0x801807300 ---
wlan0: promiscuous mode disabled

..and when I reboot, I just briefly can see the following message fly by on the console before the machine reboots:

ath0: ath_tx_tid_drain: node 0xffffff80014a2000: tid 16: txq_depth=2, txq_aggr_depth=0, sched=0, paused=0, hwq_depth=0, incomp=0, baw_head=0, baw_tail=0 txa_stat=-1, ni_txseqs=1966

This message is not shown if I reboot while ath is still working.
>How-To-Repeat:

>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201112151703.pBFH3ION011442>