|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH] scripts, patches: remove workaround, skip brtcl deli
Attached is a patch that needs more testing, but I've not been able to
recreate the race-condition with this patch applied. It does the
following:
1. Remove workaround patch
2. Update scripts/network-bridge and scripts/vif-bridge to not call
brctl delif
When a domU is shutdown/destroyed and the netif is destroyed, the
notify_call_chain triggered from unregister_netdevice() will trigger the
bridge event handler and which will call the proper code to remove the
device from the bridge.
I can't see any reason why brtcl delif should be called when taking out
a domain if the call chain will delete the interface from the bridge
when the vif is destroyed automatically.
--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253 T/L: 678-9253
ryanh@xxxxxxxxxx
diffstat output:
a/patches/linux-2.6.12/workaround_double_br_del_if.patch | 11 -----------
tools/examples/network-bridge | 3 ---
tools/examples/vif-bridge | 6 ++++--
3 files changed, 4 insertions(+), 16 deletions(-)
Signed-off-by: Ryan Harper <ryanh@xxxxxxxxxx>
---
diff -r 188c782fa9bb tools/examples/vif-bridge
--- a/tools/examples/vif-bridge Fri Aug 19 13:05:31 2005
+++ b/tools/examples/vif-bridge Fri Aug 19 13:31:04 2005
@@ -74,8 +74,10 @@
exit
fi
-# Add/remove vif to/from bridge.
-brctl ${brcmd} ${bridge} ${vif}
+# Add vif to bridge. vifs are auto-removed from bridge
+if [ "${brcmd}" == "addif" ] ; then
+ brctl ${brcmd} ${bridge} ${vif}
+fi
ifconfig ${vif} $OP
if [ ${ip} ] ; then
diff -r 188c782fa9bb tools/examples/network-bridge
--- a/tools/examples/network-bridge Fri Aug 19 13:05:31 2005
+++ b/tools/examples/network-bridge Fri Aug 19 13:31:04 2005
@@ -222,10 +222,7 @@
return
fi
- brctl delif ${bridge} ${netdev}
-
if ifconfig veth0 2>/dev/null | grep -q veth0 ; then
- brctl delif ${bridge} vif0.0
ifconfig vif0.0 down
mac=`ifconfig veth0 | grep HWadd | sed -e
's/.*\(..:..:..:..:..:..\).*/\1/'`
ifconfig ${netdev} down
diff -r 188c782fa9bb patches/linux-2.6.12/workaround_double_br_del_if.patch
--- a/patches/linux-2.6.12/workaround_double_br_del_if.patch Fri Aug 19
13:05:31 2005
+++ /dev/null Fri Aug 19 13:31:04 2005
@@ -1,11 +0,0 @@
---- linux-2.6.12/net/bridge/br_if.c 2005-06-17 14:48:29.000000000 -0500
-+++ linux-2.6.12-xen0-smp/net/bridge/br_if.c 2005-08-18 15:17:27.302615846
-0500
-@@ -382,7 +382,7 @@
- {
- struct net_bridge_port *p = dev->br_port;
-
-- if (!p || p->br != br)
-+ if (!p || p->br != br || p->state == BR_STATE_DISABLED)
- return -EINVAL;
-
- br_sysfs_removeif(p);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|