xenserver: Remove Linux bridge on startup if no bridges exist.
authorPatrick Mullaney <pm.mullaney@gmail.com>
Wed, 15 Dec 2010 19:07:10 +0000 (11:07 -0800)
committerBen Pfaff <blp@nicira.com>
Fri, 7 Jan 2011 18:31:30 +0000 (10:31 -0800)
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>
xenserver/etc_init.d_openvswitch

index fc89a3e919ce8b65dd5fcf509c8954cdd44114e7..b87d5ae10c39cd31b84346d56cc47e9480ae7e76 100755 (executable)
@@ -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