Commit adf5ace5 authored by Helmut Schaa's avatar Helmut Schaa Committed by John W. Linville

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: default avatarHelmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 8cb25e14
...@@ -340,7 +340,6 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb) ...@@ -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_hdr *hdr = (struct ieee80211_hdr *) skb->data;
struct ieee80211_local *local = hw_to_local(hw); struct ieee80211_local *local = hw_to_local(hw);
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
u16 frag, type;
__le16 fc; __le16 fc;
struct ieee80211_supported_band *sband; struct ieee80211_supported_band *sband;
struct ieee80211_sub_if_data *sdata; struct ieee80211_sub_if_data *sdata;
...@@ -476,12 +475,8 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb) ...@@ -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 * Fragments are passed to low-level drivers as separate skbs, so these
* are actually fragments, not frames. Update frame counters only for * are actually fragments, not frames. Update frame counters only for
* the first fragment of the frame. */ * 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 (info->flags & IEEE80211_TX_STAT_ACK) {
if (frag == 0) { if (ieee80211_is_first_frag(hdr->seq_ctrl)) {
local->dot11TransmittedFrameCount++; local->dot11TransmittedFrameCount++;
if (is_multicast_ether_addr(hdr->addr1)) if (is_multicast_ether_addr(hdr->addr1))
local->dot11MulticastTransmittedFrameCount++; local->dot11MulticastTransmittedFrameCount++;
...@@ -496,11 +491,11 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb) ...@@ -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 * with a multicast address in the address 1 field of type Data
* or Management. */ * or Management. */
if (!is_multicast_ether_addr(hdr->addr1) || if (!is_multicast_ether_addr(hdr->addr1) ||
type == IEEE80211_FTYPE_DATA || ieee80211_is_data(fc) ||
type == IEEE80211_FTYPE_MGMT) ieee80211_is_mgmt(fc))
local->dot11TransmittedFragmentCount++; local->dot11TransmittedFragmentCount++;
} else { } else {
if (frag == 0) if (ieee80211_is_first_frag(hdr->seq_ctrl))
local->dot11FailedCount++; local->dot11FailedCount++;
} }
...@@ -572,7 +567,7 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb) ...@@ -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 */ /* Need to make a copy before skb->cb gets cleared */
send_to_cooked = !!(info->flags & IEEE80211_TX_CTL_INJECTED) || 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 * This is a bit racy but we can avoid a lot of work
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment