Ticket #964: 004-local_monitor_sequence_numbers_fix.diff

File 004-local_monitor_sequence_numbers_fix.diff, 1.7 kB (added by xmxwx@asn.pl, 6 years ago)
  • a/ath/if_ath.c

    old new  
    71577157                                ATH_NODE_UAPSD_UNLOCK_IRQ(an); 
    71587158                        } 
    71597159                } 
     7160 
     7161                { 
     7162                        struct ieee80211_frame *wh = (struct ieee80211_frame *)bf->bf_skb->data; 
     7163                        if ((ds->ds_txstat.ts_seqnum << IEEE80211_SEQ_SEQ_SHIFT) & ~IEEE80211_SEQ_SEQ_MASK) { 
     7164                                DPRINTF(sc, ATH_DEBUG_TX_PROC, "%s: h/w assigned sequence number is not sane (%d), ignoring it\n", __func__, 
     7165                                        ds->ds_txstat.ts_seqnum); 
     7166                        } else { 
     7167                                DPRINTF(sc, ATH_DEBUG_TX_PROC, "%s: updating frame's sequence number from %d to %d\n", __func__,  
     7168                                        (le16toh(*(u_int16_t *)&wh->i_seq[0]) & IEEE80211_SEQ_SEQ_MASK) >> IEEE80211_SEQ_SEQ_SHIFT, 
     7169                                        ds->ds_txstat.ts_seqnum); 
     7170 
     7171                                *(u_int16_t *)&wh->i_seq[0] = htole16( 
     7172                                        ds->ds_txstat.ts_seqnum << IEEE80211_SEQ_SEQ_SHIFT | 
     7173                                        (le16toh(*(u_int16_t *)&wh->i_seq[0]) & ~IEEE80211_SEQ_SEQ_MASK)); 
     7174                        } 
     7175                } 
     7176 
    71607177#ifdef ATH_SUPERG_FF 
    71617178                { 
    71627179                        struct sk_buff *skbfree, *skb = bf->bf_skb;