On Wed, Oct 05, 2016 at 10:35:50PM +0200, Stefan Sperling wrote:
> I don't think any normal human being understands the lines
> printed by the wpi(4) driver after 'fatal firmware error'.
> 
> wpi0: fatal firmware error
> firmware error log (count=1):
>   error type = "UNKNOWN" (0x00000013)
>   error data      = 0x00000070
>   branch link     = 0x000008B600000274
>   interrupt link  = 0x0000032000006AA8
>   time            = 3028342675
> driver status:
>   tx ring  0: qid=0  cur=178 queued=21 
>   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=21  queued=0  
>   tx ring  5: qid=5  cur=0   queued=0  
>   rx ring: cur=0
>   802.11 state 4
> 
> Anyone seriously looking at this is hacking the driver anyway.
> For everyone else it's just dmesg spam.
> Let's ifdef this away into WPI_DEBUG like it's done in iwm(4).
> 
> ok?
> 

Yes please. I saw this today as I dusted off and used an Acer and was
wondering what this would mean without having the time to investigate. I
was surprised that the net still worked.  Please get rid of it.  It's
confusing.

> Index: if_wpi.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/if_wpi.c,v
> retrieving revision 1.135
> diff -u -p -r1.135 if_wpi.c
> --- if_wpi.c  5 Sep 2016 08:18:40 -0000       1.135
> +++ if_wpi.c  5 Oct 2016 20:27:12 -0000
> @@ -1526,6 +1526,7 @@ wpi_notif_intr(struct wpi_softc *sc)
>       WPI_WRITE(sc, WPI_FH_RX_WPTR, hw & ~7);
>  }
>  
> +#ifdef WPI_DEBUG
>  /*
>   * Dump the error log of the firmware when a firmware panic occurs.  Although
>   * we can't debug the firmware because it is neither open source nor free, it
> @@ -1593,6 +1594,7 @@ wpi_fatal_intr(struct wpi_softc *sc)
>       printf("  802.11 state %d\n", sc->sc_ic.ic_state);
>  #undef N
>  }
> +#endif
>  
>  int
>  wpi_intr(void *arg)
> @@ -1622,7 +1624,9 @@ wpi_intr(void *arg)
>       if (r1 & (WPI_INT_SW_ERR | WPI_INT_HW_ERR)) {
>               printf("%s: fatal firmware error\n", sc->sc_dev.dv_xname);
>               /* Dump firmware error log and stop. */
> +#ifdef WPI_DEBUG
>               wpi_fatal_intr(sc);
> +#endif
>               wpi_stop(ifp, 1);
>               task_add(systq, &sc->init_task);
>               return 1;
> 

Reply via email to