diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index b2bcb089de7a..93f318b41d9b 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -2512,7 +2512,7 @@ ath_rx_proc(void *arg, int npending) struct mbuf *m; struct ieee80211_node *ni; struct ath_node *an; - int len; + int len, type; u_int phyerr; HAL_STATUS status; @@ -2719,7 +2719,7 @@ ath_rx_proc(void *arg, int npending) /* * Send frame up for processing. */ - ieee80211_input(ic, m, ni, + type = ieee80211_input(ic, m, ni, ds->ds_rxstat.rs_rssi, ds->ds_rxstat.rs_tstamp); if (sc->sc_softled) { @@ -2729,8 +2729,7 @@ ath_rx_proc(void *arg, int npending) * is mainly for station mode where we depend on * periodic beacon frames to trigger the poll event. */ - if (sc->sc_ipackets != ifp->if_ipackets) { - sc->sc_ipackets = ifp->if_ipackets; + if (type == IEEE80211_FC0_TYPE_DATA) { sc->sc_rxrate = ds->ds_rxstat.rs_rate; ath_led_event(sc, ATH_LED_RX); } else if (ticks - sc->sc_ledevent >= sc->sc_ledidle) diff --git a/sys/dev/ath/if_athvar.h b/sys/dev/ath/if_athvar.h index d1ebb4f62e8d..74f79bc09d47 100644 --- a/sys/dev/ath/if_athvar.h +++ b/sys/dev/ath/if_athvar.h @@ -212,7 +212,6 @@ struct ath_softc { u_int sc_ledpin; /* GPIO pin for driving LED */ u_int sc_ledon; /* pin setting for LED on */ u_int sc_ledidle; /* idle polling interval */ - u_int32_t sc_ipackets; /* last data packet count */ int sc_ledevent; /* time of last LED event */ u_int8_t sc_rxrate; /* current rx rate for LED */ u_int8_t sc_txrate; /* current tx rate for LED */