net-wireless/broadcom-sta: Fix build on 4.15
authorNick Sarnie <commendsarnex@gmail.com>
Tue, 13 Mar 2018 19:17:30 +0000 (15:17 -0400)
committerGilles Dartiguelongue <eva@gentoo.org>
Sun, 25 Mar 2018 22:07:42 +0000 (00:07 +0200)
Bug: https://bugs.gentoo.org/646106
Package-Manager: Portage-2.3.24, Repoman-2.3.6
Closes: https://github.com/gentoo/gentoo/pull/7449

net-wireless/broadcom-sta/broadcom-sta-6.30.223.271-r4.ebuild
net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.15.patch [new file with mode: 0644]

index 34b37eceeaf8922ff3c1883e3499b79d50eb320f..b5e03a3184f108e4b6f568227cf45291de032204 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=5
@@ -81,7 +81,8 @@ src_prepare() {
                "${FILESDIR}/${PN}-6.30.223.271-r4-linux-4.7.patch" \
                "${FILESDIR}/${PN}-6.30.223.271-r4-linux-4.8.patch" \
                "${FILESDIR}/${PN}-6.30.223.271-r4-linux-4.11.patch" \
-               "${FILESDIR}/${PN}-6.30.223.271-r4-linux-4.12.patch"
+               "${FILESDIR}/${PN}-6.30.223.271-r4-linux-4.12.patch" \
+               "${FILESDIR}/${PN}-6.30.223.271-r4-linux-4.15.patch"
 
        epatch_user
 }
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.15.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.15.patch
new file mode 100644 (file)
index 0000000..91c4d89
--- /dev/null
@@ -0,0 +1,63 @@
+diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
+index 489c9f5..f8278ad 100644
+--- a/src/wl/sys/wl_linux.c
++++ b/src/wl/sys/wl_linux.c
+@@ -93,7 +93,11 @@
+ #include <wlc_wowl.h>
++#ifdef HAVE_TIMER_SETUP
++static void wl_timer(struct timer_list *list);
++#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);
+@@ -2296,12 +2300,17 @@
+       atomic_dec(&t->wl->callbacks);
+ }
+-
++#ifdef HAVE_TIMER_SETUP
++static void
++wl_timer(struct timer_list *list)
++{
++      wl_timer_t *t = from_timer(t,list,timer);
++#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);
+       else
+@@ -2351,10 +2360,13 @@
+       }
+       bzero(t, sizeof(wl_timer_t));
+-
++#ifdef HAVE_TIMER_SETUP
++      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;
+diff --git a/src/wl/sys/wl_linux.h b/src/wl/sys/wl_linux.h
+index 489c9f5..f8278ad 100644
+--- a/src/wl/sys/wl_linux.h
++++ b/src/wl/sys/wl_linux.h
+@@ -190,3 +190,7 @@
+ extern struct net_device * wl_netdev_get(wl_info_t *wl);
+ #endif 
++
++#if defined(timer_setup) && defined(from_timer)
++#define HAVE_TIMER_SETUP
++#endif