misc/160176: Kernel panic on AR7161 platform with AR9220 (BGN) WIFI
card while AH_DEBUG used.
Su Kang Yin
paradyse at gmail.com
Thu Aug 25 08:20:18 UTC 2011
>Number: 160176
>Category: misc
>Synopsis: Kernel panic on AR7161 platform with AR9220 (BGN) WIFI card while AH_DEBUG used.
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Aug 25 08:20:17 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator: Su Kang Yin
>Release: SVN HEAD
>Organization:
>Environment:
FreeBSD TEST 9.0-BETA1 FreeBSD 9.0-BETA1 #63 r225075:225163M: Sat Aug 20 22:32:37 HKT 2011
>Description:
Kernel panic on AR7161 platform with AR9220 WIFI card while AH_DEBUG used.
After some debug and tracing, found that it is caused by ath_hal_reg_read(_ah, _reg). I replaced it with inline version and it just works fine. But it is not a proper fix.
Index: ah_osdep.h
===================================================================
--- ah_osdep.h (revision 225165)
+++ ah_osdep.h (working copy)
@@ -91,8 +91,15 @@
* defined below.
*/
#if defined(AH_DEBUG) || defined(AH_REGOPS_FUNC) || defined(AH_DEBUG_ALQ)
+
#define OS_REG_WRITE(_ah, _reg, _val) ath_hal_reg_write(_ah, _reg, _val)
-#define OS_REG_READ(_ah, _reg) ath_hal_reg_read(_ah, _reg)
+//#define OS_REG_READ(_ah, _reg) ath_hal_reg_read(_ah, _reg)
+#define OS_REG_READ(_ah, _reg) \
+ (OS_REG_UNSWAPPED(_reg) ? \
+ bus_space_read_4((bus_space_tag_t)(_ah)->ah_st, \
+ (bus_space_handle_t)(_ah)->ah_sh, (_reg)) : \
+ bus_space_read_stream_4((bus_space_tag_t)(_ah)->ah_st, \
+ (bus_space_handle_t)(_ah)->ah_sh, (_reg)))
extern void ath_hal_reg_write(struct ath_hal *ah, u_int reg, u_int32_t val);
extern u_int32_t ath_hal_reg_read(struct ath_hal *ah, u_int reg);
>How-To-Repeat:
Atheros AR7161 BIG ENDIAN platform + AR9220 WIFI CARD + KERNEL enable "AH_DEBUG"
---
# Wireless NIC cards
options IEEE80211_DEBUG
#options IEEE80211_SUPPORT_MESH
options IEEE80211_SUPPORT_TDMA
device wlan # 802.11 support
device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
device ath # Atheros NIC's
device ath_pci # Atheros pci/cardbus glue
options ATH_DEBUG
device ath_hal
options AH_DEBUG
option AH_SUPPORT_AR5416
option AH_RXCFG_SDMAMW_4BYTES # See NOTES for details of this WAR
device ath_rate_sample
--------------
avail memory = 53080064 (50MB)
nexus0: <MIPS32 root nexus>
clock0: <Generic MIPS32 ticker> on nexus0
Timecounter "MIPS32" frequency 340000000 Hz quality 800
Event timer "MIPS32" frequency 340000000 Hz quality 800
apb0 at irq 4 on nexus0
uart0: <16550 or compatible> on apb0
uart0: console (115200,n,8,1)
pcib0 at irq 0 on nexus0
pci0: <PCI bus> on pcib0
pci0: <old, non-VGA display device> at device 0.0 (no driver attached)
ath0: <Atheros 9280> irq 1 at device 18.0 on pci0
Trap cause = 7 (bus error (load or store) - kernel mode)
[ thread pid 0 tid 100000 ]
Stopped at ar5416SetPowerMode+0xdc: andi v0,v0,0xf
db> bt
Tracing pid 0 tid 100000 td 0x80961880
db_trace_thread+30 (?,?,?,?) ra 80055bd0 sp 80aee5b0 sz 24
80055abc+114 (0,?,ffffffff,?) ra 8005518c sp 80aee5c8 sz 32
80054e04+388 (?,?,?,?) ra 80055310 sp 80aee5e8 sz 168
db_command_loop+70 (?,?,?,?) ra 800579d4 sp 80aee690 sz 24
800578e0+f4 (?,?,?,?) ra 801b6328 sp 80aee6a8 sz 424
kdb_trap+104 (?,?,?,?) ra 8034eaa0 sp 80aee850 sz 40
trap+e58 (?,?,?,?) ra 80346780 sp 80aee878 sz 168
MipsKernGenException+134 (0,b0007044,7044,0) ra 80098ebc sp 80aee920 sz 200
ar5416SetPowerMode+dc (?,?,?,?) ra 800a1558 sp 80aee9e8 sz 56
800a1360+1f8 (?,?,?,?) ra 8006c1ac sp 80aeea20 sz 80
ath_hal_attach+a0 (?,?,?,?) ra 80064efc sp 80aeea70 sz 64
ath_attach+d4 (?,?,?,?) ra 8005c52c sp 80aeeab0 sz 152
8005c23c+2f0 (?,?,?,?) ra 801b0854 sp 80aeeb48 sz 88
device_attach+354 (?,?,?,?) ra 801b16bc sp 80aeeba0 sz 72
device_probe_and_attach+5c (?,?,?,?) ra 801b16f4 sp 80aeebe8 sz 24
bus_generic_attach+20 (?,?,?,?) ra 800c85a4 sp 80aeec00 sz 24
800c8498+10c (?,?,?,?) ra 801b0854 sp 80aeec18 sz 40
device_attach+354 (?,?,?,?) ra 801b16bc sp 80aeec40 sz 72
device_probe_and_attach+5c (?,?,?,?) ra 801b16f4 sp 80aeec88 sz 24
bus_generic_attach+20 (?,?,?,?) ra 8036509c sp 80aeeca0 sz 24
80364e4c+250 (?,?,?,?) ra 801b0854 sp 80aeecb8 sz 56
device_attach+354 (?,?,?,?) ra 801b16bc sp 80aeecf0 sz 72
device_probe_and_attach+5c (?,?,?,?) ra 801b16f4 sp 80aeed38 sz 24
bus_generic_attach+20 (?,?,?,?) ra 8035c968 sp 80aeed50 sz 24
8035c944+24 (?,?,?,?) ra 801b0854 sp 80aeed68 sz 24
device_attach+354 (?,?,?,?) ra 801b16bc sp 80aeed80 sz 72
device_probe_and_attach+5c (?,?,?,?) ra 801b1978 sp 80aeedc8 sz 24
bus_generic_new_pass+10c (?,?,?,?) ra 801af514 sp 80aeede0 sz 40
bus_set_pass+c0 (?,?,?,?) ra 801af584 sp 80aeee08 sz 40
root_bus_configure+14 (?,?,?,?) ra 803459cc sp 80aeee30 sz 24
803459bc+10 (?,?,?,?) ra 80135b14 sp 80aeee48 sz 24
mi_startup+138 (?,?,?,?) ra 80050190 sp 80aeee60 sz 32
_start+90 (?,?,?,?) ra 0 sp 80aeee80 sz 0
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list