1See: https://lkml.org/lkml/2017/11/25/90
2
3diff -urNZ a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
4--- a/src/wl/sys/wl_linux.c 2015-09-18 22:47:30.000000000 +0000
5+++ b/src/wl/sys/wl_linux.c 2018-01-31 22:52:10.859856221 +0000
6@@ -93,7 +93,11 @@
7
8 #include <wlc_wowl.h>
9
10+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
11+static void wl_timer(struct timer_list *tl);
12+#else
13 static void wl_timer(ulong data);
14+#endif
15 static void _wl_timer(wl_timer_t *t);
16 static struct net_device *wl_alloc_linux_if(wl_if_t *wlif);
17
18@@ -2298,9 +2302,15 @@
19 }
20
21 static void
22+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
23+wl_timer(struct timer_list *tl)
24+{
25+ wl_timer_t *t = from_timer(t, tl, timer);
26+#else
27 wl_timer(ulong data)
28 {
29 wl_timer_t *t = (wl_timer_t *)data;
30+#endif
31
32 if (!WL_ALL_PASSIVE_ENAB(t->wl))
33 _wl_timer(t);
34@@ -2352,9 +2362,13 @@
35
36 bzero(t, sizeof(wl_timer_t));
37
38+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
39+ timer_setup(&t->timer, wl_timer, 0);
40+#else
41 init_timer(&t->timer);
42 t->timer.data = (ulong) t;
43 t->timer.function = wl_timer;
44+#endif
45 t->wl = wl;
46 t->fn = fn;
47 t->arg = arg;