summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/sllin/files/0003-Allow-recent-kernels-newer-4.11.x-to-build.patch
blob: c8f2f92686764a18cd18a828f7e099fe2f6c1cf5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
From fcebb8f510bbb5c681f1f9af4506b4de241837dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan-Simon=20M=C3=B6ller?= <jsmoeller@linuxfoundation.org>
Date: Wed, 31 Oct 2018 20:48:20 +0000
Subject: [PATCH] Allow recent kernels newer 4.11.x to build
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

API changes enforce porting.

Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
---
 sllin/sllin.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/sllin/sllin.c b/sllin/sllin.c
index 2969448..7e17127 100644
--- a/sllin/sllin.c
+++ b/sllin/sllin.c
@@ -56,7 +56,12 @@
 #include <linux/rtnetlink.h>
 #include <linux/if_arp.h>
 #include <linux/if_ether.h>
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,11,0)
 #include <linux/sched.h>
+#else
+#include <uapi/linux/sched/types.h>
+#endif
 #include <linux/delay.h>
 #include <linux/init.h>
 #include <linux/can.h>
@@ -447,7 +451,9 @@ static int sll_open(struct net_device *dev)
 static void sll_free_netdev(struct net_device *dev)
 {
 	int i = dev->base_addr;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,11,9)
 	free_netdev(dev);
+#endif
 	sllin_devs[i] = NULL;
 }
 
@@ -460,7 +466,12 @@ static const struct net_device_ops sll_netdev_ops = {
 static void sll_setup(struct net_device *dev)
 {
 	dev->netdev_ops		= &sll_netdev_ops;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,11,9)
 	dev->destructor		= sll_free_netdev;
+#else
+       dev->needs_free_netdev  = true;
+        dev->priv_destructor    = sll_free_netdev;
+#endif
 
 	dev->hard_header_len	= 0;
 	dev->addr_len		= 0;
@@ -1685,8 +1696,10 @@ static void __exit sllin_exit(void)
 		sl = netdev_priv(dev);
 		if (sl->tty) {
 			netdev_dbg(sl->dev, "tty discipline still running\n");
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,11,9)
 			/* Intentionally leak the control block. */
 			dev->destructor = NULL;
+#endif
 		}
 
 		unregister_netdev(dev);
-- 
2.13.7