Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 39ecc01d authored by Johannes Berg's avatar Johannes Berg
Browse files

mac80211: pass queue bitmap to flush operation



There are a number of situations in which mac80211 only
really needs to flush queues for one virtual interface,
and in fact during this frames might be transmitted on
other virtual interfaces. Calculate and pass a queue
bitmap to the driver so it knows which queues to flush.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent a0ca796c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1091,7 +1091,7 @@ static int ar5523_set_rts_threshold(struct ieee80211_hw *hw, u32 value)
	return ret;
}

static void ar5523_flush(struct ieee80211_hw *hw, bool drop)
static void ar5523_flush(struct ieee80211_hw *hw, u32 queues, bool drop)
{
	struct ar5523 *ar = hw->priv;

+1 −1
Original line number Diff line number Diff line
@@ -1745,7 +1745,7 @@ static void ath9k_set_coverage_class(struct ieee80211_hw *hw, u8 coverage_class)
	mutex_unlock(&sc->mutex);
}

static void ath9k_flush(struct ieee80211_hw *hw, bool drop)
static void ath9k_flush(struct ieee80211_hw *hw, u32 queues, bool drop)
{
	struct ath_softc *sc = hw->priv;
	struct ath_hw *ah = sc->sc_ah;
+1 −1
Original line number Diff line number Diff line
@@ -1703,7 +1703,7 @@ static int carl9170_op_get_survey(struct ieee80211_hw *hw, int idx,
	return 0;
}

static void carl9170_op_flush(struct ieee80211_hw *hw, bool drop)
static void carl9170_op_flush(struct ieee80211_hw *hw, u32 queues, bool drop)
{
	struct ar9170 *ar = hw->priv;
	unsigned int vid;
+1 −1
Original line number Diff line number Diff line
@@ -723,7 +723,7 @@ static bool brcms_tx_flush_completed(struct brcms_info *wl)
	return result;
}

static void brcms_ops_flush(struct ieee80211_hw *hw, bool drop)
static void brcms_ops_flush(struct ieee80211_hw *hw, u32 queues, bool drop)
{
	struct brcms_info *wl = hw->priv;
	int ret;
+1 −2
Original line number Diff line number Diff line
@@ -4704,8 +4704,7 @@ il_mac_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
}
EXPORT_SYMBOL(il_mac_change_interface);

void
il_mac_flush(struct ieee80211_hw *hw, bool drop)
void il_mac_flush(struct ieee80211_hw *hw, u32 queues, bool drop)
{
	struct il_priv *il = hw->priv;
	unsigned long timeout = jiffies + msecs_to_jiffies(500);
Loading