> Date: Mon, 8 Jun 2015 09:03:47 +0200 > From: Stefan Sperling <[email protected]> > > The iwm(4) watchdog does two things wrong: > > - It doesn't trigger iwm_init_task so the task remains entirely unused. > > - It clears the IFF_UP interface flag. Only the intel wifi drivers do this, > and I think it's wrong. Other wifi drivers don't clear it. The watchdog > should attempt to get the hardware going again with minimal disruption. > > Can iwm(4) users test this, please? Especially if you occasionally see a > message saying 'iwm0: device timeout' this change will affect you.
Seems reasonable to me. ok kettenis@ > Index: if_iwm.c > =================================================================== > RCS file: /cvs/src/sys/dev/pci/if_iwm.c,v > retrieving revision 1.42 > diff -u -p -r1.42 if_iwm.c > --- if_iwm.c 30 May 2015 02:49:23 -0000 1.42 > +++ if_iwm.c 8 Jun 2015 06:56:31 -0000 > @@ -5720,8 +5720,7 @@ iwm_watchdog(struct ifnet *ifp) > #ifdef IWM_DEBUG > iwm_nic_error(sc); > #endif > - ifp->if_flags &= ~IFF_UP; > - iwm_stop(ifp, 1); > + task_add(systq, &sc->init_task); > ifp->if_oerrors++; > return; > } > >
