Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 May 2014 15:57:07 +0200
From:      =?ISO-8859-1?Q?Olivier_Cochard=2DLabb=E9?= <olivier@cochard.me>
To:        =?ISO-8859-2?Q?Edward_Tomasz_Napiera=B3a?= <trasz@freebsd.org>
Cc:        "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   Re: Workaround for "fatal firmware error" iwn(4) problem.
Message-ID:  <CA%2Bq%2BTcpHvunOJXucN2j7=PDLrhND1JK7B-QWC-QDTEEZHnJ4PQ@mail.gmail.com>
In-Reply-To: <8FB7D6BF-005A-41A1-9DCE-C8B09EA338EE@FreeBSD.org>
References:  <8FB7D6BF-005A-41A1-9DCE-C8B09EA338EE@FreeBSD.org>

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

On Fri, May 16, 2014 at 8:06 PM, Edward Tomasz NapieraƂa
<trasz@freebsd.org>wrote:

> I've started using FreeBSD laptop and iwn(4) failing at random moments
> like this...
>
> I had the same problem too with iwn(4).

>
> ... has been driving me crazy, so I wrote a workaround.  The patch
> can be found here:
>
> http://people.freebsd.org/~trasz/iwn.diff
>
>
I've tested you patch on a r266396, but it generate a panic:

wlan0: Ethernet address: 00:1d:e0:29:19:65
Starting wpa_supplicant.
Starting dhclient.
wlan0: no link .............. giving up
/etc/rc.d/dhclient: WARNING: failed to start dhclient
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            = 11427825
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=68  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=22
iwn0: iwn_intr: reinit; 0xfffffe00008090b0
iwn0: iwn_reinit_thread: controller panicked; resetting...


Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0xffff
fault code              = supervisor read data, page not present
instruction pointer     = 0x20:0xffffffff805a4b10
stack pointer           = 0x28:0xfffffe0120353b30
frame pointer           = 0x28:0xfffffe0120353b60
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 0 (iwn_reinit)

About the instruction pointer code:

addr2line -e /boot/kernel/kernel.symbols 0xffffffff805a4b10
/usr/src/sys/dev/iwn/if_iwn.c:6792

Regards,

Olivier



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2Bq%2BTcpHvunOJXucN2j7=PDLrhND1JK7B-QWC-QDTEEZHnJ4PQ>