| | 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 | |
|---|