From 105e8974c06bf299974d17c09c54800350cfdebe Mon Sep 17 00:00:00 2001 From: X9VoiD Date: Wed, 19 Oct 2022 00:29:28 +0800 Subject: broadcom_sta: fix build on linux 6.0 (#195392) Fix build issues when building against linux 6.0 --- pkgs/os-specific/linux/broadcom-sta/default.nix | 2 ++ .../os-specific/linux/broadcom-sta/linux-6.0.patch | 30 ++++++++++++++++++++++ .../linux/broadcom-sta/pedantic-fix.patch | 21 +++++++++------ 3 files changed, 45 insertions(+), 8 deletions(-) create mode 100644 pkgs/os-specific/linux/broadcom-sta/linux-6.0.patch (limited to 'pkgs/os-specific') diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix index d7acf94e39a..661bb7fc922 100644 --- a/pkgs/os-specific/linux/broadcom-sta/default.nix +++ b/pkgs/os-specific/linux/broadcom-sta/default.nix @@ -43,6 +43,8 @@ stdenv.mkDerivation { ./linux-5.17.patch # source: https://github.com/archlinux/svntogit-community/blob/2e1fd240f9ce06f500feeaa3e4a9675e65e6b967/trunk/013-linux518.patch ./linux-5.18.patch + # source: https://gist.github.com/joanbm/207210d74637870c01ef5a3c262a597d + ./linux-6.0.patch ./pedantic-fix.patch ./null-pointer-fix.patch ./gcc.patch diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-6.0.patch b/pkgs/os-specific/linux/broadcom-sta/linux-6.0.patch new file mode 100644 index 00000000000..dcb5515264d --- /dev/null +++ b/pkgs/os-specific/linux/broadcom-sta/linux-6.0.patch @@ -0,0 +1,30 @@ +From dbee29df729e543a89b3f95c1436e982eb0047c1 Mon Sep 17 00:00:00 2001 +From: Joan Bruguera +Date: Thu, 30 Jun 2022 02:15:35 +0200 +Subject: [PATCH] Tentative patch for broadcom-wl 6.30.223.271 driver for Linux 6.0-rc1 + +Applies on top of all the patches applied to broadcom-wl-dkms 6.30.223.271-33 on Arch Linux. +--- + src/wl/sys/wl_cfg80211_hybrid.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c +index d815b33..7faa735 100644 +--- a/src/wl/sys/wl_cfg80211_hybrid.c ++++ b/src/wl/sys/wl_cfg80211_hybrid.c +@@ -2381,7 +2381,12 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, + 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 = { ++// Rel. commit "cfg80211: Indicate MLO connection info in connect and roam callbacks" (Veerendranath Jakkam, Wed Jun 8) ++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0) + .bss = bss, ++#else ++ .links[0].bss = bss, ++#endif + .req_ie = conn_info->req_ie, + .req_ie_len = conn_info->req_ie_len, + .resp_ie = conn_info->resp_ie, +-- +2.37.0 + diff --git a/pkgs/os-specific/linux/broadcom-sta/pedantic-fix.patch b/pkgs/os-specific/linux/broadcom-sta/pedantic-fix.patch index f97709fef90..3d190b9d1f8 100644 --- a/pkgs/os-specific/linux/broadcom-sta/pedantic-fix.patch +++ b/pkgs/os-specific/linux/broadcom-sta/pedantic-fix.patch @@ -1,4 +1,4 @@ -diff --git a/src/shared/linux_osl.c b/shared/linux_osl.c +diff --git a/src/shared/linux_osl.c b/src/shared/linux_osl.c index 711b771..5a2636a 100644 --- a/src/shared/linux_osl.c +++ b/src/shared/linux_osl.c @@ -11,8 +11,8 @@ index 711b771..5a2636a 100644 if (rdlen > 0) fp->f_pos += rdlen; -diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/wl/sys/wl_cfg80211_hybrid.c -index 41c16d8..d39d9de 100644 +diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c +index 2b3c290..093dce6 100644 --- a/src/wl/sys/wl_cfg80211_hybrid.c +++ b/src/wl/sys/wl_cfg80211_hybrid.c @@ -790,6 +790,7 @@ wl_set_auth_type(struct net_device *dev, struct cfg80211_connect_params *sme) @@ -23,7 +23,7 @@ index 41c16d8..d39d9de 100644 default: val = 2; WL_ERR(("invalid auth type (%d)\n", sme->auth_type)); -@@ -2347,21 +2348,20 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, +@@ -2347,26 +2348,24 @@ 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); @@ -36,23 +36,28 @@ index 41c16d8..d39d9de 100644 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 = { + // Rel. commit "cfg80211: Indicate MLO connection info in connect and roam callbacks" (Veerendranath Jakkam, Wed Jun 8) + #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0) - .bss = bss, ++ roam_info.bss = bss; + #else +- .links[0].bss = bss, ++ roam_info.links[0].bss = bss; + #endif - .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, - }; -+ roam_info.bss = bss; + roam_info.req_ie = conn_info->req_ie; + roam_info.req_ie_len = conn_info->req_ie_len; + roam_info.resp_ie = conn_info->resp_ie; -+ roam_info.resp_ie_len = conn_info->resp_ie_len; #endif - s32 err = 0; wl_get_assoc_ies(wl); memcpy(wl->profile->bssid, &e->addr, ETHER_ADDR_LEN); -diff --git a/src/wl/sys/wl_iw.h b/wl/sys/wl_iw.h +diff --git a/src/wl/sys/wl_iw.h b/src/wl/sys/wl_iw.h index 3ab084f..471d11f 100644 --- a/src/wl/sys/wl_iw.h +++ b/src/wl/sys/wl_iw.h @@ -64,7 +69,7 @@ index 3ab084f..471d11f 100644 #define WL_IW_SET_ACTIVE_SCAN (SIOCIWFIRSTPRIV+1) #define WL_IW_GET_RSSI (SIOCIWFIRSTPRIV+3) #define WL_IW_SET_PASSIVE_SCAN (SIOCIWFIRSTPRIV+5) -diff --git a/src/wl/sys/wl_linux.c b/wl/sys/wl_linux.c +diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c index d13fb98..97ae2a6 100644 --- a/src/wl/sys/wl_linux.c +++ b/src/wl/sys/wl_linux.c -- cgit 1.4.1