Date: Monday, December 21, 2020 @ 21:29:09 Author: arodseth Revision: 781605
archrelease: copy trunk to community-testing-x86_64 Added: broadcom-wl-dkms/repos/community-testing-x86_64/001-null-pointer-fix.patch (from rev 781603, broadcom-wl-dkms/trunk/001-null-pointer-fix.patch) broadcom-wl-dkms/repos/community-testing-x86_64/002-rdtscl.patch (from rev 781603, broadcom-wl-dkms/trunk/002-rdtscl.patch) broadcom-wl-dkms/repos/community-testing-x86_64/003-linux47.patch (from rev 781603, broadcom-wl-dkms/trunk/003-linux47.patch) broadcom-wl-dkms/repos/community-testing-x86_64/004-linux48.patch (from rev 781603, broadcom-wl-dkms/trunk/004-linux48.patch) broadcom-wl-dkms/repos/community-testing-x86_64/005-debian-fix-kernel-warnings.patch (from rev 781603, broadcom-wl-dkms/trunk/005-debian-fix-kernel-warnings.patch) broadcom-wl-dkms/repos/community-testing-x86_64/006-linux411.patch (from rev 781603, broadcom-wl-dkms/trunk/006-linux411.patch) broadcom-wl-dkms/repos/community-testing-x86_64/007-linux412.patch (from rev 781603, broadcom-wl-dkms/trunk/007-linux412.patch) broadcom-wl-dkms/repos/community-testing-x86_64/008-linux415.patch (from rev 781603, broadcom-wl-dkms/trunk/008-linux415.patch) broadcom-wl-dkms/repos/community-testing-x86_64/009-fix_mac_profile_discrepancy.patch (from rev 781603, broadcom-wl-dkms/trunk/009-fix_mac_profile_discrepancy.patch) broadcom-wl-dkms/repos/community-testing-x86_64/010-linux56.patch (from rev 781603, broadcom-wl-dkms/trunk/010-linux56.patch) broadcom-wl-dkms/repos/community-testing-x86_64/011-linux59.patch (from rev 781603, broadcom-wl-dkms/trunk/011-linux59.patch) broadcom-wl-dkms/repos/community-testing-x86_64/012-linux510.patch (from rev 781603, broadcom-wl-dkms/trunk/012-linux510.patch) broadcom-wl-dkms/repos/community-testing-x86_64/PKGBUILD (from rev 781604, broadcom-wl-dkms/trunk/PKGBUILD) broadcom-wl-dkms/repos/community-testing-x86_64/broadcom-wl-dkms.conf (from rev 781604, broadcom-wl-dkms/trunk/broadcom-wl-dkms.conf) broadcom-wl-dkms/repos/community-testing-x86_64/broadcom-wl-dkms.install (from rev 781604, broadcom-wl-dkms/trunk/broadcom-wl-dkms.install) broadcom-wl-dkms/repos/community-testing-x86_64/dkms.conf.in (from rev 781604, broadcom-wl-dkms/trunk/dkms.conf.in) Deleted: broadcom-wl-dkms/repos/community-testing-x86_64/001-null-pointer-fix.patch broadcom-wl-dkms/repos/community-testing-x86_64/002-rdtscl.patch broadcom-wl-dkms/repos/community-testing-x86_64/003-linux47.patch broadcom-wl-dkms/repos/community-testing-x86_64/004-linux48.patch broadcom-wl-dkms/repos/community-testing-x86_64/005-debian-fix-kernel-warnings.patch broadcom-wl-dkms/repos/community-testing-x86_64/006-linux411.patch broadcom-wl-dkms/repos/community-testing-x86_64/007-linux412.patch broadcom-wl-dkms/repos/community-testing-x86_64/008-linux415.patch broadcom-wl-dkms/repos/community-testing-x86_64/009-fix_mac_profile_discrepancy.patch broadcom-wl-dkms/repos/community-testing-x86_64/010-linux56.patch broadcom-wl-dkms/repos/community-testing-x86_64/011-linux59.patch broadcom-wl-dkms/repos/community-testing-x86_64/012-linux510.patch broadcom-wl-dkms/repos/community-testing-x86_64/PKGBUILD broadcom-wl-dkms/repos/community-testing-x86_64/broadcom-wl-dkms.conf broadcom-wl-dkms/repos/community-testing-x86_64/broadcom-wl-dkms.install broadcom-wl-dkms/repos/community-testing-x86_64/dkms.conf.in ---------------------------------------+ 001-null-pointer-fix.patch | 54 ++-- 002-rdtscl.patch | 44 +-- 003-linux47.patch | 218 ++++++++-------- 004-linux48.patch | 128 ++++----- 005-debian-fix-kernel-warnings.patch | 322 ++++++++++++------------ 006-linux411.patch | 54 ++-- 007-linux412.patch | 136 +++++----- 008-linux415.patch | 92 +++--- 009-fix_mac_profile_discrepancy.patch | 28 +- 010-linux56.patch | 110 ++++---- 011-linux59.patch | 72 ++--- 012-linux510.patch | 422 ++++++++++++++++---------------- PKGBUILD | 146 +++++------ broadcom-wl-dkms.conf | 16 - broadcom-wl-dkms.install | 32 +- dkms.conf.in | 32 +- 16 files changed, 953 insertions(+), 953 deletions(-) Deleted: 001-null-pointer-fix.patch =================================================================== --- 001-null-pointer-fix.patch 2020-12-21 21:29:03 UTC (rev 781604) +++ 001-null-pointer-fix.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -1,27 +0,0 @@ -Description: Fixing null pointer crash - -Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=773713 -Bug-Ubuntu: https://launchpad.net/bugs/1415880 -Last-Update: 2015-08-18 - ---- - src/wl/sys/wl_linux.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c -index 860b935..295156f 100644 ---- a/src/wl/sys/wl_linux.c -+++ b/src/wl/sys/wl_linux.c -@@ -2157,8 +2157,8 @@ wl_start(struct sk_buff *skb, struct net_device *dev) - wlif = WL_DEV_IF(dev); - wl = WL_INFO(dev); - -+ skb->prev = NULL; - if (WL_ALL_PASSIVE_ENAB(wl) || (WL_RTR() && WL_CONFIG_SMP())) { -- skb->prev = NULL; - - TXQ_LOCK(wl); - --- -1.9.1 - Copied: broadcom-wl-dkms/repos/community-testing-x86_64/001-null-pointer-fix.patch (from rev 781603, broadcom-wl-dkms/trunk/001-null-pointer-fix.patch) =================================================================== --- 001-null-pointer-fix.patch (rev 0) +++ 001-null-pointer-fix.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -0,0 +1,27 @@ +Description: Fixing null pointer crash + +Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=773713 +Bug-Ubuntu: https://launchpad.net/bugs/1415880 +Last-Update: 2015-08-18 + +--- + src/wl/sys/wl_linux.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c +index 860b935..295156f 100644 +--- a/src/wl/sys/wl_linux.c ++++ b/src/wl/sys/wl_linux.c +@@ -2157,8 +2157,8 @@ wl_start(struct sk_buff *skb, struct net_device *dev) + wlif = WL_DEV_IF(dev); + wl = WL_INFO(dev); + ++ skb->prev = NULL; + if (WL_ALL_PASSIVE_ENAB(wl) || (WL_RTR() && WL_CONFIG_SMP())) { +- skb->prev = NULL; + + TXQ_LOCK(wl); + +-- +1.9.1 + Deleted: 002-rdtscl.patch =================================================================== --- 002-rdtscl.patch 2020-12-21 21:29:03 UTC (rev 781604) +++ 002-rdtscl.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -1,22 +0,0 @@ -Since Linux 4.3, rdtscl() is no longer available and native_read_tsc() -is renamed to rdtsc(). Move the macro contents in-line and call the -new function. References: - -https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=fe47ae6e1a5005b2e82f7eab57b5c3820453293a -https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=4ea1636b04dbd66536fa387bae2eea463efc705b - -diff -ru a/src/shared/linux_osl.c b/src/shared/linux_osl.c ---- a/src/shared/linux_osl.c 2015-09-19 01:47:15.000000000 +0300 -+++ b/src/shared/linux_osl.c 2015-11-21 15:20:30.585902518 +0200 -@@ -932,7 +932,11 @@ - uint cycles; - - #if defined(__i386__) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) -+ cycles = (u32)rdtsc(); -+#else - rdtscl(cycles); -+#endif - #else - cycles = 0; - #endif Copied: broadcom-wl-dkms/repos/community-testing-x86_64/002-rdtscl.patch (from rev 781603, broadcom-wl-dkms/trunk/002-rdtscl.patch) =================================================================== --- 002-rdtscl.patch (rev 0) +++ 002-rdtscl.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -0,0 +1,22 @@ +Since Linux 4.3, rdtscl() is no longer available and native_read_tsc() +is renamed to rdtsc(). Move the macro contents in-line and call the +new function. References: + +https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=fe47ae6e1a5005b2e82f7eab57b5c3820453293a +https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=4ea1636b04dbd66536fa387bae2eea463efc705b + +diff -ru a/src/shared/linux_osl.c b/src/shared/linux_osl.c +--- a/src/shared/linux_osl.c 2015-09-19 01:47:15.000000000 +0300 ++++ b/src/shared/linux_osl.c 2015-11-21 15:20:30.585902518 +0200 +@@ -932,7 +932,11 @@ + uint cycles; + + #if defined(__i386__) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) ++ cycles = (u32)rdtsc(); ++#else + rdtscl(cycles); ++#endif + #else + cycles = 0; + #endif Deleted: 003-linux47.patch =================================================================== --- 003-linux47.patch 2020-12-21 21:29:03 UTC (rev 781604) +++ 003-linux47.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -1,109 +0,0 @@ -Since Linux 4.7, the enum ieee80211_band is no longer used - -This shall cause no problem's since both enums ieee80211_band -and nl80211_band were added in the same commit: -https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=13ae75b103e07304a34ab40c9136e9f53e06475c - -This patch refactors the references of IEEE80211_BAND_* to NL80211_BAND_* - -Reference: -https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=57fbcce37be7c1d2622b56587c10ade00e96afa3 - ---- a/src/wl/sys/wl_cfg80211_hybrid.c 2016-06-13 11:57:36.159340297 -0500 -+++ b/src/wl/sys/wl_cfg80211_hybrid.c 2016-06-13 11:58:18.442323435 -0500 -@@ -236,7 +236,7 @@ - #endif - - #define CHAN2G(_channel, _freq, _flags) { \ -- .band = IEEE80211_BAND_2GHZ, \ -+ .band = NL80211_BAND_2GHZ, \ - .center_freq = (_freq), \ - .hw_value = (_channel), \ - .flags = (_flags), \ -@@ -245,7 +245,7 @@ - } - - #define CHAN5G(_channel, _flags) { \ -- .band = IEEE80211_BAND_5GHZ, \ -+ .band = NL80211_BAND_5GHZ, \ - .center_freq = 5000 + (5 * (_channel)), \ - .hw_value = (_channel), \ - .flags = (_flags), \ -@@ -379,7 +379,7 @@ - }; - - static struct ieee80211_supported_band __wl_band_2ghz = { -- .band = IEEE80211_BAND_2GHZ, -+ .band = NL80211_BAND_2GHZ, - .channels = __wl_2ghz_channels, - .n_channels = ARRAY_SIZE(__wl_2ghz_channels), - .bitrates = wl_g_rates, -@@ -387,7 +387,7 @@ - }; - - static struct ieee80211_supported_band __wl_band_5ghz_a = { -- .band = IEEE80211_BAND_5GHZ, -+ .band = NL80211_BAND_5GHZ, - .channels = __wl_5ghz_a_channels, - .n_channels = ARRAY_SIZE(__wl_5ghz_a_channels), - .bitrates = wl_a_rates, -@@ -395,7 +395,7 @@ - }; - - static struct ieee80211_supported_band __wl_band_5ghz_n = { -- .band = IEEE80211_BAND_5GHZ, -+ .band = NL80211_BAND_5GHZ, - .channels = __wl_5ghz_n_channels, - .n_channels = ARRAY_SIZE(__wl_5ghz_n_channels), - .bitrates = wl_a_rates, -@@ -1876,8 +1876,8 @@ - wdev->wiphy->max_num_pmkids = WL_NUM_PMKIDS_MAX; - #endif - wdev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC); -- wdev->wiphy->bands[IEEE80211_BAND_2GHZ] = &__wl_band_2ghz; -- wdev->wiphy->bands[IEEE80211_BAND_5GHZ] = &__wl_band_5ghz_a; -+ wdev->wiphy->bands[NL80211_BAND_2GHZ] = &__wl_band_2ghz; -+ wdev->wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_a; - wdev->wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM; - wdev->wiphy->cipher_suites = __wl_cipher_suites; - wdev->wiphy->n_cipher_suites = ARRAY_SIZE(__wl_cipher_suites); -@@ -2000,7 +2000,7 @@ - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39) - freq = ieee80211_channel_to_frequency(notif_bss_info->channel, - (notif_bss_info->channel <= CH_MAX_2G_CHANNEL) ? -- IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ); -+ NL80211_BAND_2GHZ : NL80211_BAND_5GHZ); - #else - freq = ieee80211_channel_to_frequency(notif_bss_info->channel); - #endif -@@ -2116,7 +2116,7 @@ - return err; - } - chan = wf_chspec_ctlchan(chanspec); -- band = (chan <= CH_MAX_2G_CHANNEL) ? IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ; -+ band = (chan <= CH_MAX_2G_CHANNEL) ? NL80211_BAND_2GHZ : NL80211_BAND_5GHZ; - freq = ieee80211_channel_to_frequency(chan, band); - channel = ieee80211_get_channel(wiphy, freq); - cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL); -@@ -2250,10 +2250,10 @@ - join_params->params.chanspec_list[0] = - ieee80211_frequency_to_channel(chan->center_freq); - -- if (chan->band == IEEE80211_BAND_2GHZ) { -+ if (chan->band == NL80211_BAND_2GHZ) { - chanspec |= WL_CHANSPEC_BAND_2G; - } -- else if (chan->band == IEEE80211_BAND_5GHZ) { -+ else if (chan->band == NL80211_BAND_5GHZ) { - chanspec |= WL_CHANSPEC_BAND_5G; - } - else { -@@ -2885,7 +2885,7 @@ - - if (phy == 'n' || phy == 'a' || phy == 'v') { - wiphy = wl_to_wiphy(wl); -- wiphy->bands[IEEE80211_BAND_5GHZ] = &__wl_band_5ghz_n; -+ wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_n; - } - - return err; Copied: broadcom-wl-dkms/repos/community-testing-x86_64/003-linux47.patch (from rev 781603, broadcom-wl-dkms/trunk/003-linux47.patch) =================================================================== --- 003-linux47.patch (rev 0) +++ 003-linux47.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -0,0 +1,109 @@ +Since Linux 4.7, the enum ieee80211_band is no longer used + +This shall cause no problem's since both enums ieee80211_band +and nl80211_band were added in the same commit: +https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=13ae75b103e07304a34ab40c9136e9f53e06475c + +This patch refactors the references of IEEE80211_BAND_* to NL80211_BAND_* + +Reference: +https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=57fbcce37be7c1d2622b56587c10ade00e96afa3 + +--- a/src/wl/sys/wl_cfg80211_hybrid.c 2016-06-13 11:57:36.159340297 -0500 ++++ b/src/wl/sys/wl_cfg80211_hybrid.c 2016-06-13 11:58:18.442323435 -0500 +@@ -236,7 +236,7 @@ + #endif + + #define CHAN2G(_channel, _freq, _flags) { \ +- .band = IEEE80211_BAND_2GHZ, \ ++ .band = NL80211_BAND_2GHZ, \ + .center_freq = (_freq), \ + .hw_value = (_channel), \ + .flags = (_flags), \ +@@ -245,7 +245,7 @@ + } + + #define CHAN5G(_channel, _flags) { \ +- .band = IEEE80211_BAND_5GHZ, \ ++ .band = NL80211_BAND_5GHZ, \ + .center_freq = 5000 + (5 * (_channel)), \ + .hw_value = (_channel), \ + .flags = (_flags), \ +@@ -379,7 +379,7 @@ + }; + + static struct ieee80211_supported_band __wl_band_2ghz = { +- .band = IEEE80211_BAND_2GHZ, ++ .band = NL80211_BAND_2GHZ, + .channels = __wl_2ghz_channels, + .n_channels = ARRAY_SIZE(__wl_2ghz_channels), + .bitrates = wl_g_rates, +@@ -387,7 +387,7 @@ + }; + + static struct ieee80211_supported_band __wl_band_5ghz_a = { +- .band = IEEE80211_BAND_5GHZ, ++ .band = NL80211_BAND_5GHZ, + .channels = __wl_5ghz_a_channels, + .n_channels = ARRAY_SIZE(__wl_5ghz_a_channels), + .bitrates = wl_a_rates, +@@ -395,7 +395,7 @@ + }; + + static struct ieee80211_supported_band __wl_band_5ghz_n = { +- .band = IEEE80211_BAND_5GHZ, ++ .band = NL80211_BAND_5GHZ, + .channels = __wl_5ghz_n_channels, + .n_channels = ARRAY_SIZE(__wl_5ghz_n_channels), + .bitrates = wl_a_rates, +@@ -1876,8 +1876,8 @@ + wdev->wiphy->max_num_pmkids = WL_NUM_PMKIDS_MAX; + #endif + wdev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC); +- wdev->wiphy->bands[IEEE80211_BAND_2GHZ] = &__wl_band_2ghz; +- wdev->wiphy->bands[IEEE80211_BAND_5GHZ] = &__wl_band_5ghz_a; ++ wdev->wiphy->bands[NL80211_BAND_2GHZ] = &__wl_band_2ghz; ++ wdev->wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_a; + wdev->wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM; + wdev->wiphy->cipher_suites = __wl_cipher_suites; + wdev->wiphy->n_cipher_suites = ARRAY_SIZE(__wl_cipher_suites); +@@ -2000,7 +2000,7 @@ + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39) + freq = ieee80211_channel_to_frequency(notif_bss_info->channel, + (notif_bss_info->channel <= CH_MAX_2G_CHANNEL) ? +- IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ); ++ NL80211_BAND_2GHZ : NL80211_BAND_5GHZ); + #else + freq = ieee80211_channel_to_frequency(notif_bss_info->channel); + #endif +@@ -2116,7 +2116,7 @@ + return err; + } + chan = wf_chspec_ctlchan(chanspec); +- band = (chan <= CH_MAX_2G_CHANNEL) ? IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ; ++ band = (chan <= CH_MAX_2G_CHANNEL) ? NL80211_BAND_2GHZ : NL80211_BAND_5GHZ; + freq = ieee80211_channel_to_frequency(chan, band); + channel = ieee80211_get_channel(wiphy, freq); + cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL); +@@ -2250,10 +2250,10 @@ + join_params->params.chanspec_list[0] = + ieee80211_frequency_to_channel(chan->center_freq); + +- if (chan->band == IEEE80211_BAND_2GHZ) { ++ if (chan->band == NL80211_BAND_2GHZ) { + chanspec |= WL_CHANSPEC_BAND_2G; + } +- else if (chan->band == IEEE80211_BAND_5GHZ) { ++ else if (chan->band == NL80211_BAND_5GHZ) { + chanspec |= WL_CHANSPEC_BAND_5G; + } + else { +@@ -2885,7 +2885,7 @@ + + if (phy == 'n' || phy == 'a' || phy == 'v') { + wiphy = wl_to_wiphy(wl); +- wiphy->bands[IEEE80211_BAND_5GHZ] = &__wl_band_5ghz_n; ++ wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_n; + } + + return err; Deleted: 004-linux48.patch =================================================================== --- 004-linux48.patch 2020-12-21 21:29:03 UTC (rev 781604) +++ 004-linux48.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -1,64 +0,0 @@ -From d3f93542326a06d920c6eb89b703384290d37b8b Mon Sep 17 00:00:00 2001 -From: Alberto Milone <alberto.mil...@canonical.com> -Date: Fri, 2 Sep 2016 17:35:34 +0200 -Subject: [PATCH 1/1] Add support for Linux 4.8 - -Orginal author: Krzysztof Kolasa ---- - src/wl/sys/wl_cfg80211_hybrid.c | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) - -diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c -index 2fc71fe..ec5e472 100644 ---- a/src/wl/sys/wl_cfg80211_hybrid.c -+++ b/src/wl/sys/wl_cfg80211_hybrid.c -@@ -2388,8 +2388,16 @@ wl_bss_connect_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, - s32 err = 0; - - if (wl->scan_request) { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ struct cfg80211_scan_info info = { -+ .aborted = true, -+ }; -+ WL_DBG(("%s: Aborting scan\n", __FUNCTION__)); -+ cfg80211_scan_done(wl->scan_request, &info); -+#else - WL_DBG(("%s: Aborting scan\n", __FUNCTION__)); - cfg80211_scan_done(wl->scan_request, true); -+#endif - wl->scan_request = NULL; - } - -@@ -2490,7 +2498,14 @@ wl_notify_scan_status(struct wl_cfg80211_priv *wl, struct net_device *ndev, - - scan_done_out: - if (wl->scan_request) { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ struct cfg80211_scan_info info = { -+ .aborted = false, -+ }; -+ cfg80211_scan_done(wl->scan_request, &info); -+#else - cfg80211_scan_done(wl->scan_request, false); -+#endif - wl->scan_request = NULL; - } - rtnl_unlock(); -@@ -2909,7 +2924,14 @@ s32 wl_cfg80211_down(struct net_device *ndev) - s32 err = 0; - - if (wl->scan_request) { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ struct cfg80211_scan_info info = { -+ .aborted = true, -+ }; -+ cfg80211_scan_done(wl->scan_request, &info); -+#else - cfg80211_scan_done(wl->scan_request, true); -+#endif - wl->scan_request = NULL; - } - --- -2.7.4 - Copied: broadcom-wl-dkms/repos/community-testing-x86_64/004-linux48.patch (from rev 781603, broadcom-wl-dkms/trunk/004-linux48.patch) =================================================================== --- 004-linux48.patch (rev 0) +++ 004-linux48.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -0,0 +1,64 @@ +From d3f93542326a06d920c6eb89b703384290d37b8b Mon Sep 17 00:00:00 2001 +From: Alberto Milone <alberto.mil...@canonical.com> +Date: Fri, 2 Sep 2016 17:35:34 +0200 +Subject: [PATCH 1/1] Add support for Linux 4.8 + +Orginal author: Krzysztof Kolasa +--- + src/wl/sys/wl_cfg80211_hybrid.c | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c +index 2fc71fe..ec5e472 100644 +--- a/src/wl/sys/wl_cfg80211_hybrid.c ++++ b/src/wl/sys/wl_cfg80211_hybrid.c +@@ -2388,8 +2388,16 @@ wl_bss_connect_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, + s32 err = 0; + + if (wl->scan_request) { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ struct cfg80211_scan_info info = { ++ .aborted = true, ++ }; ++ WL_DBG(("%s: Aborting scan\n", __FUNCTION__)); ++ cfg80211_scan_done(wl->scan_request, &info); ++#else + WL_DBG(("%s: Aborting scan\n", __FUNCTION__)); + cfg80211_scan_done(wl->scan_request, true); ++#endif + wl->scan_request = NULL; + } + +@@ -2490,7 +2498,14 @@ wl_notify_scan_status(struct wl_cfg80211_priv *wl, struct net_device *ndev, + + scan_done_out: + if (wl->scan_request) { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ struct cfg80211_scan_info info = { ++ .aborted = false, ++ }; ++ cfg80211_scan_done(wl->scan_request, &info); ++#else + cfg80211_scan_done(wl->scan_request, false); ++#endif + wl->scan_request = NULL; + } + rtnl_unlock(); +@@ -2909,7 +2924,14 @@ s32 wl_cfg80211_down(struct net_device *ndev) + s32 err = 0; + + if (wl->scan_request) { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ struct cfg80211_scan_info info = { ++ .aborted = true, ++ }; ++ cfg80211_scan_done(wl->scan_request, &info); ++#else + cfg80211_scan_done(wl->scan_request, true); ++#endif + wl->scan_request = NULL; + } + +-- +2.7.4 + Deleted: 005-debian-fix-kernel-warnings.patch =================================================================== --- 005-debian-fix-kernel-warnings.patch 2020-12-21 21:29:03 UTC (rev 781604) +++ 005-debian-fix-kernel-warnings.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -1,161 +0,0 @@ ---- a/src/wl/sys/wl_cfg80211_hybrid.c -+++ b/src/wl/sys/wl_cfg80211_hybrid.c -@@ -1968,7 +1968,7 @@ - - if (dtoh32(bi->length) > WL_BSS_INFO_MAX) { - WL_DBG(("Beacon is larger than buffer. Discarding\n")); -- return err; -+ return -E2BIG; - } - notif_bss_info = kzalloc(sizeof(*notif_bss_info) + sizeof(*mgmt) - sizeof(u8) + - WL_BSS_INFO_MAX, GFP_KERNEL); -@@ -1992,9 +1992,15 @@ - beacon_proberesp->capab_info = cpu_to_le16(bi->capability); - wl_rst_ie(wl); - -- wl_mrg_ie(wl, ((u8 *) bi) + bi->ie_offset, bi->ie_length); -- wl_cp_ie(wl, beacon_proberesp->variable, WL_BSS_INFO_MAX - -+ err = wl_mrg_ie(wl, ((u8 *) bi) + bi->ie_offset, bi->ie_length); -+ if (err) -+ goto inform_single_bss_out; -+ -+ err = wl_cp_ie(wl, beacon_proberesp->variable, WL_BSS_INFO_MAX - - offsetof(struct wl_cfg80211_bss_info, frame_buf)); -+ if (err) -+ goto inform_single_bss_out; -+ - notif_bss_info->frame_len = offsetof(struct ieee80211_mgmt, u.beacon.variable) + - wl_get_ielen(wl); - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39) -@@ -2006,14 +2012,14 @@ - #endif - if (freq == 0) { - WL_ERR(("Invalid channel, fail to chcnage channel to freq\n")); -- kfree(notif_bss_info); -- return -EINVAL; -+ err = -EINVAL; -+ goto inform_single_bss_out; - } - channel = ieee80211_get_channel(wiphy, freq); - if (unlikely(!channel)) { - WL_ERR(("ieee80211_get_channel error\n")); -- kfree(notif_bss_info); -- return -EINVAL; -+ err = -EINVAL; -+ goto inform_single_bss_out; - } - - WL_DBG(("SSID : \"%s\", rssi %d, channel %d, capability : 0x04%x, bssid %pM\n", -@@ -2021,28 +2027,37 @@ - mgmt->u.beacon.capab_info, &bi->BSSID)); - - signal = notif_bss_info->rssi * 100; -- cbss = cfg80211_inform_bss_frame(wiphy, channel, mgmt, -- le16_to_cpu(notif_bss_info->frame_len), signal, GFP_KERNEL); -- if (unlikely(!cbss)) { -- WL_ERR(("cfg80211_inform_bss_frame error\n")); -- kfree(notif_bss_info); -- return -EINVAL; -- } - -- notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset); -- notify_ielen = le32_to_cpu(bi->ie_length); -+ if (!wl->scan_request) { -+ cbss = cfg80211_inform_bss_frame(wiphy, channel, mgmt, -+ le16_to_cpu(notif_bss_info->frame_len), signal, GFP_KERNEL); -+ if (unlikely(!cbss)) { -+ WL_ERR(("cfg80211_inform_bss_frame error\n")); -+ err = -ENOMEM; -+ goto inform_single_bss_out; -+ } -+ } else { -+ notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset); -+ notify_ielen = le32_to_cpu(bi->ie_length); - #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) -- cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet), -- 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int, -- (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL); -+ cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet), -+ 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int, -+ (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL); - #else -- cbss = cfg80211_inform_bss(wiphy, channel, CFG80211_BSS_FTYPE_UNKNOWN, (const u8 *)(bi->BSSID.octet), -- 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int, -- (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL); -+ cbss = cfg80211_inform_bss(wiphy, channel, -+ wl->active_scan ? -+ CFG80211_BSS_FTYPE_PRESP : CFG80211_BSS_FTYPE_BEACON, -+ (const u8 *)(bi->BSSID.octet), 0, -+ beacon_proberesp->capab_info, -+ beacon_proberesp->beacon_int, -+ (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL); - #endif -- -- if (unlikely(!cbss)) -- return -ENOMEM; -+ if (unlikely(!cbss)) { -+ WL_ERR(("cfg80211_inform_bss error\n")); -+ err = -ENOMEM; -+ goto inform_single_bss_out; -+ } -+ } - - #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0) - cfg80211_put_bss(wiphy, cbss); -@@ -2050,6 +2065,7 @@ - cfg80211_put_bss(cbss); - #endif - -+inform_single_bss_out: - kfree(notif_bss_info); - - return err; -@@ -2316,6 +2332,9 @@ - if (err) - goto update_bss_info_out; - -+ bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid, -+ ssid->SSID, ssid->SSID_len, WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS); -+ - ie = ((u8 *)bi) + bi->ie_offset; - ie_len = bi->ie_length; - } else { -@@ -2328,11 +2347,18 @@ - ie_len = bss->len_information_elements; - #endif - wl->conf->channel = *bss->channel; -+ } -+ -+ if (bss) { - #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0) - cfg80211_put_bss(wiphy, bss); - #else - cfg80211_put_bss(bss); - #endif -+ } else { -+ WL_DBG(("Could not update BSS\n")); -+ err = -EINVAL; -+ goto update_bss_info_out; - } - - tim = bcm_parse_tlvs(ie, ie_len, WLAN_EID_TIM); -@@ -2360,10 +2386,17 @@ - struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl); - s32 err = 0; - -- wl_get_assoc_ies(wl); -+ err = wl_get_assoc_ies(wl); -+ if (err) -+ return err; -+ - memcpy(wl->profile->bssid, &e->addr, ETHER_ADDR_LEN); - memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN); -- wl_update_bss_info(wl); -+ -+ err = wl_update_bss_info(wl); -+ if (err) -+ return err; -+ - cfg80211_roamed(ndev, - #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39) - &wl->conf->channel, Copied: broadcom-wl-dkms/repos/community-testing-x86_64/005-debian-fix-kernel-warnings.patch (from rev 781603, broadcom-wl-dkms/trunk/005-debian-fix-kernel-warnings.patch) =================================================================== --- 005-debian-fix-kernel-warnings.patch (rev 0) +++ 005-debian-fix-kernel-warnings.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -0,0 +1,161 @@ +--- a/src/wl/sys/wl_cfg80211_hybrid.c ++++ b/src/wl/sys/wl_cfg80211_hybrid.c +@@ -1968,7 +1968,7 @@ + + if (dtoh32(bi->length) > WL_BSS_INFO_MAX) { + WL_DBG(("Beacon is larger than buffer. Discarding\n")); +- return err; ++ return -E2BIG; + } + notif_bss_info = kzalloc(sizeof(*notif_bss_info) + sizeof(*mgmt) - sizeof(u8) + + WL_BSS_INFO_MAX, GFP_KERNEL); +@@ -1992,9 +1992,15 @@ + beacon_proberesp->capab_info = cpu_to_le16(bi->capability); + wl_rst_ie(wl); + +- wl_mrg_ie(wl, ((u8 *) bi) + bi->ie_offset, bi->ie_length); +- wl_cp_ie(wl, beacon_proberesp->variable, WL_BSS_INFO_MAX - ++ err = wl_mrg_ie(wl, ((u8 *) bi) + bi->ie_offset, bi->ie_length); ++ if (err) ++ goto inform_single_bss_out; ++ ++ err = wl_cp_ie(wl, beacon_proberesp->variable, WL_BSS_INFO_MAX - + offsetof(struct wl_cfg80211_bss_info, frame_buf)); ++ if (err) ++ goto inform_single_bss_out; ++ + notif_bss_info->frame_len = offsetof(struct ieee80211_mgmt, u.beacon.variable) + + wl_get_ielen(wl); + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39) +@@ -2006,14 +2012,14 @@ + #endif + if (freq == 0) { + WL_ERR(("Invalid channel, fail to chcnage channel to freq\n")); +- kfree(notif_bss_info); +- return -EINVAL; ++ err = -EINVAL; ++ goto inform_single_bss_out; + } + channel = ieee80211_get_channel(wiphy, freq); + if (unlikely(!channel)) { + WL_ERR(("ieee80211_get_channel error\n")); +- kfree(notif_bss_info); +- return -EINVAL; ++ err = -EINVAL; ++ goto inform_single_bss_out; + } + + WL_DBG(("SSID : \"%s\", rssi %d, channel %d, capability : 0x04%x, bssid %pM\n", +@@ -2021,28 +2027,37 @@ + mgmt->u.beacon.capab_info, &bi->BSSID)); + + signal = notif_bss_info->rssi * 100; +- cbss = cfg80211_inform_bss_frame(wiphy, channel, mgmt, +- le16_to_cpu(notif_bss_info->frame_len), signal, GFP_KERNEL); +- if (unlikely(!cbss)) { +- WL_ERR(("cfg80211_inform_bss_frame error\n")); +- kfree(notif_bss_info); +- return -EINVAL; +- } + +- notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset); +- notify_ielen = le32_to_cpu(bi->ie_length); ++ if (!wl->scan_request) { ++ cbss = cfg80211_inform_bss_frame(wiphy, channel, mgmt, ++ le16_to_cpu(notif_bss_info->frame_len), signal, GFP_KERNEL); ++ if (unlikely(!cbss)) { ++ WL_ERR(("cfg80211_inform_bss_frame error\n")); ++ err = -ENOMEM; ++ goto inform_single_bss_out; ++ } ++ } else { ++ notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset); ++ notify_ielen = le32_to_cpu(bi->ie_length); + #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) +- cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet), +- 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int, +- (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL); ++ cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet), ++ 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int, ++ (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL); + #else +- cbss = cfg80211_inform_bss(wiphy, channel, CFG80211_BSS_FTYPE_UNKNOWN, (const u8 *)(bi->BSSID.octet), +- 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int, +- (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL); ++ cbss = cfg80211_inform_bss(wiphy, channel, ++ wl->active_scan ? ++ CFG80211_BSS_FTYPE_PRESP : CFG80211_BSS_FTYPE_BEACON, ++ (const u8 *)(bi->BSSID.octet), 0, ++ beacon_proberesp->capab_info, ++ beacon_proberesp->beacon_int, ++ (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL); + #endif +- +- if (unlikely(!cbss)) +- return -ENOMEM; ++ if (unlikely(!cbss)) { ++ WL_ERR(("cfg80211_inform_bss error\n")); ++ err = -ENOMEM; ++ goto inform_single_bss_out; ++ } ++ } + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0) + cfg80211_put_bss(wiphy, cbss); +@@ -2050,6 +2065,7 @@ + cfg80211_put_bss(cbss); + #endif + ++inform_single_bss_out: + kfree(notif_bss_info); + + return err; +@@ -2316,6 +2332,9 @@ + if (err) + goto update_bss_info_out; + ++ bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid, ++ ssid->SSID, ssid->SSID_len, WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS); ++ + ie = ((u8 *)bi) + bi->ie_offset; + ie_len = bi->ie_length; + } else { +@@ -2328,11 +2347,18 @@ + ie_len = bss->len_information_elements; + #endif + wl->conf->channel = *bss->channel; ++ } ++ ++ if (bss) { + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0) + cfg80211_put_bss(wiphy, bss); + #else + cfg80211_put_bss(bss); + #endif ++ } else { ++ WL_DBG(("Could not update BSS\n")); ++ err = -EINVAL; ++ goto update_bss_info_out; + } + + tim = bcm_parse_tlvs(ie, ie_len, WLAN_EID_TIM); +@@ -2360,10 +2386,17 @@ + struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl); + s32 err = 0; + +- wl_get_assoc_ies(wl); ++ err = wl_get_assoc_ies(wl); ++ if (err) ++ return err; ++ + memcpy(wl->profile->bssid, &e->addr, ETHER_ADDR_LEN); + memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN); +- wl_update_bss_info(wl); ++ ++ err = wl_update_bss_info(wl); ++ if (err) ++ return err; ++ + cfg80211_roamed(ndev, + #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39) + &wl->conf->channel, Deleted: 006-linux411.patch =================================================================== --- 006-linux411.patch 2020-12-21 21:29:03 UTC (rev 781604) +++ 006-linux411.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -1,27 +0,0 @@ -diff -u sys0/wl_cfg80211_hybrid.c sys/wl_cfg80211_hybrid.c ---- a/src/wl/sys/wl_cfg80211_hybrid.c -+++ b/src/wl/sys/wl_cfg80211_hybrid.c -@@ -39,6 +39,10 @@ - #include <proto/802.11.h> - #include <wl_cfg80211_hybrid.h> - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) -+#include <linux/sched/signal.h> -+#endif -+ - #define EVENT_TYPE(e) dtoh32((e)->event_type) - #define EVENT_FLAGS(e) dtoh16((e)->flags) - #define EVENT_STATUS(e) dtoh32((e)->status) -diff -u sys0/wl_linux.c sys/wl_linux.c ---- a/src/wl/sys/wl_linux.c -+++ b/src/wl/sys/wl_linux.c -@@ -2915,7 +2915,9 @@ - if (skb == NULL) return; - - skb->dev = wl->monitor_dev; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0) - skb->dev->last_rx = jiffies; -+#endif - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22) - skb_reset_mac_header(skb); - #else Copied: broadcom-wl-dkms/repos/community-testing-x86_64/006-linux411.patch (from rev 781603, broadcom-wl-dkms/trunk/006-linux411.patch) =================================================================== --- 006-linux411.patch (rev 0) +++ 006-linux411.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -0,0 +1,27 @@ +diff -u sys0/wl_cfg80211_hybrid.c sys/wl_cfg80211_hybrid.c +--- a/src/wl/sys/wl_cfg80211_hybrid.c ++++ b/src/wl/sys/wl_cfg80211_hybrid.c +@@ -39,6 +39,10 @@ + #include <proto/802.11.h> + #include <wl_cfg80211_hybrid.h> + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) ++#include <linux/sched/signal.h> ++#endif ++ + #define EVENT_TYPE(e) dtoh32((e)->event_type) + #define EVENT_FLAGS(e) dtoh16((e)->flags) + #define EVENT_STATUS(e) dtoh32((e)->status) +diff -u sys0/wl_linux.c sys/wl_linux.c +--- a/src/wl/sys/wl_linux.c ++++ b/src/wl/sys/wl_linux.c +@@ -2915,7 +2915,9 @@ + if (skb == NULL) return; + + skb->dev = wl->monitor_dev; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0) + skb->dev->last_rx = jiffies; ++#endif + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22) + skb_reset_mac_header(skb); + #else Deleted: 007-linux412.patch =================================================================== --- 007-linux412.patch 2020-12-21 21:29:03 UTC (rev 781604) +++ 007-linux412.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -1,68 +0,0 @@ -diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c -index da36405..d3741eb 100644 ---- a/src/wl/sys/wl_cfg80211_hybrid.c -+++ b/src/wl/sys/wl_cfg80211_hybrid.c -@@ -53,7 +53,11 @@ u32 wl_dbg_level = WL_DBG_ERR; - #endif - - static s32 wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev, -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) -+ enum nl80211_iftype type, struct vif_params *params); -+#else - enum nl80211_iftype type, u32 *flags, struct vif_params *params); -+#endif - #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0) - static s32 - wl_cfg80211_scan(struct wiphy *wiphy, -@@ -466,7 +470,11 @@ wl_dev_ioctl(struct net_device *dev, u32 cmd, void *arg, u32 len) - - static s32 - wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev, -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) -+ enum nl80211_iftype type, -+#else - enum nl80211_iftype type, u32 *flags, -+#endif - struct vif_params *params) - { - struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy); -@@ -2361,6 +2369,20 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, - const wl_event_msg_t *e, void *data) - { - struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) -+ struct cfg80211_bss *bss; -+ struct wlc_ssid *ssid; -+ ssid = &wl->profile->ssid; -+ bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid, -+ ssid->SSID, ssid->SSID_len, WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS); -+ struct cfg80211_roam_info roam_info = { -+ .bss = bss, -+ .req_ie = conn_info->req_ie, -+ .req_ie_len = conn_info->req_ie_len, -+ .resp_ie = conn_info->resp_ie, -+ .resp_ie_len = conn_info->resp_ie_len, -+ }; -+#endif - s32 err = 0; - - wl_get_assoc_ies(wl); -@@ -2368,12 +2390,17 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, - memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN); - wl_update_bss_info(wl); - cfg80211_roamed(ndev, -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) -+ &roam_info, -+#else - #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39) - &wl->conf->channel, - #endif - (u8 *)&wl->bssid, - conn_info->req_ie, conn_info->req_ie_len, -- conn_info->resp_ie, conn_info->resp_ie_len, GFP_KERNEL); -+ conn_info->resp_ie, conn_info->resp_ie_len, -+#endif -+ GFP_KERNEL); - WL_DBG(("Report roaming result\n")); - - set_bit(WL_STATUS_CONNECTED, &wl->status); Copied: broadcom-wl-dkms/repos/community-testing-x86_64/007-linux412.patch (from rev 781603, broadcom-wl-dkms/trunk/007-linux412.patch) =================================================================== --- 007-linux412.patch (rev 0) +++ 007-linux412.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -0,0 +1,68 @@ +diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c +index da36405..d3741eb 100644 +--- a/src/wl/sys/wl_cfg80211_hybrid.c ++++ b/src/wl/sys/wl_cfg80211_hybrid.c +@@ -53,7 +53,11 @@ u32 wl_dbg_level = WL_DBG_ERR; + #endif + + static s32 wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev, ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) ++ enum nl80211_iftype type, struct vif_params *params); ++#else + enum nl80211_iftype type, u32 *flags, struct vif_params *params); ++#endif + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0) + static s32 + wl_cfg80211_scan(struct wiphy *wiphy, +@@ -466,7 +470,11 @@ wl_dev_ioctl(struct net_device *dev, u32 cmd, void *arg, u32 len) + + static s32 + wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev, ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) ++ enum nl80211_iftype type, ++#else + enum nl80211_iftype type, u32 *flags, ++#endif + struct vif_params *params) + { + struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy); +@@ -2361,6 +2369,20 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, + const wl_event_msg_t *e, void *data) + { + struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) ++ struct cfg80211_bss *bss; ++ struct wlc_ssid *ssid; ++ ssid = &wl->profile->ssid; ++ bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid, ++ ssid->SSID, ssid->SSID_len, WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS); ++ struct cfg80211_roam_info roam_info = { ++ .bss = bss, ++ .req_ie = conn_info->req_ie, ++ .req_ie_len = conn_info->req_ie_len, ++ .resp_ie = conn_info->resp_ie, ++ .resp_ie_len = conn_info->resp_ie_len, ++ }; ++#endif + s32 err = 0; + + wl_get_assoc_ies(wl); +@@ -2368,12 +2390,17 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, + memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN); + wl_update_bss_info(wl); + cfg80211_roamed(ndev, ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) ++ &roam_info, ++#else + #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39) + &wl->conf->channel, + #endif + (u8 *)&wl->bssid, + conn_info->req_ie, conn_info->req_ie_len, +- conn_info->resp_ie, conn_info->resp_ie_len, GFP_KERNEL); ++ conn_info->resp_ie, conn_info->resp_ie_len, ++#endif ++ GFP_KERNEL); + WL_DBG(("Report roaming result\n")); + + set_bit(WL_STATUS_CONNECTED, &wl->status); Deleted: 008-linux415.patch =================================================================== --- 008-linux415.patch 2020-12-21 21:29:03 UTC (rev 781604) +++ 008-linux415.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -1,46 +0,0 @@ ---- a/src/wl/sys/wl_linux.c 2017-07-17 00:11:24.000000000 +0100 -+++ b/src/wl/sys/wl_linux.c 2018-01-27 09:49:47.057799596 +0000 -@@ -93,7 +93,11 @@ - - #include <wlc_wowl.h> - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) -+static void wl_timer(struct timer_list *tl); -+#else - static void wl_timer(ulong data); -+#endif - static void _wl_timer(wl_timer_t *t); - static struct net_device *wl_alloc_linux_if(wl_if_t *wlif); - -@@ -2297,10 +2301,17 @@ - atomic_dec(&t->wl->callbacks); - } - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) -+static void -+wl_timer(struct timer_list *tl) -+{ -+ wl_timer_t *t = (wl_timer_t *)tl; -+#else - static void - wl_timer(ulong data) - { - wl_timer_t *t = (wl_timer_t *)data; -+#endif - - if (!WL_ALL_PASSIVE_ENAB(t->wl)) - _wl_timer(t); -@@ -2352,9 +2363,13 @@ - - bzero(t, sizeof(wl_timer_t)); - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) -+ timer_setup(&t->timer, wl_timer, 0); -+#else - init_timer(&t->timer); - t->timer.data = (ulong) t; - t->timer.function = wl_timer; -+#endif - t->wl = wl; - t->fn = fn; - t->arg = arg; Copied: broadcom-wl-dkms/repos/community-testing-x86_64/008-linux415.patch (from rev 781603, broadcom-wl-dkms/trunk/008-linux415.patch) =================================================================== --- 008-linux415.patch (rev 0) +++ 008-linux415.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -0,0 +1,46 @@ +--- a/src/wl/sys/wl_linux.c 2017-07-17 00:11:24.000000000 +0100 ++++ b/src/wl/sys/wl_linux.c 2018-01-27 09:49:47.057799596 +0000 +@@ -93,7 +93,11 @@ + + #include <wlc_wowl.h> + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) ++static void wl_timer(struct timer_list *tl); ++#else + static void wl_timer(ulong data); ++#endif + static void _wl_timer(wl_timer_t *t); + static struct net_device *wl_alloc_linux_if(wl_if_t *wlif); + +@@ -2297,10 +2301,17 @@ + atomic_dec(&t->wl->callbacks); + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) ++static void ++wl_timer(struct timer_list *tl) ++{ ++ wl_timer_t *t = (wl_timer_t *)tl; ++#else + static void + wl_timer(ulong data) + { + wl_timer_t *t = (wl_timer_t *)data; ++#endif + + if (!WL_ALL_PASSIVE_ENAB(t->wl)) + _wl_timer(t); +@@ -2352,9 +2363,13 @@ + + bzero(t, sizeof(wl_timer_t)); + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) ++ timer_setup(&t->timer, wl_timer, 0); ++#else + init_timer(&t->timer); + t->timer.data = (ulong) t; + t->timer.function = wl_timer; ++#endif + t->wl = wl; + t->fn = fn; + t->arg = arg; Deleted: 009-fix_mac_profile_discrepancy.patch =================================================================== --- 009-fix_mac_profile_discrepancy.patch 2020-12-21 21:29:03 UTC (rev 781604) +++ 009-fix_mac_profile_discrepancy.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -1,14 +0,0 @@ ---- a/src/wl/sys/wl_cfg80211_hybrid.c 2015-09-19 00:47:30.000000000 +0200 -+++ b/src/wl/sys/wl_cfg80211_hybrid.c 2018-11-14 14:06:03.313487995 +0100 -@@ -1444,11 +1444,6 @@ - s32 rate; - s32 err = 0; - - if (memcmp(mac, wl->profile->bssid, ETHER_ADDR_LEN)) { - WL_ERR(("Wrong Mac address, mac = %pM profile =%pM\n", mac, wl->profile->bssid)); -- return -ENOENT; - } - - err = wl_dev_ioctl(dev, WLC_GET_RATE, &rate, sizeof(rate)); - if (err) { - WL_DBG(("Could not get rate (%d)\n", err)); Copied: broadcom-wl-dkms/repos/community-testing-x86_64/009-fix_mac_profile_discrepancy.patch (from rev 781603, broadcom-wl-dkms/trunk/009-fix_mac_profile_discrepancy.patch) =================================================================== --- 009-fix_mac_profile_discrepancy.patch (rev 0) +++ 009-fix_mac_profile_discrepancy.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -0,0 +1,14 @@ +--- a/src/wl/sys/wl_cfg80211_hybrid.c 2015-09-19 00:47:30.000000000 +0200 ++++ b/src/wl/sys/wl_cfg80211_hybrid.c 2018-11-14 14:06:03.313487995 +0100 +@@ -1444,11 +1444,6 @@ + s32 rate; + s32 err = 0; + + if (memcmp(mac, wl->profile->bssid, ETHER_ADDR_LEN)) { + WL_ERR(("Wrong Mac address, mac = %pM profile =%pM\n", mac, wl->profile->bssid)); +- return -ENOENT; + } + + err = wl_dev_ioctl(dev, WLC_GET_RATE, &rate, sizeof(rate)); + if (err) { + WL_DBG(("Could not get rate (%d)\n", err)); Deleted: 010-linux56.patch =================================================================== --- 010-linux56.patch 2020-12-21 21:29:03 UTC (rev 781604) +++ 010-linux56.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -1,55 +0,0 @@ -diff --git a/src/shared/linux_osl.c b/src/shared/linux_osl.c -index 6157d18..8237ec7 100644 ---- a/src/shared/linux_osl.c -+++ b/src/shared/linux_osl.c -@@ -942,7 +942,7 @@ osl_getcycles(void) - void * - osl_reg_map(uint32 pa, uint size) - { -- return (ioremap_nocache((unsigned long)pa, (unsigned long)size)); -+ return (ioremap((unsigned long)pa, (unsigned long)size)); - } - - void -diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c -index 0d05100..2ed1f0d 100644 ---- a/src/wl/sys/wl_linux.c -+++ b/src/wl/sys/wl_linux.c -@@ -582,7 +582,7 @@ wl_attach(uint16 vendor, uint16 device, ulong regs, - } - wl->bcm_bustype = bustype; - -- if ((wl->regsva = ioremap_nocache(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) { -+ if ((wl->regsva = ioremap(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) { - WL_ERROR(("wl%d: ioremap() failed\n", unit)); - goto fail; - } -@@ -772,7 +772,7 @@ wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) - if ((val & 0x0000ff00) != 0) - pci_write_config_dword(pdev, 0x40, val & 0xffff00ff); - bar1_size = pci_resource_len(pdev, 2); -- bar1_addr = (uchar *)ioremap_nocache(pci_resource_start(pdev, 2), -+ bar1_addr = (uchar *)ioremap(pci_resource_start(pdev, 2), - bar1_size); - wl = wl_attach(pdev->vendor, pdev->device, pci_resource_start(pdev, 0), PCI_BUS, pdev, - pdev->irq, bar1_addr, bar1_size); -@@ -3335,12 +3335,19 @@ wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t - } - - #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) -+static struct proc_ops wl_fops = { -+ .proc_read = wl_proc_read, -+ .proc_write = wl_proc_write, -+}; -+#else - static const struct file_operations wl_fops = { - .owner = THIS_MODULE, - .read = wl_proc_read, - .write = wl_proc_write, - }; - #endif -+#endif - - static int - wl_reg_proc_entry(wl_info_t *wl) Copied: broadcom-wl-dkms/repos/community-testing-x86_64/010-linux56.patch (from rev 781603, broadcom-wl-dkms/trunk/010-linux56.patch) =================================================================== --- 010-linux56.patch (rev 0) +++ 010-linux56.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -0,0 +1,55 @@ +diff --git a/src/shared/linux_osl.c b/src/shared/linux_osl.c +index 6157d18..8237ec7 100644 +--- a/src/shared/linux_osl.c ++++ b/src/shared/linux_osl.c +@@ -942,7 +942,7 @@ osl_getcycles(void) + void * + osl_reg_map(uint32 pa, uint size) + { +- return (ioremap_nocache((unsigned long)pa, (unsigned long)size)); ++ return (ioremap((unsigned long)pa, (unsigned long)size)); + } + + void +diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c +index 0d05100..2ed1f0d 100644 +--- a/src/wl/sys/wl_linux.c ++++ b/src/wl/sys/wl_linux.c +@@ -582,7 +582,7 @@ wl_attach(uint16 vendor, uint16 device, ulong regs, + } + wl->bcm_bustype = bustype; + +- if ((wl->regsva = ioremap_nocache(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) { ++ if ((wl->regsva = ioremap(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) { + WL_ERROR(("wl%d: ioremap() failed\n", unit)); + goto fail; + } +@@ -772,7 +772,7 @@ wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) + if ((val & 0x0000ff00) != 0) + pci_write_config_dword(pdev, 0x40, val & 0xffff00ff); + bar1_size = pci_resource_len(pdev, 2); +- bar1_addr = (uchar *)ioremap_nocache(pci_resource_start(pdev, 2), ++ bar1_addr = (uchar *)ioremap(pci_resource_start(pdev, 2), + bar1_size); + wl = wl_attach(pdev->vendor, pdev->device, pci_resource_start(pdev, 0), PCI_BUS, pdev, + pdev->irq, bar1_addr, bar1_size); +@@ -3335,12 +3335,19 @@ wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t + } + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) ++static struct proc_ops wl_fops = { ++ .proc_read = wl_proc_read, ++ .proc_write = wl_proc_write, ++}; ++#else + static const struct file_operations wl_fops = { + .owner = THIS_MODULE, + .read = wl_proc_read, + .write = wl_proc_write, + }; + #endif ++#endif + + static int + wl_reg_proc_entry(wl_info_t *wl) Deleted: 011-linux59.patch =================================================================== --- 011-linux59.patch 2020-12-21 21:29:03 UTC (rev 781604) +++ 011-linux59.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -1,36 +0,0 @@ -diff -u -r a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c ---- a/src/wl/sys/wl_cfg80211_hybrid.c 2015-09-18 22:47:30.000000000 +0000 -+++ b/src/wl/sys/wl_cfg80211_hybrid.c 2020-10-12 21:20:05.200372484 +0000 -@@ -450,7 +450,7 @@ - ifr.ifr_data = (caddr_t)&ioc; - - fs = get_fs(); -- set_fs(get_ds()); -+ set_fs(KERNEL_DS); - #if defined(WL_USE_NETDEV_OPS) - err = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE); - #else -diff -u -r a/src/wl/sys/wl_iw.c b/src/wl/sys/wl_iw.c ---- a/src/wl/sys/wl_iw.c 2015-09-18 22:47:30.000000000 +0000 -+++ b/src/wl/sys/wl_iw.c 2020-10-12 21:19:51.426836804 +0000 -@@ -117,7 +117,7 @@ - ifr.ifr_data = (caddr_t) &ioc; - - fs = get_fs(); -- set_fs(get_ds()); -+ set_fs(KERNEL_DS); - #if defined(WL_USE_NETDEV_OPS) - ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE); - #else -diff -u -r a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c ---- a/src/wl/sys/wl_linux.c 2020-10-12 21:19:15.256305165 +0000 -+++ b/src/wl/sys/wl_linux.c 2020-10-12 21:20:38.687530895 +0000 -@@ -1643,7 +1643,7 @@ - goto done2; - } - -- if (segment_eq(get_fs(), KERNEL_DS)) -+ if (get_fs().seg == KERNEL_DS.seg) - buf = ioc.buf; - - else if (ioc.buf) { Copied: broadcom-wl-dkms/repos/community-testing-x86_64/011-linux59.patch (from rev 781603, broadcom-wl-dkms/trunk/011-linux59.patch) =================================================================== --- 011-linux59.patch (rev 0) +++ 011-linux59.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -0,0 +1,36 @@ +diff -u -r a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c +--- a/src/wl/sys/wl_cfg80211_hybrid.c 2015-09-18 22:47:30.000000000 +0000 ++++ b/src/wl/sys/wl_cfg80211_hybrid.c 2020-10-12 21:20:05.200372484 +0000 +@@ -450,7 +450,7 @@ + ifr.ifr_data = (caddr_t)&ioc; + + fs = get_fs(); +- set_fs(get_ds()); ++ set_fs(KERNEL_DS); + #if defined(WL_USE_NETDEV_OPS) + err = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE); + #else +diff -u -r a/src/wl/sys/wl_iw.c b/src/wl/sys/wl_iw.c +--- a/src/wl/sys/wl_iw.c 2015-09-18 22:47:30.000000000 +0000 ++++ b/src/wl/sys/wl_iw.c 2020-10-12 21:19:51.426836804 +0000 +@@ -117,7 +117,7 @@ + ifr.ifr_data = (caddr_t) &ioc; + + fs = get_fs(); +- set_fs(get_ds()); ++ set_fs(KERNEL_DS); + #if defined(WL_USE_NETDEV_OPS) + ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE); + #else +diff -u -r a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c +--- a/src/wl/sys/wl_linux.c 2020-10-12 21:19:15.256305165 +0000 ++++ b/src/wl/sys/wl_linux.c 2020-10-12 21:20:38.687530895 +0000 +@@ -1643,7 +1643,7 @@ + goto done2; + } + +- if (segment_eq(get_fs(), KERNEL_DS)) ++ if (get_fs().seg == KERNEL_DS.seg) + buf = ioc.buf; + + else if (ioc.buf) { Deleted: 012-linux510.patch =================================================================== --- 012-linux510.patch 2020-12-21 21:29:03 UTC (rev 781604) +++ 012-linux510.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -1,211 +0,0 @@ -From f3d652840f8dd959395065a1cf67ca40b04ec69b Mon Sep 17 00:00:00 2001 -From: Joan Bruguera <joanbrugue...@gmail.com> -Date: Tue, 13 Oct 2020 19:35:55 +0200 -Subject: [PATCH] Get rid of get_fs/set_fs calls in Broadcom WL driver. - -Tentative patch for broadcom-wl 6.30.223.271 driver for Linux 5.10 (tested -rc1 up to 5.10.1) - -Applies on top of all the patches applied to broadcom-wl-dkms 6.30.223.271-23 on Arch Linux. - -NB: Some checks in wlc_ioctl_internal are likely superfluous, - but I'm not familiar enough with the driver to remove them with confidence. - -See also: https://lwn.net/Articles/722267/ - https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=47058bb54b57962b3958a936ddbc59355e4c5504 - https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5e6e9852d6f76e01b2e6803c74258afa5b432bc5 - -Signed-off-by: Joan Bruguera <joanbrugue...@gmail.com> ---- - src/wl/sys/wl_cfg80211_hybrid.c | 25 ++------------------- - src/wl/sys/wl_iw.c | 25 ++------------------- - src/wl/sys/wl_linux.c | 40 ++++++++++++++++++++++++++++----- - src/wl/sys/wl_linux.h | 2 ++ - src/wl/sys/wlc_pub.h | 1 + - 5 files changed, 42 insertions(+), 51 deletions(-) - -diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c -index 73c4b82..2e6df32 100644 ---- a/src/wl/sys/wl_cfg80211_hybrid.c -+++ b/src/wl/sys/wl_cfg80211_hybrid.c -@@ -38,6 +38,7 @@ - #include <wlioctl.h> - #include <proto/802.11.h> - #include <wl_cfg80211_hybrid.h> -+#include <wl_linux.h> - - #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) - #include <linux/sched/signal.h> -@@ -443,30 +444,8 @@ static void key_endian_to_host(struct wl_wsec_key *key) - static s32 - wl_dev_ioctl(struct net_device *dev, u32 cmd, void *arg, u32 len) - { -- struct ifreq ifr; -- struct wl_ioctl ioc; -- mm_segment_t fs; -- s32 err = 0; -- - BUG_ON(len < sizeof(int)); -- -- memset(&ioc, 0, sizeof(ioc)); -- ioc.cmd = cmd; -- ioc.buf = arg; -- ioc.len = len; -- strcpy(ifr.ifr_name, dev->name); -- ifr.ifr_data = (caddr_t)&ioc; -- -- fs = get_fs(); -- set_fs(KERNEL_DS); --#if defined(WL_USE_NETDEV_OPS) -- err = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE); --#else -- err = dev->do_ioctl(dev, &ifr, SIOCDEVPRIVATE); --#endif -- set_fs(fs); -- -- return err; -+ return wlc_ioctl_internal(dev, cmd, arg, len); - } - - static s32 -diff --git a/src/wl/sys/wl_iw.c b/src/wl/sys/wl_iw.c -index 9c3c74e..e346b15 100644 ---- a/src/wl/sys/wl_iw.c -+++ b/src/wl/sys/wl_iw.c -@@ -37,6 +37,7 @@ typedef const struct si_pub si_t; - - #include <wl_dbg.h> - #include <wl_iw.h> -+#include <wl_linux.h> - - extern bool wl_iw_conn_status_str(uint32 event_type, uint32 status, - uint32 reason, char* stringBuf, uint buflen); -@@ -103,29 +104,7 @@ dev_wlc_ioctl( - int len - ) - { -- struct ifreq ifr; -- wl_ioctl_t ioc; -- mm_segment_t fs; -- int ret; -- -- memset(&ioc, 0, sizeof(ioc)); -- ioc.cmd = cmd; -- ioc.buf = arg; -- ioc.len = len; -- -- strcpy(ifr.ifr_name, dev->name); -- ifr.ifr_data = (caddr_t) &ioc; -- -- fs = get_fs(); -- set_fs(KERNEL_DS); --#if defined(WL_USE_NETDEV_OPS) -- ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE); --#else -- ret = dev->do_ioctl(dev, &ifr, SIOCDEVPRIVATE); --#endif -- set_fs(fs); -- -- return ret; -+ return wlc_ioctl_internal(dev, cmd, arg, len); - } - - static int -diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c -index cca7ee1..e491df7 100644 ---- a/src/wl/sys/wl_linux.c -+++ b/src/wl/sys/wl_linux.c -@@ -1647,10 +1647,7 @@ wl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) - goto done2; - } - -- if (get_fs().seg == KERNEL_DS.seg) -- buf = ioc.buf; -- -- else if (ioc.buf) { -+ if (ioc.buf) { - if (!(buf = (void *) MALLOC(wl->osh, MAX(ioc.len, WLC_IOCTL_MAXLEN)))) { - bcmerror = BCME_NORESOURCE; - goto done2; -@@ -1671,7 +1668,7 @@ wl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) - WL_UNLOCK(wl); - - done1: -- if (ioc.buf && (ioc.buf != buf)) { -+ if (ioc.buf) { - if (copy_to_user(ioc.buf, buf, ioc.len)) - bcmerror = BCME_BADADDR; - MFREE(wl->osh, buf, MAX(ioc.len, WLC_IOCTL_MAXLEN)); -@@ -1684,6 +1681,39 @@ done2: - return (OSL_ERROR(bcmerror)); - } - -+int -+wlc_ioctl_internal(struct net_device *dev, int cmd, void *buf, int len) -+{ -+ wl_info_t *wl; -+ wl_if_t *wlif; -+ int bcmerror; -+ -+ if (!dev) -+ return -ENETDOWN; -+ -+ wl = WL_INFO(dev); -+ wlif = WL_DEV_IF(dev); -+ if (wlif == NULL || wl == NULL || wl->dev == NULL) -+ return -ENETDOWN; -+ -+ bcmerror = 0; -+ -+ WL_TRACE(("wl%d: wlc_ioctl_internal: cmd 0x%x\n", wl->pub->unit, cmd)); -+ -+ WL_LOCK(wl); -+ if (!capable(CAP_NET_ADMIN)) { -+ bcmerror = BCME_EPERM; -+ } else { -+ bcmerror = wlc_ioctl(wl->wlc, cmd, buf, len, wlif->wlcif); -+ } -+ WL_UNLOCK(wl); -+ -+ ASSERT(VALID_BCMERROR(bcmerror)); -+ if (bcmerror != 0) -+ wl->pub->bcmerror = bcmerror; -+ return (OSL_ERROR(bcmerror)); -+} -+ - static struct net_device_stats* - wl_get_stats(struct net_device *dev) - { -diff --git a/src/wl/sys/wl_linux.h b/src/wl/sys/wl_linux.h -index 5b1048e..c8c1f41 100644 ---- a/src/wl/sys/wl_linux.h -+++ b/src/wl/sys/wl_linux.h -@@ -22,6 +22,7 @@ - #define _wl_linux_h_ - - #include <wlc_types.h> -+#include <wlc_pub.h> - - typedef struct wl_timer { - struct timer_list timer; -@@ -187,6 +188,7 @@ extern irqreturn_t wl_isr(int irq, void *dev_id, struct pt_regs *ptregs); - extern int __devinit wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent); - extern void wl_free(wl_info_t *wl); - extern int wl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd); -+extern int wlc_ioctl_internal(struct net_device *dev, int cmd, void *buf, int len); - extern struct net_device * wl_netdev_get(wl_info_t *wl); - - #endif -diff --git a/src/wl/sys/wlc_pub.h b/src/wl/sys/wlc_pub.h -index 53a98b8..2b5a029 100644 ---- a/src/wl/sys/wlc_pub.h -+++ b/src/wl/sys/wlc_pub.h -@@ -24,6 +24,7 @@ - - #include <wlc_types.h> - #include <wlc_utils.h> -+#include <siutils.h> - #include "proto/802.11.h" - #include "proto/bcmevent.h" - --- -2.28.0 Copied: broadcom-wl-dkms/repos/community-testing-x86_64/012-linux510.patch (from rev 781603, broadcom-wl-dkms/trunk/012-linux510.patch) =================================================================== --- 012-linux510.patch (rev 0) +++ 012-linux510.patch 2020-12-21 21:29:09 UTC (rev 781605) @@ -0,0 +1,211 @@ +From f3d652840f8dd959395065a1cf67ca40b04ec69b Mon Sep 17 00:00:00 2001 +From: Joan Bruguera <joanbrugue...@gmail.com> +Date: Tue, 13 Oct 2020 19:35:55 +0200 +Subject: [PATCH] Get rid of get_fs/set_fs calls in Broadcom WL driver. + +Tentative patch for broadcom-wl 6.30.223.271 driver for Linux 5.10 (tested -rc1 up to 5.10.1) + +Applies on top of all the patches applied to broadcom-wl-dkms 6.30.223.271-23 on Arch Linux. + +NB: Some checks in wlc_ioctl_internal are likely superfluous, + but I'm not familiar enough with the driver to remove them with confidence. + +See also: https://lwn.net/Articles/722267/ + https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=47058bb54b57962b3958a936ddbc59355e4c5504 + https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5e6e9852d6f76e01b2e6803c74258afa5b432bc5 + +Signed-off-by: Joan Bruguera <joanbrugue...@gmail.com> +--- + src/wl/sys/wl_cfg80211_hybrid.c | 25 ++------------------- + src/wl/sys/wl_iw.c | 25 ++------------------- + src/wl/sys/wl_linux.c | 40 ++++++++++++++++++++++++++++----- + src/wl/sys/wl_linux.h | 2 ++ + src/wl/sys/wlc_pub.h | 1 + + 5 files changed, 42 insertions(+), 51 deletions(-) + +diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c +index 73c4b82..2e6df32 100644 +--- a/src/wl/sys/wl_cfg80211_hybrid.c ++++ b/src/wl/sys/wl_cfg80211_hybrid.c +@@ -38,6 +38,7 @@ + #include <wlioctl.h> + #include <proto/802.11.h> + #include <wl_cfg80211_hybrid.h> ++#include <wl_linux.h> + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) + #include <linux/sched/signal.h> +@@ -443,30 +444,8 @@ static void key_endian_to_host(struct wl_wsec_key *key) + static s32 + wl_dev_ioctl(struct net_device *dev, u32 cmd, void *arg, u32 len) + { +- struct ifreq ifr; +- struct wl_ioctl ioc; +- mm_segment_t fs; +- s32 err = 0; +- + BUG_ON(len < sizeof(int)); +- +- memset(&ioc, 0, sizeof(ioc)); +- ioc.cmd = cmd; +- ioc.buf = arg; +- ioc.len = len; +- strcpy(ifr.ifr_name, dev->name); +- ifr.ifr_data = (caddr_t)&ioc; +- +- fs = get_fs(); +- set_fs(KERNEL_DS); +-#if defined(WL_USE_NETDEV_OPS) +- err = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE); +-#else +- err = dev->do_ioctl(dev, &ifr, SIOCDEVPRIVATE); +-#endif +- set_fs(fs); +- +- return err; ++ return wlc_ioctl_internal(dev, cmd, arg, len); + } + + static s32 +diff --git a/src/wl/sys/wl_iw.c b/src/wl/sys/wl_iw.c +index 9c3c74e..e346b15 100644 +--- a/src/wl/sys/wl_iw.c ++++ b/src/wl/sys/wl_iw.c +@@ -37,6 +37,7 @@ typedef const struct si_pub si_t; + + #include <wl_dbg.h> + #include <wl_iw.h> ++#include <wl_linux.h> + + extern bool wl_iw_conn_status_str(uint32 event_type, uint32 status, + uint32 reason, char* stringBuf, uint buflen); +@@ -103,29 +104,7 @@ dev_wlc_ioctl( + int len + ) + { +- struct ifreq ifr; +- wl_ioctl_t ioc; +- mm_segment_t fs; +- int ret; +- +- memset(&ioc, 0, sizeof(ioc)); +- ioc.cmd = cmd; +- ioc.buf = arg; +- ioc.len = len; +- +- strcpy(ifr.ifr_name, dev->name); +- ifr.ifr_data = (caddr_t) &ioc; +- +- fs = get_fs(); +- set_fs(KERNEL_DS); +-#if defined(WL_USE_NETDEV_OPS) +- ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE); +-#else +- ret = dev->do_ioctl(dev, &ifr, SIOCDEVPRIVATE); +-#endif +- set_fs(fs); +- +- return ret; ++ return wlc_ioctl_internal(dev, cmd, arg, len); + } + + static int +diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c +index cca7ee1..e491df7 100644 +--- a/src/wl/sys/wl_linux.c ++++ b/src/wl/sys/wl_linux.c +@@ -1647,10 +1647,7 @@ wl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) + goto done2; + } + +- if (get_fs().seg == KERNEL_DS.seg) +- buf = ioc.buf; +- +- else if (ioc.buf) { ++ if (ioc.buf) { + if (!(buf = (void *) MALLOC(wl->osh, MAX(ioc.len, WLC_IOCTL_MAXLEN)))) { + bcmerror = BCME_NORESOURCE; + goto done2; +@@ -1671,7 +1668,7 @@ wl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) + WL_UNLOCK(wl); + + done1: +- if (ioc.buf && (ioc.buf != buf)) { ++ if (ioc.buf) { + if (copy_to_user(ioc.buf, buf, ioc.len)) + bcmerror = BCME_BADADDR; + MFREE(wl->osh, buf, MAX(ioc.len, WLC_IOCTL_MAXLEN)); +@@ -1684,6 +1681,39 @@ done2: + return (OSL_ERROR(bcmerror)); + } + ++int ++wlc_ioctl_internal(struct net_device *dev, int cmd, void *buf, int len) ++{ ++ wl_info_t *wl; ++ wl_if_t *wlif; ++ int bcmerror; ++ ++ if (!dev) ++ return -ENETDOWN; ++ ++ wl = WL_INFO(dev); ++ wlif = WL_DEV_IF(dev); ++ if (wlif == NULL || wl == NULL || wl->dev == NULL) ++ return -ENETDOWN; ++ ++ bcmerror = 0; ++ ++ WL_TRACE(("wl%d: wlc_ioctl_internal: cmd 0x%x\n", wl->pub->unit, cmd)); ++ ++ WL_LOCK(wl); ++ if (!capable(CAP_NET_ADMIN)) { ++ bcmerror = BCME_EPERM; ++ } else { ++ bcmerror = wlc_ioctl(wl->wlc, cmd, buf, len, wlif->wlcif); ++ } ++ WL_UNLOCK(wl); ++ ++ ASSERT(VALID_BCMERROR(bcmerror)); ++ if (bcmerror != 0) ++ wl->pub->bcmerror = bcmerror; ++ return (OSL_ERROR(bcmerror)); ++} ++ + static struct net_device_stats* + wl_get_stats(struct net_device *dev) + { +diff --git a/src/wl/sys/wl_linux.h b/src/wl/sys/wl_linux.h +index 5b1048e..c8c1f41 100644 +--- a/src/wl/sys/wl_linux.h ++++ b/src/wl/sys/wl_linux.h +@@ -22,6 +22,7 @@ + #define _wl_linux_h_ + + #include <wlc_types.h> ++#include <wlc_pub.h> + + typedef struct wl_timer { + struct timer_list timer; +@@ -187,6 +188,7 @@ extern irqreturn_t wl_isr(int irq, void *dev_id, struct pt_regs *ptregs); + extern int __devinit wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent); + extern void wl_free(wl_info_t *wl); + extern int wl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd); ++extern int wlc_ioctl_internal(struct net_device *dev, int cmd, void *buf, int len); + extern struct net_device * wl_netdev_get(wl_info_t *wl); + + #endif +diff --git a/src/wl/sys/wlc_pub.h b/src/wl/sys/wlc_pub.h +index 53a98b8..2b5a029 100644 +--- a/src/wl/sys/wlc_pub.h ++++ b/src/wl/sys/wlc_pub.h +@@ -24,6 +24,7 @@ + + #include <wlc_types.h> + #include <wlc_utils.h> ++#include <siutils.h> + #include "proto/802.11.h" + #include "proto/bcmevent.h" + +-- +2.28.0 Deleted: PKGBUILD =================================================================== --- PKGBUILD 2020-12-21 21:29:03 UTC (rev 781604) +++ PKGBUILD 2020-12-21 21:29:09 UTC (rev 781605) @@ -1,73 +0,0 @@ -# Maintainer: Alexander F. Rødseth <xypr...@archlinux.org> -# Contributor: Andrey Vihrov <andrey.vih...@gmail.com> -# Contributor: Frank Vanderham <twelve.eig...@gmail.com> -# Contributor: Jacob McSwain <jacob.a.mcsw...@gmail.com> -# Contributor: Thomas Braby <tho...@mykolab.com> - -pkgname=broadcom-wl-dkms -pkgver=6.30.223.271 -pkgrel=25 -pkgdesc='Broadcom 802.11 Linux STA wireless driver' -arch=(x86_64) -url='https://www.broadcom.com/support/download-search/?pf=Wireless+LAN+Infrastructure' -license=(custom) -depends=(dkms) -conflicts=(broadcom-wl) -install=broadcom-wl-dkms.install -source=('broadcom-wl-dkms.conf' - 'dkms.conf.in' - '001-null-pointer-fix.patch' - '002-rdtscl.patch' - '003-linux47.patch' - '004-linux48.patch' - '005-debian-fix-kernel-warnings.patch' - '006-linux411.patch' - '007-linux412.patch' - '008-linux415.patch' - '009-fix_mac_profile_discrepancy.patch' - '010-linux56.patch' - '011-linux59.patch' - '012-linux510.patch' - "https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-${pkgver//./_}.tar.gz") -sha256sums=('b97bc588420d1542f73279e71975ccb5d81d75e534e7b5717e01d6e6adf6a283' - 'f11b7ff3d175d0c3b90a2b387d71a2ab523eefb5ff3400b3d08f91c0d76e337e' - '32e505a651fdb9fd5e4870a9d6de21dd703dead768c2b3340a2ca46671a5852f' - '4ea03f102248beb8963ad00bd3e36e67519a90fa39244db065e74038c98360dd' - '30ce1d5e8bf78aee487d0f3ac76756e1060777f70ed1a9cf95215c3a52cfbe2e' - '09d709df0c764118ca43117f5c096163d9669a28170da8476d4b8211bd225d2e' - '2306a59f9e7413f35a0669346dcd05ef86fa37c23b566dceb0c6dbee67e4d299' - '5bc12cb57712e6a944dff1c90de50135c2508085d8497ab99284ccccdb35c32b' - 'a3d13e8abb96ad440dbfae29acae82d31d1ced2ea62052f1efb2c3c4add347ce' - '08c24157cf3b93b60e67e600d1d90223447361990df09acfb00281d79813d167' - '4e73e50653bb612946edd34bf31ca5a0b80f632d47a08766ae6042880927c98d' - 'f1300bcce93363088481671150ff2bbd6957e12ba11098980b9f428c7a171812' - '8983c8ae73ad5853a37d98aa42bed1c52a2bd27d0d4991283cf92010cab22212' - '138187813d86239b633defeb102a665e1eaa0b95d23abeada4bbecfc07050dee' - '5f79774d5beec8f7636b59c0fb07a03108eef1e3fd3245638b20858c714144be') - -prepare() { - sed -i -e '/BRCM_WLAN_IFNAME/s/eth/wlan/' src/wl/sys/wl_linux.c - sed -i -e "/EXTRA_LDFLAGS/s|\$(src)/lib|/usr/lib/$pkgname|" Makefile - sed -e "s/@PACKAGE_VERSION@/$pkgver/" dkms.conf.in > dkms.conf - sed -n -e '/Copyright/,/SOFTWARE\./{s/^ \* //;p}' src/wl/sys/wl_linux.c - sed -i 's/segment_eq(get_fs(), KERNEL_DS)/uaccess_kernel()/g' src/wl/sys/wl_linux.c - sed -i '/GE_49 :=/s|:= .*|:= 1|' Makefile - find src -name "*.c" -type f -exec sed -i 's/ioremap_nocache/ioremap_cache/g' {} \; - -} - -package() { - local dest="$pkgdir/usr/src/${pkgname/-dkms/}-$pkgver" - install -Dm644 Makefile "$dest/Makefile" - install -Dm644 dkms.conf "$dest/dkms.conf" - install -Dm644 -t "$dest/patches" *.patch - cp -a src "$dest" - - install -Dm644 lib/wlc_hybrid.o_shipped \ - "$pkgdir/usr/lib/$pkgname/wlc_hybrid.o_shipped" - install -Dm644 broadcom-wl-dkms.conf \ - "$pkgdir/usr/lib/modprobe.d/broadcom-wl-dkms.conf" - - install -Dm644 lib/LICENSE.txt \ - "$pkgdir/usr/share/licenses/$pkgname/LICENSE.shipped" -} Copied: broadcom-wl-dkms/repos/community-testing-x86_64/PKGBUILD (from rev 781604, broadcom-wl-dkms/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2020-12-21 21:29:09 UTC (rev 781605) @@ -0,0 +1,73 @@ +# Maintainer: Alexander F. Rødseth <xypr...@archlinux.org> +# Contributor: Andrey Vihrov <andrey.vih...@gmail.com> +# Contributor: Frank Vanderham <twelve.eig...@gmail.com> +# Contributor: Jacob McSwain <jacob.a.mcsw...@gmail.com> +# Contributor: Thomas Braby <tho...@mykolab.com> + +pkgname=broadcom-wl-dkms +pkgver=6.30.223.271 +pkgrel=25 +pkgdesc='Broadcom 802.11 Linux STA wireless driver' +arch=(x86_64) +url='https://www.broadcom.com/support/download-search/?pf=Wireless+LAN+Infrastructure' +license=(custom) +depends=(dkms) +conflicts=(broadcom-wl) +install=broadcom-wl-dkms.install +source=('broadcom-wl-dkms.conf' + 'dkms.conf.in' + '001-null-pointer-fix.patch' + '002-rdtscl.patch' + '003-linux47.patch' + '004-linux48.patch' + '005-debian-fix-kernel-warnings.patch' + '006-linux411.patch' + '007-linux412.patch' + '008-linux415.patch' + '009-fix_mac_profile_discrepancy.patch' + '010-linux56.patch' + '011-linux59.patch' + '012-linux510.patch' + "https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-${pkgver//./_}.tar.gz") +sha256sums=('b97bc588420d1542f73279e71975ccb5d81d75e534e7b5717e01d6e6adf6a283' + 'f11b7ff3d175d0c3b90a2b387d71a2ab523eefb5ff3400b3d08f91c0d76e337e' + '32e505a651fdb9fd5e4870a9d6de21dd703dead768c2b3340a2ca46671a5852f' + '4ea03f102248beb8963ad00bd3e36e67519a90fa39244db065e74038c98360dd' + '30ce1d5e8bf78aee487d0f3ac76756e1060777f70ed1a9cf95215c3a52cfbe2e' + '09d709df0c764118ca43117f5c096163d9669a28170da8476d4b8211bd225d2e' + '2306a59f9e7413f35a0669346dcd05ef86fa37c23b566dceb0c6dbee67e4d299' + '5bc12cb57712e6a944dff1c90de50135c2508085d8497ab99284ccccdb35c32b' + 'a3d13e8abb96ad440dbfae29acae82d31d1ced2ea62052f1efb2c3c4add347ce' + '08c24157cf3b93b60e67e600d1d90223447361990df09acfb00281d79813d167' + '4e73e50653bb612946edd34bf31ca5a0b80f632d47a08766ae6042880927c98d' + 'f1300bcce93363088481671150ff2bbd6957e12ba11098980b9f428c7a171812' + '8983c8ae73ad5853a37d98aa42bed1c52a2bd27d0d4991283cf92010cab22212' + '138187813d86239b633defeb102a665e1eaa0b95d23abeada4bbecfc07050dee' + '5f79774d5beec8f7636b59c0fb07a03108eef1e3fd3245638b20858c714144be') + +prepare() { + sed -i -e '/BRCM_WLAN_IFNAME/s/eth/wlan/' src/wl/sys/wl_linux.c + sed -i -e "/EXTRA_LDFLAGS/s|\$(src)/lib|/usr/lib/$pkgname|" Makefile + sed -e "s/@PACKAGE_VERSION@/$pkgver/" dkms.conf.in > dkms.conf + sed -n -e '/Copyright/,/SOFTWARE\./{s/^ \* //;p}' src/wl/sys/wl_linux.c + sed -i 's/segment_eq(get_fs(), KERNEL_DS)/uaccess_kernel()/g' src/wl/sys/wl_linux.c + sed -i '/GE_49 :=/s|:= .*|:= 1|' Makefile + find src -name "*.c" -type f -exec sed -i 's/ioremap_nocache/ioremap_cache/g' {} \; + +} + +package() { + local dest="$pkgdir/usr/src/${pkgname/-dkms/}-$pkgver" + install -Dm644 Makefile "$dest/Makefile" + install -Dm644 dkms.conf "$dest/dkms.conf" + install -Dm644 -t "$dest/patches" *.patch + cp -a src "$dest" + + install -Dm644 lib/wlc_hybrid.o_shipped \ + "$pkgdir/usr/lib/$pkgname/wlc_hybrid.o_shipped" + install -Dm644 broadcom-wl-dkms.conf \ + "$pkgdir/usr/lib/modprobe.d/broadcom-wl-dkms.conf" + + install -Dm644 lib/LICENSE.txt \ + "$pkgdir/usr/share/licenses/$pkgname/LICENSE.shipped" +} Deleted: broadcom-wl-dkms.conf =================================================================== --- broadcom-wl-dkms.conf 2020-12-21 21:29:03 UTC (rev 781604) +++ broadcom-wl-dkms.conf 2020-12-21 21:29:09 UTC (rev 781605) @@ -1,8 +0,0 @@ -blacklist b43 -blacklist b43legacy -blacklist ssb -blacklist bcm43xx -blacklist brcm80211 -blacklist brcmfmac -blacklist brcmsmac -blacklist bcma Copied: broadcom-wl-dkms/repos/community-testing-x86_64/broadcom-wl-dkms.conf (from rev 781604, broadcom-wl-dkms/trunk/broadcom-wl-dkms.conf) =================================================================== --- broadcom-wl-dkms.conf (rev 0) +++ broadcom-wl-dkms.conf 2020-12-21 21:29:09 UTC (rev 781605) @@ -0,0 +1,8 @@ +blacklist b43 +blacklist b43legacy +blacklist ssb +blacklist bcm43xx +blacklist brcm80211 +blacklist brcmfmac +blacklist brcmsmac +blacklist bcma Deleted: broadcom-wl-dkms.install =================================================================== --- broadcom-wl-dkms.install 2020-12-21 21:29:03 UTC (rev 781604) +++ broadcom-wl-dkms.install 2020-12-21 21:29:09 UTC (rev 781605) @@ -1,16 +0,0 @@ -post_install() { - cat<<EOF - -To load the new module, run the following commands as root: - - rmmod b43 b43legacy bcm43xx bcma brcm80211 brcmfmac brcmsmac ssb wl - modprobe wl - -Or just reboot the system. - -EOF -} - -post_upgrade() { - post_install $1 -} Copied: broadcom-wl-dkms/repos/community-testing-x86_64/broadcom-wl-dkms.install (from rev 781604, broadcom-wl-dkms/trunk/broadcom-wl-dkms.install) =================================================================== --- broadcom-wl-dkms.install (rev 0) +++ broadcom-wl-dkms.install 2020-12-21 21:29:09 UTC (rev 781605) @@ -0,0 +1,16 @@ +post_install() { + cat<<EOF + +To load the new module, run the following commands as root: + + rmmod b43 b43legacy bcm43xx bcma brcm80211 brcmfmac brcmsmac ssb wl + modprobe wl + +Or just reboot the system. + +EOF +} + +post_upgrade() { + post_install $1 +} Deleted: dkms.conf.in =================================================================== --- dkms.conf.in 2020-12-21 21:29:03 UTC (rev 781604) +++ dkms.conf.in 2020-12-21 21:29:09 UTC (rev 781605) @@ -1,16 +0,0 @@ -PACKAGE_NAME="broadcom-wl" -PACKAGE_VERSION="@PACKAGE_VERSION@" -BUILT_MODULE_NAME[0]="wl" -DEST_MODULE_LOCATION[0]="/kernel/drivers/net/wireless" -PATCH[0]="001-null-pointer-fix.patch" -PATCH[1]="002-rdtscl.patch" -PATCH[2]="003-linux47.patch" -PATCH[3]="004-linux48.patch" -PATCH[4]="005-debian-fix-kernel-warnings.patch" -PATCH[5]="006-linux411.patch" -PATCH[6]="007-linux412.patch" -PATCH[7]="008-linux415.patch" -PATCH[8]="010-linux56.patch" -PATCH[9]="011-linux59.patch" -PATCH[10]="012-linux510.patch" -AUTOINSTALL="yes" Copied: broadcom-wl-dkms/repos/community-testing-x86_64/dkms.conf.in (from rev 781604, broadcom-wl-dkms/trunk/dkms.conf.in) =================================================================== --- dkms.conf.in (rev 0) +++ dkms.conf.in 2020-12-21 21:29:09 UTC (rev 781605) @@ -0,0 +1,16 @@ +PACKAGE_NAME="broadcom-wl" +PACKAGE_VERSION="@PACKAGE_VERSION@" +BUILT_MODULE_NAME[0]="wl" +DEST_MODULE_LOCATION[0]="/kernel/drivers/net/wireless" +PATCH[0]="001-null-pointer-fix.patch" +PATCH[1]="002-rdtscl.patch" +PATCH[2]="003-linux47.patch" +PATCH[3]="004-linux48.patch" +PATCH[4]="005-debian-fix-kernel-warnings.patch" +PATCH[5]="006-linux411.patch" +PATCH[6]="007-linux412.patch" +PATCH[7]="008-linux415.patch" +PATCH[8]="010-linux56.patch" +PATCH[9]="011-linux59.patch" +PATCH[10]="012-linux510.patch" +AUTOINSTALL="yes"