Add package for sllin driver to image
[AGL/meta-agl-demo.git] / recipes-kernel / sllin / files / 0003-Allow-recent-kernels-newer-4.11.x-to-build.patch
diff --git a/recipes-kernel/sllin/files/0003-Allow-recent-kernels-newer-4.11.x-to-build.patch b/recipes-kernel/sllin/files/0003-Allow-recent-kernels-newer-4.11.x-to-build.patch
new file mode 100644 (file)
index 0000000..c8f2f92
--- /dev/null
@@ -0,0 +1,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
+