On Tue, Jan 30, 2018 at 3:40 PM, Greg Rose <gvrose8...@gmail.com> wrote: > An extended netlink ack has been added for 4.14 - add compat layer > changes so that it compiles for all kernels up to and including > 4.14. > > Signed-off-by: Greg Rose <gvrose8...@gmail.com> > --- > acinclude.m4 | 3 +++ > datapath/linux/compat/include/linux/netdevice.h | 15 ++++++++++++++- > datapath/vport-netdev.c | 9 ++++++++- > 3 files changed, 25 insertions(+), 2 deletions(-) > > diff --git a/acinclude.m4 b/acinclude.m4 > index c04c2c6..768c20c 100644 > --- a/acinclude.m4 > +++ b/acinclude.m4 > @@ -795,6 +795,9 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [ > [OVS_DEFINE([HAVE_LIST_IN_NF_HOOK_OPS])]) > OVS_GREP_IFELSE([$KSRC/include/uapi/linux/netfilter/nf_conntrack_common.h], > [IP_CT_UNTRACKED]) > + OVS_FIND_PARAM_IFELSE([$KSRC/include/linux/netdevice.h], > + [netdev_master_upper_dev_link], [extack], > + [OVS_DEFINE([HAVE_UPPER_DEV_LINK_EXTACK])]) > > if cmp -s datapath/linux/kcompat.h.new \ > datapath/linux/kcompat.h >/dev/null 2>&1; then > diff --git a/datapath/linux/compat/include/linux/netdevice.h > b/datapath/linux/compat/include/linux/netdevice.h > index 3c3cf42..c460332 100644 > --- a/datapath/linux/compat/include/linux/netdevice.h > +++ b/datapath/linux/compat/include/linux/netdevice.h > @@ -101,13 +101,26 @@ static inline bool netif_needs_gso(struct sk_buff *skb, > #ifndef HAVE_NETDEV_MASTER_UPPER_DEV_LINK_RH > static inline int rpl_netdev_master_upper_dev_link(struct net_device *dev, > struct net_device *upper_dev, > - void *upper_priv, void > *upper_info) > + void *upper_priv, > + void *upper_info, void *extack) > { > return netdev_master_upper_dev_link(dev, upper_dev); > } > #define netdev_master_upper_dev_link rpl_netdev_master_upper_dev_link > > #endif > +#else > +#ifndef HAVE_UPPER_DEV_LINK_EXTACK > +static inline int rpl_netdev_master_upper_dev_link(struct net_device *dev, > + struct net_device *upper_dev, > + void *upper_priv, > + void *upper_info, void *extack) > +{ > + return netdev_master_upper_dev_link(dev, upper_dev, upper_priv, > + upper_info); > +} > +#define netdev_master_upper_dev_link rpl_netdev_master_upper_dev_link > +#endif > #endif > > #if LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0) > diff --git a/datapath/vport-netdev.c b/datapath/vport-netdev.c > index 697c442..e2d8eaf 100644 > --- a/datapath/vport-netdev.c > +++ b/datapath/vport-netdev.c > @@ -112,8 +112,15 @@ struct vport *ovs_netdev_link(struct vport *vport, const > char *name) > } > > rtnl_lock(); > +#ifdef HAVE_NETDEV_MASTER_UPPER_DEV_LINK_RH > err = netdev_master_upper_dev_link(vport->dev, > - get_dpdev(vport->dp), NULL, NULL); > + get_dpdev(vport->dp), > + NULL, NULL); > +#else > + err = netdev_master_upper_dev_link(vport->dev, > + get_dpdev(vport->dp), > + NULL, NULL, NULL); > +#endif Since the parameters are pretty much the same, this (#ifdef) can be moved to compat code.
> if (err) > goto error_unlock; > > -- > 1.8.3.1 > > _______________________________________________ > dev mailing list > d...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev