From a002a24536c15926724516b4acf58ad8934a896d Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Sat, 30 May 2020 09:36:17 +0100 Subject: [PATCH] mac80211: rt2x00: backport patch enabling MFP From: Rui Salvaterra Date: Mon, 25 May 2020 14:49:07 +0100 Subject: [PATCH] rt2800: enable MFP support unconditionally This gives us WPA3 support out of the box without having to manually disable hardware crypto. The driver will fall back to software crypto if the connection requires management frame protection. Signed-off-by: Daniel Golle --- ...0-enable-MFP-support-unconditionally.patch | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 package/kernel/mac80211/patches/rt2x00/001-rt2800-enable-MFP-support-unconditionally.patch diff --git a/package/kernel/mac80211/patches/rt2x00/001-rt2800-enable-MFP-support-unconditionally.patch b/package/kernel/mac80211/patches/rt2x00/001-rt2800-enable-MFP-support-unconditionally.patch new file mode 100644 index 0000000000..5dfcf5bf3b --- /dev/null +++ b/package/kernel/mac80211/patches/rt2x00/001-rt2800-enable-MFP-support-unconditionally.patch @@ -0,0 +1,44 @@ +From b6b15e20421fefae9f78274f9fef80bc97bf5d5c Mon Sep 17 00:00:00 2001 +From: Rui Salvaterra +Date: Mon, 25 May 2020 14:49:07 +0100 +Subject: [PATCH] rt2800: enable MFP support unconditionally + +This gives us WPA3 support out of the box without having to manually disable +hardware crypto. The driver will fall back to software crypto if the connection +requires management frame protection. + +Suggested-by: Stanislaw Gruszka +Signed-off-by: Rui Salvaterra +Acked-by: Stanislaw Gruszka +Signed-off-by: Kalle Valo +Link: https://lore.kernel.org/r/20200525134906.1672-1-rsalvaterra@gmail.com +--- + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 4 +--- + drivers/net/wireless/ralink/rt2x00/rt2x00mac.c | 3 ++- + 2 files changed, 3 insertions(+), 4 deletions(-) + +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c +@@ -9971,9 +9971,7 @@ static int rt2800_probe_hw_mode(struct r + if (!rt2x00_is_usb(rt2x00dev)) + ieee80211_hw_set(rt2x00dev->hw, HOST_BROADCAST_PS_BUFFERING); + +- /* Set MFP if HW crypto is disabled. */ +- if (rt2800_hwcrypt_disabled(rt2x00dev)) +- ieee80211_hw_set(rt2x00dev->hw, MFP_CAPABLE); ++ ieee80211_hw_set(rt2x00dev->hw, MFP_CAPABLE); + + SET_IEEE80211_DEV(rt2x00dev->hw, rt2x00dev->dev); + SET_IEEE80211_PERM_ADDR(rt2x00dev->hw, +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c +@@ -468,7 +468,8 @@ int rt2x00mac_set_key(struct ieee80211_h + if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) + return 0; + +- if (!rt2x00_has_cap_hw_crypto(rt2x00dev)) ++ /* The hardware can't do MFP */ ++ if (!rt2x00_has_cap_hw_crypto(rt2x00dev) || (sta && sta->mfp)) + return -EOPNOTSUPP; + + /*