aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/subsys/326-mac80211-set-info-control.hw_key-for-encap-offload-p.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/mac80211/patches/subsys/326-mac80211-set-info-control.hw_key-for-encap-offload-p.patch')
-rw-r--r--package/kernel/mac80211/patches/subsys/326-mac80211-set-info-control.hw_key-for-encap-offload-p.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/subsys/326-mac80211-set-info-control.hw_key-for-encap-offload-p.patch b/package/kernel/mac80211/patches/subsys/326-mac80211-set-info-control.hw_key-for-encap-offload-p.patch
new file mode 100644
index 0000000000..2b7579b24e
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/326-mac80211-set-info-control.hw_key-for-encap-offload-p.patch
@@ -0,0 +1,31 @@
+From: Felix Fietkau <nbd@nbd.name>
+Date: Fri, 21 Aug 2020 06:03:45 +0200
+Subject: [PATCH] mac80211: set info->control.hw_key for encap offload
+ packets
+
+This is needed for drivers that don't do the key lookup themselves
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- a/net/mac80211/tx.c
++++ b/net/mac80211/tx.c
+@@ -4191,6 +4191,7 @@ static void ieee80211_8023_xmit(struct i
+ {
+ struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
+ struct ieee80211_local *local = sdata->local;
++ struct ieee80211_key *key;
+ struct tid_ampdu_tx *tid_tx;
+ u8 tid;
+
+@@ -4239,6 +4240,10 @@ static void ieee80211_8023_xmit(struct i
+ info->flags |= IEEE80211_TX_CTL_HW_80211_ENCAP;
+ info->control.vif = &sdata->vif;
+
++ key = rcu_dereference(sta->ptk[sta->ptk_idx]);
++ if (key)
++ info->control.hw_key = &key->conf;
++
+ ieee80211_tx_8023(sdata, skb, skb->len, sta, false);
+
+ return;