diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/recv.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/recv.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c index 9c7f905f3871..bcc0b222ec18 100644 --- a/drivers/net/wireless/ath/ath9k/recv.c +++ b/drivers/net/wireless/ath/ath9k/recv.c | |||
@@ -1839,7 +1839,7 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp) | |||
1839 | * If we're asked to flush receive queue, directly | 1839 | * If we're asked to flush receive queue, directly |
1840 | * chain it back at the queue without processing it. | 1840 | * chain it back at the queue without processing it. |
1841 | */ | 1841 | */ |
1842 | if (flush) | 1842 | if (sc->sc_flags & SC_OP_RXFLUSH) |
1843 | goto requeue_drop_frag; | 1843 | goto requeue_drop_frag; |
1844 | 1844 | ||
1845 | retval = ath9k_rx_skb_preprocess(common, hw, hdr, &rs, | 1845 | retval = ath9k_rx_skb_preprocess(common, hw, hdr, &rs, |
@@ -1950,7 +1950,7 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp) | |||
1950 | ath_rx_ps(sc, skb); | 1950 | ath_rx_ps(sc, skb); |
1951 | spin_unlock_irqrestore(&sc->sc_pm_lock, flags); | 1951 | spin_unlock_irqrestore(&sc->sc_pm_lock, flags); |
1952 | 1952 | ||
1953 | if (ah->caps.hw_caps & ATH9K_HW_CAP_ANT_DIV_COMB) | 1953 | if ((ah->caps.hw_caps & ATH9K_HW_CAP_ANT_DIV_COMB) && sc->ant_rx == 3) |
1954 | ath_ant_comb_scan(sc, &rs); | 1954 | ath_ant_comb_scan(sc, &rs); |
1955 | 1955 | ||
1956 | ieee80211_rx(hw, skb); | 1956 | ieee80211_rx(hw, skb); |
@@ -1967,7 +1967,8 @@ requeue: | |||
1967 | } else { | 1967 | } else { |
1968 | list_move_tail(&bf->list, &sc->rx.rxbuf); | 1968 | list_move_tail(&bf->list, &sc->rx.rxbuf); |
1969 | ath_rx_buf_link(sc, bf); | 1969 | ath_rx_buf_link(sc, bf); |
1970 | ath9k_hw_rxena(ah); | 1970 | if (!flush) |
1971 | ath9k_hw_rxena(ah); | ||
1971 | } | 1972 | } |
1972 | } while (1); | 1973 | } while (1); |
1973 | 1974 | ||