From owner-freebsd-bugs@FreeBSD.ORG Thu Aug 25 08:20:18 2011 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 10FD41065676 for ; Thu, 25 Aug 2011 08:20:18 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id E224C8FC22 for ; Thu, 25 Aug 2011 08:20:17 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id p7P8KHZZ096017 for ; Thu, 25 Aug 2011 08:20:17 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p7P8KHV1096016; Thu, 25 Aug 2011 08:20:17 GMT (envelope-from gnats) Resent-Date: Thu, 25 Aug 2011 08:20:17 GMT Resent-Message-Id: <201108250820.p7P8KHV1096016@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Su Kang Yin Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BE6701065672 for ; Thu, 25 Aug 2011 08:18:30 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id AE1288FC18 for ; Thu, 25 Aug 2011 08:18:30 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.4/8.14.4) with ESMTP id p7P8IUsI014725 for ; Thu, 25 Aug 2011 08:18:30 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.4/8.14.4/Submit) id p7P8IULr014724; Thu, 25 Aug 2011 08:18:30 GMT (envelope-from nobody) Message-Id: <201108250818.p7P8IULr014724@red.freebsd.org> Date: Thu, 25 Aug 2011 08:18:30 GMT From: Su Kang Yin To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: misc/160176: Kernel panic on AR7161 platform with AR9220 (BGN) WIFI card while AH_DEBUG used. X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Aug 2011 08:20:18 -0000 >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: clock0: 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: on pcib0 pci0: at device 0.0 (no driver attached) ath0: 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: