summary refs log tree commit diff
path: root/pkgs/os-specific/linux/broadcom-sta
diff options
context:
space:
mode:
authorYegor Timoshenko <yegortimoshenko@riseup.net>2018-01-31 22:59:09 +0000
committerYegor Timoshenko <yegortimoshenko@riseup.net>2018-01-31 23:04:10 +0000
commit65187722ec07fec21b2c8c53019255c6a9a5c4f8 (patch)
tree52854c77e8b9e5fca1282a59eab0a6c5132a2e84 /pkgs/os-specific/linux/broadcom-sta
parenta1115c187bb394c8684ebb97f454151e3c408807 (diff)
downloadnixpkgs-65187722ec07fec21b2c8c53019255c6a9a5c4f8.tar
nixpkgs-65187722ec07fec21b2c8c53019255c6a9a5c4f8.tar.gz
nixpkgs-65187722ec07fec21b2c8c53019255c6a9a5c4f8.tar.bz2
nixpkgs-65187722ec07fec21b2c8c53019255c6a9a5c4f8.tar.lz
nixpkgs-65187722ec07fec21b2c8c53019255c6a9a5c4f8.tar.xz
nixpkgs-65187722ec07fec21b2c8c53019255c6a9a5c4f8.tar.zst
nixpkgs-65187722ec07fec21b2c8c53019255c6a9a5c4f8.zip
linuxPackages.broadcom-sta: fix build with Linux 4.15
See: https://lkml.org/lkml/2017/11/25/90
Diffstat (limited to 'pkgs/os-specific/linux/broadcom-sta')
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/default.nix1
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/linux-4.15.patch47
2 files changed, 48 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
index c6bd4f4b206..9423e7a33f4 100644
--- a/pkgs/os-specific/linux/broadcom-sta/default.nix
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation {
     ./linux-4.11.patch
     # source: https://aur.archlinux.org/cgit/aur.git/tree/linux412.patch?h=broadcom-wl
     ./linux-4.12.patch
+    ./linux-4.15.patch
     ./null-pointer-fix.patch
     ./gcc.patch
   ];
diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-4.15.patch b/pkgs/os-specific/linux/broadcom-sta/linux-4.15.patch
new file mode 100644
index 00000000000..523fa291d52
--- /dev/null
+++ b/pkgs/os-specific/linux/broadcom-sta/linux-4.15.patch
@@ -0,0 +1,47 @@
+See: https://lkml.org/lkml/2017/11/25/90
+
+diff -urNZ a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
+--- a/src/wl/sys/wl_linux.c	2015-09-18 22:47:30.000000000 +0000
++++ b/src/wl/sys/wl_linux.c	2018-01-31 22:52:10.859856221 +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);
+
+@@ -2298,9 +2302,15 @@
+ }
+
+ static void
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
++wl_timer(struct timer_list *tl)
++{
++	wl_timer_t *t = from_timer(t, tl, timer);
++#else
+ 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 +2362,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;