diff options
Diffstat (limited to 'sys-kernel/broadcom-sta-dkms/files/broadcom-sta-6.30.223.271-r4-linux-4.15.patch')
-rw-r--r-- | sys-kernel/broadcom-sta-dkms/files/broadcom-sta-6.30.223.271-r4-linux-4.15.patch | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/sys-kernel/broadcom-sta-dkms/files/broadcom-sta-6.30.223.271-r4-linux-4.15.patch b/sys-kernel/broadcom-sta-dkms/files/broadcom-sta-6.30.223.271-r4-linux-4.15.patch new file mode 100644 index 00000000..91c4d895 --- /dev/null +++ b/sys-kernel/broadcom-sta-dkms/files/broadcom-sta-6.30.223.271-r4-linux-4.15.patch @@ -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 |