Hi all,

here's the patch from the IRC chat today.  I haven't tested it but it
should be close,

Cheers,
Davidm

-- 
David McCullough,  [email protected],   Ph: 0410 560 763
diff --git a/linux/include/libreswan/ipsec_kversion.h b/linux/include/libreswan/ipsec_kversion.h
index c90bf91..d177aaf 100644
--- a/linux/include/libreswan/ipsec_kversion.h
+++ b/linux/include/libreswan/ipsec_kversion.h
@@ -526,6 +526,14 @@
 # define        HAVE_NETIF_QUEUE
 #endif
 
+#ifdef alloc_netdev
+# if LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0)
+#  define ipsec_alloc_netdev(a,b,c,d) alloc_netdev(a,b,c,d)
+# else
+#  define ipsec_alloc_netdev(a,b,c,d) alloc_netdev(a,b,d)
+# endif
+#endif
+
 #if !defined(DEFINE_RWLOCK)
 # define DEFINE_RWLOCK(x) rwlock_t x = RW_LOCK_UNLOCKED
 #endif
diff --git a/linux/net/ipsec/ipsec_mast.c b/linux/net/ipsec/ipsec_mast.c
index ca14a3d..8504f04 100644
--- a/linux/net/ipsec/ipsec_mast.c
+++ b/linux/net/ipsec/ipsec_mast.c
@@ -887,11 +887,11 @@ int ipsec_mast_probe(struct net_device *dev)
 	dev->set_mac_address    = NULL;
 	dev->neigh_setup        = ipsec_mast_neigh_setup_dev;
 #endif
-#ifdef alloc_netdev
+#ifdef ipsec_alloc_netdev
 	dev->destructor         = free_netdev;
 #endif
 
-#ifndef alloc_netdev
+#ifndef ipsec_alloc_netdev
 	dev->priv = kmalloc(sizeof(struct mastpriv), GFP_KERNEL);
 	if (dev->priv == NULL)
 		return -ENOMEM;
@@ -931,7 +931,7 @@ int ipsec_mast_probe(struct net_device *dev)
 	return 0;
 }
 
-#ifdef alloc_netdev
+#ifdef ipsec_alloc_netdev
 static void ipsec_mast_netdev_setup(struct net_device *dev)
 {
 }
@@ -970,9 +970,9 @@ int ipsec_mast_createnum(int vifnum)
 
 	snprintf(name, IFNAMSIZ, MAST_DEV_FORMAT, vifnum);
 
-#ifdef alloc_netdev
-	im = alloc_netdev(sizeof(struct mastpriv), name,
-			  ipsec_mast_netdev_setup);
+#ifdef ipsec_alloc_netdev
+	im = ipsec_alloc_netdev(sizeof(struct mastpriv), name,
+			  NET_NAME_UNKNOWN, ipsec_mast_netdev_setup);
 #else
 	im = (struct net_device *)kmalloc(sizeof(struct net_device),
 					  GFP_KERNEL);
@@ -983,7 +983,7 @@ int ipsec_mast_createnum(int vifnum)
 		return -ENOMEM;
 	}
 
-#ifndef alloc_netdev
+#ifndef ipsec_alloc_netdev
 	memset((caddr_t)im, 0, sizeof(struct net_device));
 	memcpy(im->name, name, IFNAMSIZ);
 #endif
@@ -1024,7 +1024,7 @@ int ipsec_mast_deletenum(int vifnum)
 	KLIPS_PRINT(debug_tunnel, "Unregistering %s\n", dev_ipsec->name);
 	unregister_netdev(dev_ipsec);
 	KLIPS_PRINT(debug_tunnel, "Unregisted %s\n", dev_ipsec->name);
-#ifndef alloc_netdev
+#ifndef ipsec_alloc_netdev
 	kfree(dev_ipsec->priv);
 	dev_ipsec->priv = NULL;
 #endif
@@ -1091,7 +1091,7 @@ int ipsec_mast_cleanup_devices(void)
 			mastdevices[i] = NULL;
 			ipsec_dev_put(dev_mast);
 			unregister_netdev(dev_mast);
-#ifndef alloc_netdev
+#ifndef ipsec_alloc_netdev
 			kfree(dev_mast->priv);
 			dev_mast->priv = NULL;
 #endif
diff --git a/linux/net/ipsec/ipsec_tunnel.c b/linux/net/ipsec/ipsec_tunnel.c
index ccebbef..87a60cc 100644
--- a/linux/net/ipsec/ipsec_tunnel.c
+++ b/linux/net/ipsec/ipsec_tunnel.c
@@ -2007,7 +2007,7 @@ int ipsec_tunnel_init(struct net_device *dev)
 		    (unsigned long) sizeof(struct ipsecpriv),
 		    dev->name ? dev->name : "NULL");
 
-#ifdef alloc_netdev
+#ifdef ipsec_alloc_netdev
 	dev->destructor         = free_netdev;
 #endif
 
@@ -2076,7 +2076,7 @@ int ipsec_tunnel_probe(struct net_device *dev)
 	return 0;
 }
 
-#ifdef alloc_netdev
+#ifdef ipsec_alloc_netdev
 static void ipsec_tunnel_netdev_setup(struct net_device *dev)
 {
 }
@@ -2108,9 +2108,9 @@ int ipsec_tunnel_createnum(int ifnum)
 		    ifnum);
 
 	sprintf(name, IPSEC_DEV_FORMAT, ifnum);
-#ifdef alloc_netdev
+#ifdef ipsec_alloc_netdev
 	dev_ipsec = alloc_netdev(sizeof(struct ipsecpriv), name,
-				 ipsec_tunnel_netdev_setup);
+				 NET_NAME_UNKNOWN, ipsec_tunnel_netdev_setup);
 #else
 	dev_ipsec = (struct net_device*)kmalloc(sizeof(struct net_device),
 						GFP_KERNEL);
@@ -2121,13 +2121,13 @@ int ipsec_tunnel_createnum(int ifnum)
 		       name);
 		return -ENOMEM;
 	}
-#ifndef alloc_netdev
+#ifndef ipsec_alloc_netdev
 	memset((caddr_t)dev_ipsec, 0, sizeof(struct net_device));
 	strncpy(dev_ipsec->name, name, sizeof(dev_ipsec->name));
 #ifdef PAUL_FIXME
 	dev_ipsec->next = NULL;
 #endif
-#endif  /* alloc_netdev */
+#endif  /* ipsec_alloc_netdev */
 #ifndef USE_NETDEV_OPS
 	dev_ipsec->init = &ipsec_tunnel_probe;
 #else
@@ -2196,10 +2196,10 @@ int ipsec_tunnel_deletenum(int vifnum)
 	KLIPS_PRINT(debug_tunnel, "Unregistering %s\n", dev_ipsec->name);
 	unregister_netdev(dev_ipsec);
 	KLIPS_PRINT(debug_tunnel, "Unregisted %s\n", dev_ipsec->name);
-#ifndef alloc_netdev
+#ifndef ipsec_alloc_netdev
 	kfree(dev_ipsec->priv);
 	dev_ipsec->priv = NULL;
-#endif  /* alloc_netdev */
+#endif  /* ipsec_alloc_netdev */
 
 	return 0;
 }
@@ -2239,10 +2239,10 @@ int ipsec_tunnel_cleanup_devices(void)
 			    dev_ipsec->name);
 		unregister_netdev(dev_ipsec);
 		KLIPS_PRINT(debug_tunnel, "Unregisted %s\n", dev_ipsec->name);
-#ifndef alloc_netdev
+#ifndef ipsec_alloc_netdev
 		kfree(dev_ipsec->priv);
 		dev_ipsec->priv = NULL;
-#endif          /* alloc_netdev */
+#endif          /* ipsec_alloc_netdev */
 	}
 
 #ifdef HAVE_UDP_ENCAP_CONVERT
_______________________________________________
Swan-dev mailing list
[email protected]
https://lists.libreswan.org/mailman/listinfo/swan-dev

Reply via email to