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=C5=82a
<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      =3D "NMI_INTERRUPT_WDG" (0x00000004)
  program counter =3D 0x0000046C
  source line     =3D 0x000000D0
  error data      =3D 0x0000000207030000
  branch link     =3D 0x00008370000004C2
  interrupt link  =3D 0x000006DE000018B8
  time            =3D 11427825
driver status:
  tx ring  0: qid=3D0  cur=3D0   queued=3D0
  tx ring  1: qid=3D1  cur=3D0   queued=3D0
  tx ring  2: qid=3D2  cur=3D0   queued=3D0
  tx ring  3: qid=3D3  cur=3D1   queued=3D0
  tx ring  4: qid=3D4  cur=3D68  queued=3D0
  tx ring  5: qid=3D5  cur=3D0   queued=3D0
  tx ring  6: qid=3D6  cur=3D0   queued=3D0
  tx ring  7: qid=3D7  cur=3D0   queued=3D0
  tx ring  8: qid=3D8  cur=3D0   queued=3D0
  tx ring  9: qid=3D9  cur=3D0   queued=3D0
  tx ring 10: qid=3D10 cur=3D0   queued=3D0
  tx ring 11: qid=3D11 cur=3D0   queued=3D0
  tx ring 12: qid=3D12 cur=3D0   queued=3D0
  tx ring 13: qid=3D13 cur=3D0   queued=3D0
  tx ring 14: qid=3D14 cur=3D0   queued=3D0
  tx ring 15: qid=3D15 cur=3D0   queued=3D0
  rx ring: cur=3D22
iwn0: iwn_intr: reinit; 0xfffffe00008090b0
iwn0: iwn_reinit_thread: controller panicked; resetting...


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