kern/176104: iwn0: iwn_intr: fatal firmware error

Anton Shterenlikht mexas at bristol.ac.uk
Wed Feb 13 11:40:01 UTC 2013


>Number:         176104
>Category:       kern
>Synopsis:       iwn0: iwn_intr: fatal firmware error
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Feb 13 11:40:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Anton Shterenlikht
>Release:        FreeBSD 10.0-CURRENT ia64
>Organization:
University of Bristol
>Environment:
FreeBSD zzz 10.0-CURRENT FreeBSD 10.0-CURRENT #4 r246552: Sun Feb 10 00:37:33 GM
T 2013     root at zzz:/usr/obj/usr/src/sys/T61p  amd64

	
>Description:
At some, seemingly random points, the iwn driver
will stop working with this message:

iwn0: iwn_intr: fatal firmware error
firmware error log:
  error type      = "NMI_INTERRUPT_WDG" (0x00000004)
  program counter = 0x0000046C
  source line     = 0x000000D0
  error data      = 0x0000000207030000
  branch link     = 0x00008370000004C2
  interrupt link  = 0x000006DA000018B8
  time            = 200035
driver status:
  tx ring  0: qid=0  cur=0   queued=0
  tx ring  1: qid=1  cur=0   queued=0
  tx ring  2: qid=2  cur=0   queued=0
  tx ring  3: qid=3  cur=2   queued=1
  tx ring  4: qid=4  cur=67  queued=0
  tx ring  5: qid=5  cur=0   queued=0
  tx ring  6: qid=6  cur=0   queued=0
  tx ring  7: qid=7  cur=0   queued=0
  tx ring  8: qid=8  cur=0   queued=0
  tx ring  9: qid=9  cur=0   queued=0
  tx ring 10: qid=10 cur=0   queued=0
  tx ring 11: qid=11 cur=0   queued=0
  tx ring 12: qid=12 cur=0   queued=0
  tx ring 13: qid=13 cur=0   queued=0
  tx ring 14: qid=14 cur=0   queued=0
  tx ring 15: qid=15 cur=0   queued=0
  rx ring: cur=13

After that a restart of the network is
required, i.e. /etc/rc.d/netif restart

It seems sometimes flipping the radio
switch a few times will lead to the same
problem.

Sometimes restarting network doesn't help,
and in some cases I have to restart it
3-4-5 times before the iwn works again:

wlan0: link state changed to DOWN
wlan0: link state changed to UP
wlan0: link state changed to DOWN
wlan0: link state changed to UP
iwn0: iwn_intr: fatal firmware error
firmware error log:
  error type      = "NMI_INTERRUPT_WDG" (0x00000004)
  program counter = 0x0000046C
  source line     = 0x000000D0
  error data      = 0x0000000207430000
  branch link     = 0x00008370000004C2
  interrupt link  = 0x000006DA000018B8
  time            = 2357321991
driver status:
  tx ring  0: qid=0  cur=19  queued=0
  tx ring  1: qid=1  cur=0   queued=0
  tx ring  2: qid=2  cur=0   queued=0
  tx ring  3: qid=3  cur=79  queued=0
  tx ring  4: qid=4  cur=220 queued=0
  tx ring  5: qid=5  cur=0   queued=0
  tx ring  6: qid=6  cur=0   queued=0
  tx ring  7: qid=7  cur=0   queued=0
  tx ring  8: qid=8  cur=0   queued=0
  tx ring  9: qid=9  cur=0   queued=0
  tx ring 10: qid=10 cur=0   queued=0
  tx ring 11: qid=11 cur=0   queued=0
  tx ring 12: qid=12 cur=0   queued=0
  tx ring 13: qid=13 cur=0   queued=0
  tx ring 14: qid=14 cur=0   queued=0
  tx ring 15: qid=15 cur=0   queued=0
  rx ring: cur=12
in6_purgeaddr: err=65, destination address delete failed
wlan0: link state changed to DOWN
wlan0: Ethernet address: 00:21:5c:50:68:c3
iwn0: iwn_intr: fatal firmware error
firmware error log:
  error type      = "NMI_INTERRUPT_WDG" (0x00000004)
  program counter = 0x0000046C
  source line     = 0x000000D0
  error data      = 0x0000000202030000
  branch link     = 0x00005CEE000004C2
  interrupt link  = 0x000006DE00007386
  time            = 10259240
driver status:
  tx ring  0: qid=0  cur=0   queued=0
  tx ring  1: qid=1  cur=0   queued=0
  tx ring  2: qid=2  cur=0   queued=0
  tx ring  3: qid=3  cur=1   queued=0
  tx ring  4: qid=4  cur=41  queued=0
  tx ring  5: qid=5  cur=0   queued=0
  tx ring  6: qid=6  cur=0   queued=0
  tx ring  7: qid=7  cur=0   queued=0
  tx ring  8: qid=8  cur=0   queued=0
  tx ring  9: qid=9  cur=0   queued=0
  tx ring 10: qid=10 cur=0   queued=0
  tx ring 11: qid=11 cur=0   queued=0
  tx ring 12: qid=12 cur=0   queued=0
  tx ring 13: qid=13 cur=0   queued=0
  tx ring 14: qid=14 cur=0   queued=0
  tx ring 15: qid=15 cur=0   queued=0
  rx ring: cur=38
in6_purgeaddr: err=65, destination address delete failed
wlan0: Ethernet address: 00:21:5c:50:68:c3
iwn0: iwn_intr: fatal firmware error
firmware error log:
  error type      = "NMI_INTERRUPT_WDG" (0x00000004)
  program counter = 0x0000046C
  source line     = 0x000000D0
  error data      = 0x0000000207030000
  branch link     = 0x00008370000004C2
  interrupt link  = 0x000006DA000018B8
  time            = 200035
driver status:
  tx ring  0: qid=0  cur=0   queued=0
  tx ring  1: qid=1  cur=0   queued=0
  tx ring  2: qid=2  cur=0   queued=0
  tx ring  3: qid=3  cur=2   queued=1
  tx ring  4: qid=4  cur=67  queued=0
  tx ring  5: qid=5  cur=0   queued=0
  tx ring  6: qid=6  cur=0   queued=0
  tx ring  7: qid=7  cur=0   queued=0
  tx ring  8: qid=8  cur=0   queued=0
  tx ring  9: qid=9  cur=0   queued=0
  tx ring 10: qid=10 cur=0   queued=0
  tx ring 11: qid=11 cur=0   queued=0
  tx ring 12: qid=12 cur=0   queued=0
  tx ring 13: qid=13 cur=0   queued=0
  tx ring 14: qid=14 cur=0   queued=0
  tx ring 15: qid=15 cur=0   queued=0
  rx ring: cur=0
in6_purgeaddr: err=65, destination address delete failed
wlan0: Ethernet address: 00:21:5c:50:68:c3
wlan0: link state changed to UP
wlan0: link state changed to DOWN
iwn0: iwn_intr: fatal firmware error
firmware error log:
  error type      = "NMI_INTERRUPT_WDG" (0x00000004)
  program counter = 0x0000046C
  source line     = 0x000000D0
  error data      = 0x0000000207430000
  branch link     = 0x00008370000004C2
  interrupt link  = 0x000006DE000018B8
  time            = 11958181
driver status:
  tx ring  0: qid=0  cur=229 queued=0
  tx ring  1: qid=1  cur=0   queued=0
  tx ring  2: qid=2  cur=0   queued=0
  tx ring  3: qid=3  cur=17  queued=1
  tx ring  4: qid=4  cur=109 queued=0
  tx ring  5: qid=5  cur=0   queued=0
  tx ring  6: qid=6  cur=0   queued=0
  tx ring  7: qid=7  cur=0   queued=0
  tx ring  8: qid=8  cur=0   queued=0
  tx ring  9: qid=9  cur=0   queued=0
  tx ring 10: qid=10 cur=0   queued=0
  tx ring 11: qid=11 cur=0   queued=0
  tx ring 12: qid=12 cur=0   queued=0
  tx ring 13: qid=13 cur=0   queued=0
  tx ring 14: qid=14 cur=0   queued=0
  tx ring 15: qid=15 cur=0   queued=0
  rx ring: cur=15
in6_purgeaddr: err=65, destination address delete failed
wlan0: Ethernet address: 00:21:5c:50:68:c3
wlan0: link state changed to UP
iwn0: iwn_intr: fatal firmware error
firmware error log:
  error type      = "NMI_INTERRUPT_WDG" (0x00000004)
  program counter = 0x0000046C
  source line     = 0x000000D0
  error data      = 0x0000000207030000
  branch link     = 0x00008370000004C2
  interrupt link  = 0x000006DE000018B8
  time            = 1412239977
driver status:
  tx ring  0: qid=0  cur=41  queued=0
  tx ring  1: qid=1  cur=0   queued=0
  tx ring  2: qid=2  cur=0   queued=0
  tx ring  3: qid=3  cur=15  queued=0
  tx ring  4: qid=4  cur=81  queued=0
  tx ring  5: qid=5  cur=0   queued=0
  tx ring  6: qid=6  cur=0   queued=0
  tx ring  7: qid=7  cur=0   queued=0
  tx ring  8: qid=8  cur=0   queued=0
  tx ring  9: qid=9  cur=0   queued=0
  tx ring 10: qid=10 cur=0   queued=0
  tx ring 11: qid=11 cur=0   queued=0
  tx ring 12: qid=12 cur=0   queued=0
  tx ring 13: qid=13 cur=0   queued=0
  tx ring 14: qid=14 cur=0   queued=0
  tx ring 15: qid=15 cur=0   queued=0
  rx ring: cur=53
in6_purgeaddr: err=65, destination address delete failed
wlan0: link state changed to DOWN
wlan0: Ethernet address: 00:21:5c:50:68:c3
wlan0: link state changed to UP


	
>How-To-Repeat:

Build a kernel with
device          iwn             # Intel 4965/1000/5000/6000 wireless NICs.
device iwn4965fw

Initialise the wlan device:

iwn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 2290
        ether 00:21:5c:50:68:c3
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: IEEE 802.11 Wireless Ethernet autoselect mode 11g
        status: associated
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 00:21:5c:50:68:c3
        inet 172.21.222.82 netmask 0xfffffc00 broadcast 255.255.255.255
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
        status: associated
        ssid eduroam channel 1 (2412 MHz 11g) bssid 00:3a:98:62:cd:a0
        country US authmode WPA2/802.11i privacy ON deftxkey UNDEF
        AES-CCM 3:128-bit txpower 14 bmiss 10 scanvalid 450 bgscan
        bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
        wme roaming MANUAL

Then use the wireless and see.
Maybe it crumbles more under load.
Try flipping the radio switch on and off
few times.


	
>Fix:

This has been discussed briefly in this
thread:
http://lists.freebsd.org/pipermail/freebsd-mobile/2013-February/012748.html

It seems 9.1-release is also affected.

	


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


More information about the freebsd-bugs mailing list