[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Allow netback to be built as a module.



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 271cb04a4f2b74a7f7d3baa68868ef6f8c159525
# Parent  ead0b7fcad3a8868ad753c5592a096f5506542cf
Allow netback to be built as a module.

From: Jan Beulich

Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>

diff -r ead0b7fcad3a -r 271cb04a4f2b buildconfigs/linux-defconfig_xen0_x86_32
--- a/buildconfigs/linux-defconfig_xen0_x86_32  Tue Feb 28 17:56:00 2006
+++ b/buildconfigs/linux-defconfig_xen0_x86_32  Tue Feb 28 17:59:24 2006
@@ -1320,6 +1320,7 @@
 # CONFIG_XEN_BLKDEV_TAP_BE is not set
 CONFIG_XEN_NETDEV_BACKEND=y
 # CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set
+CONFIG_XEN_NETDEV_LOOPBACK=y
 # CONFIG_XEN_TPMDEV_BACKEND is not set
 CONFIG_XEN_BLKDEV_FRONTEND=y
 CONFIG_XEN_NETDEV_FRONTEND=y
diff -r ead0b7fcad3a -r 271cb04a4f2b buildconfigs/linux-defconfig_xen0_x86_64
--- a/buildconfigs/linux-defconfig_xen0_x86_64  Tue Feb 28 17:56:00 2006
+++ b/buildconfigs/linux-defconfig_xen0_x86_64  Tue Feb 28 17:59:24 2006
@@ -1244,6 +1244,7 @@
 # CONFIG_XEN_BLKDEV_TAP_BE is not set
 CONFIG_XEN_NETDEV_BACKEND=y
 # CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set
+CONFIG_XEN_NETDEV_LOOPBACK=y
 # CONFIG_XEN_TPMDEV_BACKEND is not set
 CONFIG_XEN_BLKDEV_FRONTEND=y
 CONFIG_XEN_NETDEV_FRONTEND=y
diff -r ead0b7fcad3a -r 271cb04a4f2b buildconfigs/linux-defconfig_xen_x86_32
--- a/buildconfigs/linux-defconfig_xen_x86_32   Tue Feb 28 17:56:00 2006
+++ b/buildconfigs/linux-defconfig_xen_x86_32   Tue Feb 28 17:59:24 2006
@@ -2986,6 +2986,7 @@
 # CONFIG_XEN_BLKDEV_TAP_BE is not set
 CONFIG_XEN_NETDEV_BACKEND=y
 # CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set
+CONFIG_XEN_NETDEV_LOOPBACK=y
 # CONFIG_XEN_TPMDEV_BACKEND is not set
 CONFIG_XEN_BLKDEV_FRONTEND=y
 CONFIG_XEN_NETDEV_FRONTEND=y
diff -r ead0b7fcad3a -r 271cb04a4f2b buildconfigs/linux-defconfig_xen_x86_64
--- a/buildconfigs/linux-defconfig_xen_x86_64   Tue Feb 28 17:56:00 2006
+++ b/buildconfigs/linux-defconfig_xen_x86_64   Tue Feb 28 17:59:24 2006
@@ -2656,6 +2656,7 @@
 # CONFIG_XEN_BLKDEV_TAP_BE is not set
 CONFIG_XEN_NETDEV_BACKEND=y
 # CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set
+CONFIG_XEN_NETDEV_LOOPBACK=y
 # CONFIG_XEN_TPMDEV_BACKEND is not set
 CONFIG_XEN_BLKDEV_FRONTEND=y
 CONFIG_XEN_NETDEV_FRONTEND=y
diff -r ead0b7fcad3a -r 271cb04a4f2b linux-2.6-xen-sparse/drivers/xen/Kconfig
--- a/linux-2.6-xen-sparse/drivers/xen/Kconfig  Tue Feb 28 17:56:00 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/Kconfig  Tue Feb 28 17:59:24 2006
@@ -89,7 +89,7 @@
           modified to use grant tables.
 
 config XEN_NETDEV_BACKEND
-       bool "Network-device backend driver"
+       tristate "Network-device backend driver"
        default y
        help
          The network-device backend driver allows the kernel to export its
@@ -109,6 +109,14 @@
          are unsure; or if you experience network hangs when this option is
          enabled; then you must say N here.
 
+config XEN_NETDEV_LOOPBACK
+       tristate "Network-device loopback driver"
+       depends on XEN_NETDEV_BACKEND
+       default y
+       help
+         A two-interface loopback device to emulate a local netfront-netback
+         connection.
+
 config XEN_TPMDEV_BACKEND
        bool "TPM-device backend driver"
        default n
diff -r ead0b7fcad3a -r 271cb04a4f2b 
linux-2.6-xen-sparse/drivers/xen/core/skbuff.c
--- a/linux-2.6-xen-sparse/drivers/xen/core/skbuff.c    Tue Feb 28 17:56:00 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/core/skbuff.c    Tue Feb 28 17:59:24 2006
@@ -16,6 +16,7 @@
 
 /* Referenced in netback.c. */
 /*static*/ kmem_cache_t *skbuff_cachep;
+EXPORT_SYMBOL(skbuff_cachep);
 
 #define MAX_SKBUFF_ORDER 4
 static kmem_cache_t *skbuff_order_cachep[MAX_SKBUFF_ORDER + 1];
diff -r ead0b7fcad3a -r 271cb04a4f2b 
linux-2.6-xen-sparse/drivers/xen/netback/Makefile
--- a/linux-2.6-xen-sparse/drivers/xen/netback/Makefile Tue Feb 28 17:56:00 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/netback/Makefile Tue Feb 28 17:59:24 2006
@@ -1,2 +1,5 @@
+obj-$(CONFIG_XEN_NETDEV_BACKEND) := netbk.o
+obj-$(CONFIG_XEN_NETDEV_LOOPBACK) += netloop.o
 
-obj-y  := netback.o xenbus.o interface.o loopback.o
+netbk-y   := netback.o xenbus.o interface.o
+netloop-y := loopback.o
diff -r ead0b7fcad3a -r 271cb04a4f2b 
linux-2.6-xen-sparse/drivers/xen/netback/loopback.c
--- a/linux-2.6-xen-sparse/drivers/xen/netback/loopback.c       Tue Feb 28 
17:56:00 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/netback/loopback.c       Tue Feb 28 
17:59:24 2006
@@ -178,6 +178,23 @@
        return err;
 }
 
+static void __init clean_loopback(int i)
+{
+       struct net_device *dev1, *dev2;
+       char dev_name[IFNAMSIZ];
+
+       sprintf(dev_name, "vif0.%d", i);
+       dev1 = dev_get_by_name(dev_name);
+       sprintf(dev_name, "veth%d", i);
+       dev2 = dev_get_by_name(dev_name);
+       if (dev1 && dev2) {
+               unregister_netdev(dev2);
+               unregister_netdev(dev1);
+               free_netdev(dev2);
+               free_netdev(dev1);
+       }
+}
+
 static int __init loopback_init(void)
 {
        int i, err = 0;
@@ -190,6 +207,18 @@
 }
 
 module_init(loopback_init);
+
+static void __exit loopback_exit(void)
+{
+       int i;
+
+       for (i = nloopbacks; i-- > 0; )
+               clean_loopback(i);
+}
+
+module_exit(loopback_exit);
+
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Local variables:
diff -r ead0b7fcad3a -r 271cb04a4f2b 
linux-2.6-xen-sparse/drivers/xen/netback/netback.c
--- a/linux-2.6-xen-sparse/drivers/xen/netback/netback.c        Tue Feb 28 
17:56:00 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/netback/netback.c        Tue Feb 28 
17:59:24 2006
@@ -809,6 +809,8 @@
                &netif_be_dbg);
 #endif
 
+       __unsafe(THIS_MODULE);
+
        return 0;
 }
 
@@ -819,6 +821,8 @@
 
 module_init(netback_init);
 module_exit(netback_cleanup);
+
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Local variables:

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.