ath9k_htc: Make sequence number calculation per-VIF
authorSujith Manoharan <Sujith.Manoharan@atheros.com>
Mon, 21 Feb 2011 02:18:53 +0000 (07:48 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 23 Feb 2011 21:25:26 +0000 (16:25 -0500)
Signed-off-by: Sujith Manoharan <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/htc.h
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c

index 11d028f2156ebb64b553cebaae41f13b029c1bb9..97f7ae096f69bae8a28fa2d81c19f38dd0dd2596 100644 (file)
@@ -208,6 +208,7 @@ struct ath9k_htc_target_stats {
 
 struct ath9k_htc_vif {
        u8 index;
+       u16 seq_no;
 };
 
 struct ath9k_vif_iter_data {
@@ -372,7 +373,6 @@ struct ath9k_htc_priv {
        u16 txpowlimit;
        u16 nvifs;
        u16 nstations;
-       u16 seq_no;
        u32 bmiss_cnt;
        bool rearm_ani;
        bool reconfig_beacon;
index 133f628dc086ed332e4f43ec5c03ac5822462eef..bbbdd60bcb3ece48f799dde4ca51c8d0440971b4 100644 (file)
@@ -207,9 +207,9 @@ void ath9k_htc_swba(struct ath9k_htc_priv *priv, u8 beacon_pending)
        if (info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ) {
                struct ieee80211_hdr *hdr =
                        (struct ieee80211_hdr *) beacon->data;
-               priv->seq_no += 0x10;
+               avp->seq_no += 0x10;
                hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
-               hdr->seq_ctrl |= cpu_to_le16(priv->seq_no);
+               hdr->seq_ctrl |= cpu_to_le16(avp->seq_no);
        }
 
        tx_ctl.type = ATH9K_HTC_NORMAL;