From: Ben Pfaff Date: Sat, 18 May 2013 15:27:20 +0000 (-0700) Subject: netdev-dummy: Remove FreeBSD dependency. X-Git-Tag: sliver-openvswitch-1.10.90-3~6^2~243 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=7c54c27f204ac9c7870ffab81aeba4d02336553a;p=sliver-openvswitch.git netdev-dummy: Remove FreeBSD dependency. There's no particular reason that netdev_dummy_register() has to care about the particular OS, except that the tests like to use the special Linux-only tunnel vport types. But that can be done better, I think, by just always registering them from netdev_dummy_register() and making that function idempotent, so that calling it twice under Linux has no additional effect. This commit implements that solution. Signed-off-by: Ben Pfaff Acked-by: Ed Maste --- diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c index 908fef242..14b286bb9 100644 --- a/lib/netdev-dummy.c +++ b/lib/netdev-dummy.c @@ -36,12 +36,6 @@ VLOG_DEFINE_THIS_MODULE(netdev_dummy); -#ifdef __FreeBSD__ -#define FREE_BSD 1 -#else -#define FREE_BSD 0 -#endif - struct netdev_dummy { struct netdev up; uint8_t hwaddr[ETH_ADDR_LEN]; @@ -553,7 +547,5 @@ netdev_dummy_register(bool override) } netdev_register_provider(&dummy_class); - if (FREE_BSD) { - netdev_vport_tunnel_register(); - } + netdev_vport_tunnel_register(); } diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c index 38fc996b2..6eee8a767 100644 --- a/lib/netdev-vport.c +++ b/lib/netdev-vport.c @@ -685,11 +685,15 @@ netdev_vport_tunnel_register(void) TUNNEL_CLASS("vxlan", "vxlan_system"), TUNNEL_CLASS("lisp", "lisp_system") }; + static bool inited; int i; - for (i = 0; i < ARRAY_SIZE(vport_classes); i++) { - netdev_register_provider(&vport_classes[i].netdev_class); + if (!inited) { + inited = true; + for (i = 0; i < ARRAY_SIZE(vport_classes); i++) { + netdev_register_provider(&vport_classes[i].netdev_class); + } } }