summaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2016-10-19 15:02:32 +0200
committerJohannes Berg <johannes.berg@intel.com>2017-01-12 10:15:19 +0100
commit2cc6f5a715cf9f7d5ca8fd2bde62130fcfd90b94 (patch)
tree12f8d9839ad53da0a2f56dabad5b1fc1c45ac7d1 /net/mac80211
parentcef0acd4d7d4811d2d19cd0195031bf0dfe41249 (diff)
downloadlinux-2cc6f5a715cf9f7d5ca8fd2bde62130fcfd90b94.tar.gz
linux-2cc6f5a715cf9f7d5ca8fd2bde62130fcfd90b94.tar.xz
mac80211: set wifi_acked[_valid] bits for transmitted SKBs
There may be situations in which the in-kernel originator of an SKB cares about its wifi transmission status. To have that, set the wifi_acked[_valid] bits before freeing/orphaning the SKB if the destructor is set. The originator can then use it in there. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/status.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/mac80211/status.c b/net/mac80211/status.c
index f7c5ae597639..d6a1bfaa7a81 100644
--- a/net/mac80211/status.c
+++ b/net/mac80211/status.c
@@ -541,6 +541,11 @@ static void ieee80211_report_used_skb(struct ieee80211_local *local,
} else if (info->ack_frame_id) {
ieee80211_report_ack_skb(local, info, acked, dropped);
}
+
+ if (!dropped && skb->destructor) {
+ skb->wifi_acked_valid = 1;
+ skb->wifi_acked = acked;
+ }
}
/*