Actually trigger iwm_init_task() from iwm_watchdog() as intended to give
authorstsp <stsp@openbsd.org>
Fri, 12 Jun 2015 13:11:27 +0000 (13:11 +0000)
committerstsp <stsp@openbsd.org>
Fri, 12 Jun 2015 13:11:27 +0000 (13:11 +0000)
recovery after device timeout a chance. Don't mess with the IFF_UP flag
in the watchdog since this isn't done anywhere except intel wifi drivers
which probably copied this pattern amongst each other.
ok kettenis@

sys/dev/pci/if_iwm.c

index 0ffefc5..f129041 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: if_iwm.c,v 1.42 2015/05/30 02:49:23 deraadt Exp $     */
+/*     $OpenBSD: if_iwm.c,v 1.43 2015/06/12 13:11:27 stsp Exp $        */
 
 /*
  * Copyright (c) 2014 genua mbh <info@genua.de>
@@ -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;
                }