diff options
author | Helmut Schaa <helmut.schaa@googlemail.com> | 2011-12-08 07:11:55 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-12-13 15:30:46 -0500 |
commit | adf5ace5d8161b962afe90e77922728a425b6933 (patch) | |
tree | 670f672cf55973083d1baaeb6342b9d57933668a /net/mac80211/status.c | |
parent | 8cb25e14fe80d0fac42412364df573eb3e8e83cc (diff) |
mac80211: Make use of ieee80211_is_* functions in tx status path
Use ieee80211_is_data, ieee80211_is_mgmt and ieee80211_is_first_frag
in the tx status path. This makes the code easier to read and allows us
to remove two local variables: frag and type.
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/status.c')
-rw-r--r-- | net/mac80211/status.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/net/mac80211/status.c b/net/mac80211/status.c index 46222ce0e5b1..30c265c98f73 100644 --- a/net/mac80211/status.c +++ b/net/mac80211/status.c | |||
@@ -340,7 +340,6 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb) | |||
340 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; | 340 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; |
341 | struct ieee80211_local *local = hw_to_local(hw); | 341 | struct ieee80211_local *local = hw_to_local(hw); |
342 | struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); | 342 | struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); |
343 | u16 frag, type; | ||
344 | __le16 fc; | 343 | __le16 fc; |
345 | struct ieee80211_supported_band *sband; | 344 | struct ieee80211_supported_band *sband; |
346 | struct ieee80211_sub_if_data *sdata; | 345 | struct ieee80211_sub_if_data *sdata; |
@@ -476,12 +475,8 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb) | |||
476 | * Fragments are passed to low-level drivers as separate skbs, so these | 475 | * Fragments are passed to low-level drivers as separate skbs, so these |
477 | * are actually fragments, not frames. Update frame counters only for | 476 | * are actually fragments, not frames. Update frame counters only for |
478 | * the first fragment of the frame. */ | 477 | * the first fragment of the frame. */ |
479 | |||
480 | frag = le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_FRAG; | ||
481 | type = le16_to_cpu(hdr->frame_control) & IEEE80211_FCTL_FTYPE; | ||
482 | |||
483 | if (info->flags & IEEE80211_TX_STAT_ACK) { | 478 | if (info->flags & IEEE80211_TX_STAT_ACK) { |
484 | if (frag == 0) { | 479 | if (ieee80211_is_first_frag(hdr->seq_ctrl)) { |
485 | local->dot11TransmittedFrameCount++; | 480 | local->dot11TransmittedFrameCount++; |
486 | if (is_multicast_ether_addr(hdr->addr1)) | 481 | if (is_multicast_ether_addr(hdr->addr1)) |
487 | local->dot11MulticastTransmittedFrameCount++; | 482 | local->dot11MulticastTransmittedFrameCount++; |
@@ -496,11 +491,11 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb) | |||
496 | * with a multicast address in the address 1 field of type Data | 491 | * with a multicast address in the address 1 field of type Data |
497 | * or Management. */ | 492 | * or Management. */ |
498 | if (!is_multicast_ether_addr(hdr->addr1) || | 493 | if (!is_multicast_ether_addr(hdr->addr1) || |
499 | type == IEEE80211_FTYPE_DATA || | 494 | ieee80211_is_data(fc) || |
500 | type == IEEE80211_FTYPE_MGMT) | 495 | ieee80211_is_mgmt(fc)) |
501 | local->dot11TransmittedFragmentCount++; | 496 | local->dot11TransmittedFragmentCount++; |
502 | } else { | 497 | } else { |
503 | if (frag == 0) | 498 | if (ieee80211_is_first_frag(hdr->seq_ctrl)) |
504 | local->dot11FailedCount++; | 499 | local->dot11FailedCount++; |
505 | } | 500 | } |
506 | 501 | ||
@@ -572,7 +567,7 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb) | |||
572 | 567 | ||
573 | /* Need to make a copy before skb->cb gets cleared */ | 568 | /* Need to make a copy before skb->cb gets cleared */ |
574 | send_to_cooked = !!(info->flags & IEEE80211_TX_CTL_INJECTED) || | 569 | send_to_cooked = !!(info->flags & IEEE80211_TX_CTL_INJECTED) || |
575 | (type != IEEE80211_FTYPE_DATA); | 570 | !(ieee80211_is_data(fc)); |
576 | 571 | ||
577 | /* | 572 | /* |
578 | * This is a bit racy but we can avoid a lot of work | 573 | * This is a bit racy but we can avoid a lot of work |