5d78a89291
These derivations now successfully build: * `linuxKernel.packages.linux_4_19.broadcom_sta` * `linuxKernel.packages.linux_4_19_hardened.broadcom_sta` * `linuxKernel.packages.linux_5_10.broadcom_sta` * `linuxKernel.packages.linux_5_10_hardened.broadcom_sta` * `linuxKernel.packages.linux_5_15.broadcom_sta` * `linuxKernel.packages.linux_5_15_hardened.broadcom_sta` * `linuxKernel.packages.linux_5_4.broadcom_sta` * `linuxKernel.packages.linux_5_4_hardened.broadcom_sta` * `linuxKernel.packages.linux_6_1.broadcom_sta` * `linuxKernel.packages.linux_6_1_hardened.broadcom_sta` * `linuxKernel.packages.linux_6_6.broadcom_sta` * `linuxKernel.packages.linux_6_8.broadcom_sta` * `linuxKernel.packages.linux_6_8_hardened.broadcom_sta` * `linuxKernel.packages.linux_6_9.broadcom_sta` * `linuxKernel.packages.linux_6_9_hardened.broadcom_sta` * `linuxKernel.packages.linux_hardened.broadcom_sta` * `linuxKernel.packages.linux_latest_libre.broadcom_sta` * `linuxKernel.packages.linux_libre.broadcom_sta` * `linuxKernel.packages.linux_lqx.broadcom_sta` * `linuxKernel.packages.linux_xanmod.broadcom_sta` * `linuxKernel.packages.linux_xanmod_latest.broadcom_sta` * `linuxKernel.packages.linux_zen.broadcom_sta` As I do not have hardware to test this driver out, building will have to do as far as testing is concerned.
70 lines
2.4 KiB
Diff
70 lines
2.4 KiB
Diff
From a5e450dcdc7bc4ce06379189c3577f8c7a36fbde Mon Sep 17 00:00:00 2001
|
|
From: Joan Bruguera <joanbrugueram@gmail.com>
|
|
Date: Wed, 12 Jan 2022 20:49:20 +0100
|
|
Subject: [PATCH 12/16] linuxPackages.broadcom_sta: fix build for kernel 5.17+
|
|
|
|
Tentative fix for broadcom-wl 6.30.223.271 driver for Linux 5.17-rc1
|
|
|
|
Set netdev->dev_addr through dev_addr_mod + PDE_DATA fix
|
|
|
|
Since Linux 5.17 netdev->dev_addr is const and must be changed through
|
|
dev_addr_mod, otherwise a warning is logged in dmesg and bad things may happen.
|
|
|
|
NB: The #if is not wrong, dev_addr_mod is defined since Linux 5.15-rc1
|
|
|
|
Plus a trivial fix for PDE_DATA.
|
|
|
|
Applies on top of all the patches applied to broadcom-wl-dkms 6.30.223.271-28 on Arch Linux.
|
|
|
|
See also: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=adeef3e32146a8d2a73c399dc6f5d76a449131b1
|
|
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=359745d78351c6f5442435f81549f0207ece28aa
|
|
---
|
|
src/wl/sys/wl_linux.c | 10 +++++++---
|
|
1 file changed, 7 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
|
|
index 26ba9fa..25c4706 100644
|
|
--- a/src/wl/sys/wl_linux.c
|
|
+++ b/src/wl/sys/wl_linux.c
|
|
@@ -93,6 +93,10 @@ struct iw_statistics *wl_get_wireless_stats(struct net_device *dev);
|
|
|
|
#include <wlc_wowl.h>
|
|
|
|
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0))
|
|
+#define PDE_DATA pde_data
|
|
+#endif
|
|
+
|
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
|
|
static void wl_timer(struct timer_list *tl);
|
|
#else
|
|
@@ -646,7 +650,7 @@ wl_attach(uint16 vendor, uint16 device, ulong regs,
|
|
WL_ERROR(("wl%d: Error setting MAC ADDRESS\n", unit));
|
|
}
|
|
#endif
|
|
- bcopy(&wl->pub->cur_etheraddr, dev->dev_addr, ETHER_ADDR_LEN);
|
|
+ eth_hw_addr_set(dev, wl->pub->cur_etheraddr.octet);
|
|
|
|
online_cpus = 1;
|
|
|
|
@@ -1852,7 +1856,7 @@ wl_set_mac_address(struct net_device *dev, void *addr)
|
|
|
|
WL_LOCK(wl);
|
|
|
|
- bcopy(sa->sa_data, dev->dev_addr, ETHER_ADDR_LEN);
|
|
+ eth_hw_addr_set(dev, sa->sa_data);
|
|
err = wlc_iovar_op(wl->wlc, "cur_etheraddr", NULL, 0, sa->sa_data, ETHER_ADDR_LEN,
|
|
IOV_SET, (WL_DEV_IF(dev))->wlcif);
|
|
WL_UNLOCK(wl);
|
|
@@ -3033,7 +3037,7 @@ _wl_add_monitor_if(wl_task_t *task)
|
|
else
|
|
dev->type = ARPHRD_IEEE80211_RADIOTAP;
|
|
|
|
- bcopy(wl->dev->dev_addr, dev->dev_addr, ETHER_ADDR_LEN);
|
|
+ eth_hw_addr_set(dev, wl->dev->dev_addr);
|
|
|
|
#if defined(WL_USE_NETDEV_OPS)
|
|
dev->netdev_ops = &wl_netdev_monitor_ops;
|
|
--
|
|
2.45.1
|
|
|