diff options
author | Mike Pagano <mpagano@gentoo.org> | 2023-12-11 09:19:59 -0500 |
---|---|---|
committer | Mike Pagano <mpagano@gentoo.org> | 2023-12-11 09:19:59 -0500 |
commit | 38a5712dd639ae25005f19ae1d210b2fe87ecad6 (patch) | |
tree | 28a2f517ee0556b502b9b441aeb4c63eb58f37ca | |
parent | Linux patch 6.1.66 (diff) | |
download | linux-patches-38a5712dd639ae25005f19ae1d210b2fe87ecad6.tar.gz linux-patches-38a5712dd639ae25005f19ae1d210b2fe87ecad6.tar.bz2 linux-patches-38a5712dd639ae25005f19ae1d210b2fe87ecad6.zip |
Linux patch 6.1.676.1-75
Signed-off-by: Mike Pagano <mpagano@gentoo.org>
-rw-r--r-- | 0000_README | 4 | ||||
-rw-r--r-- | 1066_linux-6.1.67.patch | 122 |
2 files changed, 126 insertions, 0 deletions
diff --git a/0000_README b/0000_README index 37486bab..5f228fc4 100644 --- a/0000_README +++ b/0000_README @@ -307,6 +307,10 @@ Patch: 1065_linux-6.1.66.patch From: https://www.kernel.org Desc: Linux 6.1.66 +Patch: 1066_linux-6.1.67.patch +From: https://www.kernel.org +Desc: Linux 6.1.67 + Patch: 1500_XATTR_USER_PREFIX.patch From: https://bugs.gentoo.org/show_bug.cgi?id=470644 Desc: Support for namespace user.pax.* on tmpfs. diff --git a/1066_linux-6.1.67.patch b/1066_linux-6.1.67.patch new file mode 100644 index 00000000..38a86e85 --- /dev/null +++ b/1066_linux-6.1.67.patch @@ -0,0 +1,122 @@ +diff --git a/Makefile b/Makefile +index 5d7e995d686c8..c27600b90cad2 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,7 +1,7 @@ + # SPDX-License-Identifier: GPL-2.0 + VERSION = 6 + PATCHLEVEL = 1 +-SUBLEVEL = 66 ++SUBLEVEL = 67 + EXTRAVERSION = + NAME = Curry Ramen + +diff --git a/net/wireless/core.h b/net/wireless/core.h +index ee980965a7cfb..e1accacc6f233 100644 +--- a/net/wireless/core.h ++++ b/net/wireless/core.h +@@ -297,7 +297,6 @@ struct cfg80211_cqm_config { + u32 rssi_hyst; + s32 last_rssi_event_value; + enum nl80211_cqm_rssi_threshold_event last_rssi_event_type; +- bool use_range_api; + int n_rssi_thresholds; + s32 rssi_thresholds[]; + }; +diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c +index 42c858219b341..b19b5acfaf3a9 100644 +--- a/net/wireless/nl80211.c ++++ b/net/wireless/nl80211.c +@@ -12574,6 +12574,10 @@ static int cfg80211_cqm_rssi_update(struct cfg80211_registered_device *rdev, + int i, n, low_index; + int err; + ++ /* RSSI reporting disabled? */ ++ if (!cqm_config) ++ return rdev_set_cqm_rssi_range_config(rdev, dev, 0, 0); ++ + /* + * Obtain current RSSI value if possible, if not and no RSSI threshold + * event has been received yet, we should receive an event after a +@@ -12648,6 +12652,18 @@ static int nl80211_set_cqm_rssi(struct genl_info *info, + wdev->iftype != NL80211_IFTYPE_P2P_CLIENT) + return -EOPNOTSUPP; + ++ if (n_thresholds <= 1 && rdev->ops->set_cqm_rssi_config) { ++ if (n_thresholds == 0 || thresholds[0] == 0) /* Disabling */ ++ return rdev_set_cqm_rssi_config(rdev, dev, 0, 0); ++ ++ return rdev_set_cqm_rssi_config(rdev, dev, ++ thresholds[0], hysteresis); ++ } ++ ++ if (!wiphy_ext_feature_isset(&rdev->wiphy, ++ NL80211_EXT_FEATURE_CQM_RSSI_LIST)) ++ return -EOPNOTSUPP; ++ + if (n_thresholds == 1 && thresholds[0] == 0) /* Disabling */ + n_thresholds = 0; + +@@ -12655,20 +12671,6 @@ static int nl80211_set_cqm_rssi(struct genl_info *info, + old = rcu_dereference_protected(wdev->cqm_config, + lockdep_is_held(&wdev->mtx)); + +- /* if already disabled just succeed */ +- if (!n_thresholds && !old) +- return 0; +- +- if (n_thresholds > 1) { +- if (!wiphy_ext_feature_isset(&rdev->wiphy, +- NL80211_EXT_FEATURE_CQM_RSSI_LIST) || +- !rdev->ops->set_cqm_rssi_range_config) +- return -EOPNOTSUPP; +- } else { +- if (!rdev->ops->set_cqm_rssi_config) +- return -EOPNOTSUPP; +- } +- + if (n_thresholds) { + cqm_config = kzalloc(struct_size(cqm_config, rssi_thresholds, + n_thresholds), +@@ -12683,26 +12685,13 @@ static int nl80211_set_cqm_rssi(struct genl_info *info, + memcpy(cqm_config->rssi_thresholds, thresholds, + flex_array_size(cqm_config, rssi_thresholds, + n_thresholds)); +- cqm_config->use_range_api = n_thresholds > 1 || +- !rdev->ops->set_cqm_rssi_config; + + rcu_assign_pointer(wdev->cqm_config, cqm_config); +- +- if (cqm_config->use_range_api) +- err = cfg80211_cqm_rssi_update(rdev, dev, cqm_config); +- else +- err = rdev_set_cqm_rssi_config(rdev, dev, +- thresholds[0], +- hysteresis); + } else { + RCU_INIT_POINTER(wdev->cqm_config, NULL); +- /* if enabled as range also disable via range */ +- if (old->use_range_api) +- err = rdev_set_cqm_rssi_range_config(rdev, dev, 0, 0); +- else +- err = rdev_set_cqm_rssi_config(rdev, dev, 0, 0); + } + ++ err = cfg80211_cqm_rssi_update(rdev, dev, cqm_config); + if (err) { + rcu_assign_pointer(wdev->cqm_config, old); + kfree_rcu(cqm_config, rcu_head); +@@ -18769,11 +18758,10 @@ void cfg80211_cqm_rssi_notify_work(struct wiphy *wiphy, struct wiphy_work *work) + wdev_lock(wdev); + cqm_config = rcu_dereference_protected(wdev->cqm_config, + lockdep_is_held(&wdev->mtx)); +- if (!cqm_config) ++ if (!wdev->cqm_config) + goto unlock; + +- if (cqm_config->use_range_api) +- cfg80211_cqm_rssi_update(rdev, wdev->netdev, cqm_config); ++ cfg80211_cqm_rssi_update(rdev, wdev->netdev, cqm_config); + + rssi_level = cqm_config->last_rssi_event_value; + rssi_event = cqm_config->last_rssi_event_type; |