From 5697a9353c6582639fe3166fa06a7e8370193e15 Mon Sep 17 00:00:00 2001
From: Cedric Roux <cedric.roux@eurecom.fr>
Date: Sun, 24 Nov 2013 17:15:58 +0000
Subject: [PATCH] - Update for kernel versions > 3.5.0
pre-ci ok
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4505 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
openair2/NAS/DRIVER/MESH/netlink.c | 46 +++++++++++++++++++++---------
1 file changed, 33 insertions(+), 13 deletions(-)
diff --git a/openair2/NAS/DRIVER/MESH/netlink.c b/openair2/NAS/DRIVER/MESH/netlink.c
index 49d72d921e..574f311549 100644
--- a/openair2/NAS/DRIVER/MESH/netlink.c
+++ b/openair2/NAS/DRIVER/MESH/netlink.c
@@ -34,6 +34,7 @@
*/
//#include <linux/config.h>
+#include <linux/version.h>
#include <linux/socket.h>
#include <linux/kernel.h>
#include <linux/module.h>
@@ -57,7 +58,9 @@
static struct sock *nas_nl_sk = NULL;
static int exit_netlink_thread=0;
static int nas_netlink_rx_thread(void *);
-
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
+struct netlink_kernel_cfg oai_netlink_cfg;
+#endif
static DEFINE_MUTEX(nasmesh_mutex);
@@ -152,20 +155,33 @@ int nas_netlink_init()
{
printk("[NAS][NETLINK] Running init ...\n");
-
- nas_nl_sk = netlink_kernel_create(
-#ifdef KERNEL_VERSION_GREATER_THAN_2622
- &init_net,
-#endif
- NAS_NETLINK_ID,
- 0,
- nas_nl_data_ready,
-#ifdef KERNEL_VERSION_GREATER_THAN_2622
- &nasmesh_mutex, // NULL
-#endif
- THIS_MODULE);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
+ oai_netlink_cfg.groups = 0;
+ oai_netlink_cfg.input = nas_nl_data_ready;
+ oai_netlink_cfg.cb_mutex = &nasmesh_mutex;
+ oai_netlink_cfg.bind = NULL;
+ nas_nl_sk = netlink_kernel_create(
+ &init_net,
+ NAS_NETLINK_ID,
+# if LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0)
+ THIS_MODULE,
+# endif
+ &oai_netlink_cfg);
+#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */
+ nas_nl_sk = netlink_kernel_create(
+# ifdef KERNEL_VERSION_GREATER_THAN_2622
+ &init_net,
+# endif
+ NAS_NETLINK_ID,
+ 0,
+ nas_nl_data_ready,
+# ifdef KERNEL_VERSION_GREATER_THAN_2622
+ &nasmesh_mutex, // NULL
+# endif
+ THIS_MODULE);
+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */
if (nas_nl_sk == NULL) {
@@ -224,7 +240,11 @@ int nas_netlink_send(unsigned char *data,unsigned int len) {
nlh->nlmsg_pid = 0; /* from kernel */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)
+ NETLINK_CB(nl_skb).portid = 0;
+#else
NETLINK_CB(nl_skb).pid = 0;
+#endif
#ifdef NETLINK_DEBUG
printk("[NAS][NETLINK] In nas_netlink_send, nl_skb %p, nl_sk %x, nlh %p, nlh->nlmsg_len %d\n",nl_skb,nas_nl_sk,nlh,nlh->nlmsg_len);
--
GitLab