From: Pravin B Shelar Date: Mon, 12 Aug 2013 17:12:27 +0000 (-0700) Subject: datapath: Do not set dev->master for XEN. X-Git-Tag: sliver-openvswitch-2.0.90-1~27^2~25 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=fa40777195548ade99d22b4f8ec9a795be682504;p=sliver-openvswitch.git datapath: Do not set dev->master for XEN. XEN dom0 networking assumes dev->master is bond device and it tries to access bond private structure from dev->master ptr on receive path. This causes panic. Following patch removes compat code that is setting master device. Signed-off-by: Pravin B Shelar Acked-by: Jesse Gross Bug #18920 --- diff --git a/datapath/linux/compat/include/linux/netdevice.h b/datapath/linux/compat/include/linux/netdevice.h index 3f66d3a32..f62bd6de0 100644 --- a/datapath/linux/compat/include/linux/netdevice.h +++ b/datapath/linux/compat/include/linux/netdevice.h @@ -190,16 +190,21 @@ static inline struct sk_buff *__skb_gso_segment(struct sk_buff *skb, #endif #if LINUX_VERSION_CODE < KERNEL_VERSION(3,9,0) + +/* XEN dom0 networking assumes dev->master is bond device + * and it tries to access bond private structure from dev->master + * ptr on receive path. This causes panic. Therefore it is better + * not to backport this API. + **/ static inline int netdev_master_upper_dev_link(struct net_device *dev, struct net_device *upper_dev) { - return netdev_set_master(dev, upper_dev); + return 0; } static inline void netdev_upper_dev_unlink(struct net_device *dev, struct net_device *upper_dev) { - netdev_set_master(dev, NULL); } #endif