[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] scripts, patches: remove workaround, skip brtcl delif
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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |