Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 278887
b: refs/heads/master
c: adf5ace
h: refs/heads/master
i:
  278885: e275c0d
  278883: 0fb7f84
  278879: 2fb99a0
v: v3
  • Loading branch information
Helmut Schaa authored and John W. Linville committed Dec 13, 2011
1 parent c56c29d commit ed7b7de
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 11 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8cb25e14fe80d0fac42412364df573eb3e8e83cc
refs/heads/master: adf5ace5d8161b962afe90e77922728a425b6933
15 changes: 5 additions & 10 deletions trunk/net/mac80211/status.c
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,6 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
struct ieee80211_local *local = hw_to_local(hw);
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
u16 frag, type;
__le16 fc;
struct ieee80211_supported_band *sband;
struct ieee80211_sub_if_data *sdata;
Expand Down Expand Up @@ -476,12 +475,8 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)
* Fragments are passed to low-level drivers as separate skbs, so these
* are actually fragments, not frames. Update frame counters only for
* the first fragment of the frame. */

frag = le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_FRAG;
type = le16_to_cpu(hdr->frame_control) & IEEE80211_FCTL_FTYPE;

if (info->flags & IEEE80211_TX_STAT_ACK) {
if (frag == 0) {
if (ieee80211_is_first_frag(hdr->seq_ctrl)) {
local->dot11TransmittedFrameCount++;
if (is_multicast_ether_addr(hdr->addr1))
local->dot11MulticastTransmittedFrameCount++;
Expand All @@ -496,11 +491,11 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)
* with a multicast address in the address 1 field of type Data
* or Management. */
if (!is_multicast_ether_addr(hdr->addr1) ||
type == IEEE80211_FTYPE_DATA ||
type == IEEE80211_FTYPE_MGMT)
ieee80211_is_data(fc) ||
ieee80211_is_mgmt(fc))
local->dot11TransmittedFragmentCount++;
} else {
if (frag == 0)
if (ieee80211_is_first_frag(hdr->seq_ctrl))
local->dot11FailedCount++;
}

Expand Down Expand Up @@ -572,7 +567,7 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)

/* Need to make a copy before skb->cb gets cleared */
send_to_cooked = !!(info->flags & IEEE80211_TX_CTL_INJECTED) ||
(type != IEEE80211_FTYPE_DATA);
!(ieee80211_is_data(fc));

/*
* This is a bit racy but we can avoid a lot of work
Expand Down

0 comments on commit ed7b7de

Please sign in to comment.