Skip to content

Commit

Permalink
datapath: Add support for kernel 4.5
Browse files Browse the repository at this point in the history
Signed-off-by: Pravin B Shelar <[email protected]>
Acked-by: Jesse Gross <[email protected]>
  • Loading branch information
pshelar committed Jul 19, 2016
1 parent 247447f commit 7efb1e0
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 22 deletions.
7 changes: 5 additions & 2 deletions acinclude.m4
Original file line number Diff line number Diff line change
Expand Up @@ -134,10 +134,10 @@ AC_DEFUN([OVS_CHECK_LINUX], [
AC_MSG_RESULT([$kversion])
if test "$version" -ge 4; then
if test "$version" = 4 && test "$patchlevel" -le 4; then
if test "$version" = 4 && test "$patchlevel" -le 5; then
: # Linux 4.x
else
AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 4.4.x is not supported (please refer to the FAQ for advice)])
AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 4.5.x is not supported (please refer to the FAQ for advice)])
fi
elif test "$version" = 3 && test "$patchlevel" -ge 10; then
: # Linux 3.x
Expand Down Expand Up @@ -475,6 +475,9 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
[OVS_DEFINE([HAVE_UDP_OFFLOAD_ARG_UOFF])])
OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [gro_remcsum])
OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [IFF_PHONY_HEADROOM])
OVS_FIND_PARAM_IFELSE([$KSRC/include/linux/netdevice.h],
[netdev_master_upper_dev_link], [upper_priv],
[OVS_DEFINE([HAVE_NETDEV_MASTER_UPPER_DEV_LINK_PRIV])])
OVS_GREP_IFELSE([$KSRC/include/linux/netfilter.h], [nf_hook_state])
OVS_GREP_IFELSE([$KSRC/include/linux/netfilter.h], [nf_register_net_hook])
Expand Down
25 changes: 6 additions & 19 deletions datapath/linux/compat/include/linux/netdevice.h
Original file line number Diff line number Diff line change
Expand Up @@ -105,28 +105,15 @@ static inline bool netif_needs_gso(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 0;
}

static inline void netdev_upper_dev_unlink(struct net_device *dev,
struct net_device *upper_dev)
#ifndef HAVE_NETDEV_MASTER_UPPER_DEV_LINK_PRIV
static inline int rpl_netdev_master_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev,
void *upper_priv, void *upper_info)
{
return netdev_master_upper_dev_link(dev, upper_dev);
}
#define netdev_master_upper_dev_link rpl_netdev_master_upper_dev_link

static inline struct net_device *netdev_master_upper_dev_get(struct net_device *dev)
{
return NULL;
}
#endif

#if LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0)
Expand Down
2 changes: 1 addition & 1 deletion datapath/vport-netdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ struct vport *ovs_netdev_link(struct vport *vport, const char *name)

rtnl_lock();
err = netdev_master_upper_dev_link(vport->dev,
get_dpdev(vport->dp));
get_dpdev(vport->dp), NULL, NULL);
if (err)
goto error_unlock;

Expand Down

0 comments on commit 7efb1e0

Please sign in to comment.