On Wed, Dec 16, 2015 at 10:14:49AM -0500, David Hill wrote:
> Hi Stefan -
> 
> Thanks for the 11n work!
> 
> Unfortunately, your diff breaks iwn on my machine.
> 
> iwn0 at pci2 dev 0 function 0 "Intel Centrino Ultimate-N 6300" rev 0x35:
> msi, MIMO 3T3R, MoW, 
> 
> It spews over and over:
> 
> iwn0: fatal firmware error
> firmware error log:
>   error type      = "SYSASSERT" (0x00000005)
>   program counter = 0x00022278
>   source line     = 0x00000218
>   error data      = 0x000002180000000B
>   branch link     = 0x0002225800022258
>   interrupt link  = 0x0000153200000000
>   time            = 2127856977
> driver status:
>   tx ring  0: qid=0  cur=4   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=0   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  
>   tx ring 16: qid=16 cur=0   queued=0  
>   tx ring 17: qid=17 cur=0   queued=0  
>   tx ring 18: qid=18 cur=0   queued=0  
>   tx ring 19: qid=19 cur=0   queued=0  
>   rx ring: cur=14
>   802.11 state 4
> 

Thanks for testing!

I cannot do much based on the information provided.
Could you recompile with IWM_DEBUG defined, and perhaps place a few
additional printfs at strategic locations, to figure out which
firmware command is last sent before the firmware crashes?
That would help me a great deal.

If you don't want the firmware to be restarted over and over so it
won't print these lines repeatedly, disabling the init_task which
attempts to recover from firmware crashes might help:

        if (r1 & (IWN_INT_SW_ERR | IWN_INT_HW_ERR)) {
                printf("%s: fatal firmware error\n", sc->sc_dev.dv_xname);
                /* Dump firmware error log and stop. */
                iwn_fatal_intr(sc);
                iwn_stop(ifp, 1);
                task_add(systq, &sc->init_task); <-- remove this line
                return 1;
        }

Reply via email to