new file mode 100644
@@ -0,0 +1,47 @@
+Make ieee80211_tx_status handling work on older kernel versions
+
+The commit f02dff93e26b ("mac80211: extend ieee80211_tx_status_ext to
+support bulk free") makes use of the list attribute in the skb, but this
+is not available in kernel < 4.19, use the sk_buff_head instead on these
+kernel versions.
+
+--- a/include/net/mac80211.h
++++ b/include/net/mac80211.h
+@@ -1132,7 +1132,11 @@ struct ieee80211_tx_status {
+ struct ieee80211_tx_info *info;
+ struct sk_buff *skb;
+ struct rate_info *rate;
++#if LINUX_VERSION_IS_GEQ(4,19,0)
+ struct list_head *free_list;
++#else
++ struct sk_buff_head *free_list;
++#endif
+ };
+
+ /**
+--- a/net/mac80211/status.c
++++ b/net/mac80211/status.c
+@@ -1033,7 +1033,11 @@ static void __ieee80211_tx_status(struct
+ */
+ if (!local->monitors && (!send_to_cooked || !local->cooked_mntrs)) {
+ if (status->free_list)
++#if LINUX_VERSION_IS_GEQ(4,19,0)
+ list_add_tail(&skb->list, status->free_list);
++#else
++ __skb_queue_tail(status->free_list, skb);
++#endif
+ else
+ dev_kfree_skb(skb);
+ return;
+@@ -1183,7 +1187,11 @@ free:
+
+ ieee80211_report_used_skb(local, skb, false);
+ if (status->free_list)
++#if LINUX_VERSION_IS_GEQ(4,19,0)
+ list_add_tail(&skb->list, status->free_list);
++#else
++ __skb_queue_tail(status->free_list, skb);
++#endif
+ else
+ dev_kfree_skb(skb);
+ }
The commit f02dff93e26b ("mac80211: extend ieee80211_tx_status_ext to support bulk free") makes use of the list attribute in the skb, but this is not available in kernel < 4.19, use the sk_buff_head instead on these kernel versions. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> --- patches/0097-skb-list/mac80211-status.patch | 47 +++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 patches/0097-skb-list/mac80211-status.patch