Author: kevans
Date: Thu Jan 24 03:48:50 2019
New Revision: 343386
URL: https://svnweb.freebsd.org/changeset/base/343386

Log:
  if_iwm - Stop iwm_watchdog callout when idle.
  
  Submitted by: Augustin Cavalier <waddlespl...@gmail.com> (Haiku)
  Obtained from:        DragonFlyBSD (6a8683b0e9d734f23bd9647e117da198c2b9a74e)

Modified:
  head/sys/dev/iwm/if_iwm.c

Modified: head/sys/dev/iwm/if_iwm.c
==============================================================================
--- head/sys/dev/iwm/if_iwm.c   Thu Jan 24 03:48:27 2019        (r343385)
+++ head/sys/dev/iwm/if_iwm.c   Thu Jan 24 03:48:50 2019        (r343386)
@@ -3814,6 +3814,8 @@ iwm_raw_xmit(struct ieee80211_node *ni, struct mbuf *m
        } else {
                error = iwm_tx(sc, m, ni, 0);
        }
+       if (sc->sc_tx_timer == 0)
+               callout_reset(&sc->sc_watchdog_to, hz, iwm_watchdog, sc);
        sc->sc_tx_timer = 5;
        IWM_UNLOCK(sc);
 
@@ -4754,7 +4756,6 @@ iwm_init(struct iwm_softc *sc)
         * Ok, firmware loaded and we are jogging
         */
        sc->sc_flags |= IWM_FLAG_HW_INITED;
-       callout_reset(&sc->sc_watchdog_to, hz, iwm_watchdog, sc);
 }
 
 static int
@@ -4800,6 +4801,10 @@ iwm_start(struct iwm_softc *sc)
                        ieee80211_free_node(ni);
                        continue;
                }
+               if (sc->sc_tx_timer == 0) {
+                       callout_reset(&sc->sc_watchdog_to, hz, iwm_watchdog,
+                           sc);
+               }
                sc->sc_tx_timer = 15;
        }
        IWM_DPRINTF(sc, IWM_DEBUG_XMIT | IWM_DEBUG_TRACE, "<-%s\n", __func__);
@@ -4834,8 +4839,8 @@ iwm_watchdog(void *arg)
                        counter_u64_add(sc->sc_ic.ic_oerrors, 1);
                        return;
                }
+               callout_reset(&sc->sc_watchdog_to, hz, iwm_watchdog, sc);
        }
-       callout_reset(&sc->sc_watchdog_to, hz, iwm_watchdog, sc);
 }
 
 static void
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to