ath9k: trivial: reorder rx_tasklet processing
DFS events are reported as PHY errors and need to be processed with a correct timestamp set before ath9k_skb_preprocess() is called and the frame is possibly dropped. This patch puts the rxs->mactime calculation before the skb is preprocessed to prepare for DFS event reporting. Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
b68e6b3b33
commit
83c7657096
@@ -1838,11 +1838,6 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
|
|||||||
if (sc->sc_flags & SC_OP_RXFLUSH)
|
if (sc->sc_flags & SC_OP_RXFLUSH)
|
||||||
goto requeue_drop_frag;
|
goto requeue_drop_frag;
|
||||||
|
|
||||||
retval = ath9k_rx_skb_preprocess(common, hw, hdr, &rs,
|
|
||||||
rxs, &decrypt_error);
|
|
||||||
if (retval)
|
|
||||||
goto requeue_drop_frag;
|
|
||||||
|
|
||||||
rxs->mactime = (tsf & ~0xffffffffULL) | rs.rs_tstamp;
|
rxs->mactime = (tsf & ~0xffffffffULL) | rs.rs_tstamp;
|
||||||
if (rs.rs_tstamp > tsf_lower &&
|
if (rs.rs_tstamp > tsf_lower &&
|
||||||
unlikely(rs.rs_tstamp - tsf_lower > 0x10000000))
|
unlikely(rs.rs_tstamp - tsf_lower > 0x10000000))
|
||||||
@@ -1852,6 +1847,11 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
|
|||||||
unlikely(tsf_lower - rs.rs_tstamp > 0x10000000))
|
unlikely(tsf_lower - rs.rs_tstamp > 0x10000000))
|
||||||
rxs->mactime += 0x100000000ULL;
|
rxs->mactime += 0x100000000ULL;
|
||||||
|
|
||||||
|
retval = ath9k_rx_skb_preprocess(common, hw, hdr, &rs,
|
||||||
|
rxs, &decrypt_error);
|
||||||
|
if (retval)
|
||||||
|
goto requeue_drop_frag;
|
||||||
|
|
||||||
/* Ensure we always have an skb to requeue once we are done
|
/* Ensure we always have an skb to requeue once we are done
|
||||||
* processing the current buffer's skb */
|
* processing the current buffer's skb */
|
||||||
requeue_skb = ath_rxbuf_alloc(common, common->rx_bufsize, GFP_ATOMIC);
|
requeue_skb = ath_rxbuf_alloc(common, common->rx_bufsize, GFP_ATOMIC);
|
||||||
|
Reference in New Issue
Block a user