From: Greg Kroah-Hartman Date: Fri, 2 Nov 2018 09:20:29 +0000 (+0100) Subject: drop 4.4 patch that caused build warnings X-Git-Tag: v4.19.1~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=94cc80b4ffd7b1970a47f4c6b431991751a3839e;p=thirdparty%2Fkernel%2Fstable-queue.git drop 4.4 patch that caused build warnings --- diff --git a/queue-4.4/cfg80211-address-some-corner-cases-in-scan-result-ch.patch b/queue-4.4/cfg80211-address-some-corner-cases-in-scan-result-ch.patch deleted file mode 100644 index 3b703eb530b..00000000000 --- a/queue-4.4/cfg80211-address-some-corner-cases-in-scan-result-ch.patch +++ /dev/null @@ -1,140 +0,0 @@ -From 42f417212a8d02cacbd4ee288e9aa542d9283ff8 Mon Sep 17 00:00:00 2001 -From: Jouni Malinen -Date: Wed, 5 Sep 2018 18:52:22 +0300 -Subject: cfg80211: Address some corner cases in scan result channel updating - -[ Upstream commit 119f94a6fefcc76d47075b83d2b73d04c895df78 ] - -cfg80211_get_bss_channel() is used to update the RX channel based on the -available frame payload information (channel number from DSSS Parameter -Set element or HT Operation element). This is needed on 2.4 GHz channels -where frames may be received on neighboring channels due to overlapping -frequency range. - -This might of some use on the 5 GHz band in some corner cases, but -things are more complex there since there is no n:1 or 1:n mapping -between channel numbers and frequencies due to multiple different -starting frequencies in different operating classes. This could result -in ieee80211_channel_to_frequency() returning incorrect frequency and -ieee80211_get_channel() returning incorrect channel information (or -indication of no match). In the previous implementation, this could -result in some scan results being dropped completely, e.g., for the 4.9 -GHz channels. That prevented connection to such BSSs. - -Fix this by using the driver-provided channel pointer if -ieee80211_get_channel() does not find matching channel data for the -channel number in the frame payload and if the scan is done with 5 MHz -or 10 MHz channel bandwidth. While doing this, also add comments -describing what the function is trying to achieve to make it easier to -understand what happens here and why. - -Signed-off-by: Jouni Malinen -Signed-off-by: Johannes Berg -Signed-off-by: Sasha Levin ---- - net/wireless/scan.c | 58 ++++++++++++++++++++++++++++++++++++++------- - 1 file changed, 49 insertions(+), 9 deletions(-) - -diff --git a/net/wireless/scan.c b/net/wireless/scan.c -index 8dde12a11725..00219f386283 100644 ---- a/net/wireless/scan.c -+++ b/net/wireless/scan.c -@@ -974,13 +974,23 @@ cfg80211_bss_update(struct cfg80211_registered_device *rdev, - return NULL; - } - -+/* -+ * Update RX channel information based on the available frame payload -+ * information. This is mainly for the 2.4 GHz band where frames can be received -+ * from neighboring channels and the Beacon frames use the DSSS Parameter Set -+ * element to indicate the current (transmitting) channel, but this might also -+ * be needed on other bands if RX frequency does not match with the actual -+ * operating channel of a BSS. -+ */ - static struct ieee80211_channel * - cfg80211_get_bss_channel(struct wiphy *wiphy, const u8 *ie, size_t ielen, -- struct ieee80211_channel *channel) -+ struct ieee80211_channel *channel, -+ enum nl80211_bss_scan_width scan_width) - { - const u8 *tmp; - u32 freq; - int channel_number = -1; -+ struct ieee80211_channel *alt_channel; - - tmp = cfg80211_find_ie(WLAN_EID_DS_PARAMS, ie, ielen); - if (tmp && tmp[1] == 1) { -@@ -994,16 +1004,45 @@ cfg80211_get_bss_channel(struct wiphy *wiphy, const u8 *ie, size_t ielen, - } - } - -- if (channel_number < 0) -+ if (channel_number < 0) { -+ /* No channel information in frame payload */ - return channel; -+ } - - freq = ieee80211_channel_to_frequency(channel_number, channel->band); -- channel = ieee80211_get_channel(wiphy, freq); -- if (!channel) -- return NULL; -- if (channel->flags & IEEE80211_CHAN_DISABLED) -+ alt_channel = ieee80211_get_channel(wiphy, freq); -+ if (!alt_channel) { -+ if (channel->band == NL80211_BAND_2GHZ) { -+ /* -+ * Better not allow unexpected channels when that could -+ * be going beyond the 1-11 range (e.g., discovering -+ * BSS on channel 12 when radio is configured for -+ * channel 11. -+ */ -+ return NULL; -+ } -+ -+ /* No match for the payload channel number - ignore it */ -+ return channel; -+ } -+ -+ if (scan_width == NL80211_BSS_CHAN_WIDTH_10 || -+ scan_width == NL80211_BSS_CHAN_WIDTH_5) { -+ /* -+ * Ignore channel number in 5 and 10 MHz channels where there -+ * may not be an n:1 or 1:n mapping between frequencies and -+ * channel numbers. -+ */ -+ return channel; -+ } -+ -+ /* -+ * Use the channel determined through the payload channel number -+ * instead of the RX channel reported by the driver. -+ */ -+ if (alt_channel->flags & IEEE80211_CHAN_DISABLED) - return NULL; -- return channel; -+ return alt_channel; - } - - /* Returned bss is reference counted and must be cleaned up appropriately. */ -@@ -1028,7 +1067,8 @@ cfg80211_inform_bss_data(struct wiphy *wiphy, - (data->signal < 0 || data->signal > 100))) - return NULL; - -- channel = cfg80211_get_bss_channel(wiphy, ie, ielen, data->chan); -+ channel = cfg80211_get_bss_channel(wiphy, ie, ielen, data->chan, -+ data->scan_width); - if (!channel) - return NULL; - -@@ -1126,7 +1166,7 @@ cfg80211_inform_bss_frame_data(struct wiphy *wiphy, - return NULL; - - channel = cfg80211_get_bss_channel(wiphy, mgmt->u.beacon.variable, -- ielen, data->chan); -+ ielen, data->chan, data->scan_width); - if (!channel) - return NULL; - --- -2.17.1 - diff --git a/queue-4.4/series b/queue-4.4/series index 4c973901d0d..e7bf9f80155 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -2,7 +2,6 @@ xfrm-validate-address-prefix-lengths-in-the-xfrm-sel.patch xfrm6-call-kfree_skb-when-skb-is-toobig.patch mac80211-always-report-tx-status.patch cfg80211-reg-init-wiphy_idx-in-regulatory_hint_core.patch -cfg80211-address-some-corner-cases-in-scan-result-ch.patch arm-8799-1-mm-fix-pci_ioremap_io-offset-check.patch xfrm-validate-template-mode.patch mac80211_hwsim-do-not-omit-multicast-announce-of-fir.patch