From: Patrick Mullaney <pm.mullaney@gmail.com>
Date: Wed, 15 Dec 2010 19:07:10 +0000 (-0800)
Subject: xenserver: Remove Linux bridge on startup if no bridges exist.
X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8d2662a5791cd2aaa230ed829e018cb4b059fee7;p=openvswitch

xenserver: Remove Linux bridge on startup if no bridges exist.

Otherwise, if the bridge module is loaded but no bridges exist, on all
but the most recent Linux kernels this prevents the Open vSwitch kernel
module from loading.

Signed-off-by: Ben Pfaff <blp@nicira.com>
---

diff --git a/xenserver/etc_init.d_openvswitch b/xenserver/etc_init.d_openvswitch
index fc89a3e9..b87d5ae1 100755
--- a/xenserver/etc_init.d_openvswitch
+++ b/xenserver/etc_init.d_openvswitch
@@ -181,6 +181,14 @@ function remove_all_dp {
 }
 
 function insert_modules_if_required {
+    if test -e /sys/module/bridge; then
+	bridges=`echo /sys/class/net/*/bridge | sed 's,/sys/class/net/,,g;s,/bridge,,g'`
+	if test "$bridges" != "*"; then
+            log_warning_msg "not removing bridge module because bridges exist ($bridges)"
+        else
+            action "removing bridge module" rmmod bridge
+        fi
+    fi
     if ! lsmod | grep -q "openvswitch_mod"; then
         action "Inserting llc module" modprobe llc
         action "Inserting openvswitch module" modprobe openvswitch_mod