From fa40777195548ade99d22b4f8ec9a795be682504 Mon Sep 17 00:00:00 2001 From: Pravin B Shelar Date: Mon, 12 Aug 2013 10:12:27 -0700 Subject: [PATCH] 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 --- datapath/linux/compat/include/linux/netdevice.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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 -- 2.47.0