[ovs-dev] [PATCH v2] datapath: Check for Centos 6.4 backports.

Denis Iskandarov d.iskandarov at gmail.com
Wed Mar 13 09:33:51 UTC 2013


This time success! Thanks!
Created rpm with kernel ABI warning. (included below)
Now will test overal stability of scheme based on ovs in system.
Hope won't get this strange error again:
http://openvswitch.org/pipermail/discuss/2012-October/008322.html
Hope this patch will be included in next minor release for 1.9 (or maybe
even 1.10)


********************************************************************************
*********************** KERNEL ABI COMPATIBILITY WARNING
***********************
********************************************************************************
The kernel ABI reference files (provided by kabi-whitelists) were not found.
No compatibility check was performed. Please install the kABI reference
files
and rebuild if you would like to verify compatibility with kernel ABI.

Finding  Requires: /usr/lib/rpm/redhat/find-requires
Provides: kernel-modules >= 2.6.32-358.0.1.el6.x86_64 openvswitch-kmod =
1.9.0-1.el6 ksym(br_should_route_hook) = 0x03784d61 ksym(ovs_dp_ioctl_hook)
= 0x3107e56a
Requires(interp): /bin/sh /bin/sh /bin/sh
Requires(rpmlib): rpmlib(VersionedDependencies) <= 3.0.3-1
rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
Requires(post): /sbin/depmod /bin/sh
Requires(preun): /bin/sh
Requires(postun): /sbin/depmod /bin/sh
Requires: kernel(__alloc_skb) = 0x25421969 kernel(__dev_get_by_index) =
0x6a6d551b kernel(__stack_chk_fail) = 0xf0fdf6cb kernel(_spin_lock_irqsave)
= 0x712aa29b kernel(_spin_unlock_irqrestore) = 0x4b07e779
kernel(brioctl_set) = 0x9af577f9 kernel(capable) = 0x7dceceac
kernel(complete) = 0xe456bd3a kernel(copy_from_user) = 0x3302b500
kernel(copy_to_user) = 0x85f8a266 kernel(genl_register_family_with_ops) =
0x17c50208 kernel(genl_register_mc_group) = 0x20385c58
kernel(genl_unregister_family) = 0x49439411 kernel(kfree_skb) = 0x3d75cbcf
kernel(mcount) = 0xb4390f9a kernel(memset) = 0xde0bdcff
kernel(module_layout) = 0x14522340 kernel(mutex_lock) = 0xfee8a795
kernel(mutex_unlock) = 0x03758301 kernel(netlink_broadcast) = 0x00312919
kernel(netlink_unicast) = 0x27418d14 kernel(nla_parse) = 0xa58b6804
kernel(nla_put) = 0x37587aff kernel(nlmsg_notify) = 0x888d0b57
kernel(printk) = 0xea147363 kernel(random32) = 0xb86e4ab9 kernel(rtnl_lock)
= 0xc7a4fbed kernel(rtnl_unlock) = 0x6e720ff2 kernel(skb_clone) =
0xd87b0b1f kernel(skb_put) = 0x207b7e2c kernel(strlen) = 0x25ec1b28
kernel(wait_for_completion_timeout) = 0x3e1f073d kernel(warn_slowpath_null)
= 0x16305289 ksym(ovs_dp_ioctl_hook) = 0x3107e56a
Checking for unpackaged file(s): /usr/lib/rpm/check-files
/root/rpmbuild/BUILDROOT/openvswitch-kmod-1.9.0-1.el6.x86_64
warning: Could not canonicalize hostname: ovs-cent64.office.dev
Wrote: /root/rpmbuild/RPMS/x86_64/kmod-openvswitch-1.9.0-1.el6.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.Z8TE18


On Wed, Mar 13, 2013 at 1:19 AM, Jesse Gross <jesse at nicira.com> wrote:

> Centos 6.4 backported a number of additional functions so our existing
> versions started causing conflicts.
>
> Reported-by: Denis Iskandarov <d.iskandarov at gmail.com>
> Signed-off-by: Jesse Gross <jesse at nicira.com>
> ---
> v2: Check for eth_hw_addr_random and vlan_set_encap_proto as well.
> ---
>  acinclude.m4                                      |    5 +++++
>  datapath/linux/compat/include/linux/etherdevice.h |    2 ++
>  datapath/linux/compat/include/linux/if_vlan.h     |    2 +-
>  datapath/linux/compat/include/linux/skbuff.h      |    2 +-
>  4 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/acinclude.m4 b/acinclude.m4
> index 02dc952..f0610c9 100644
> --- a/acinclude.m4
> +++ b/acinclude.m4
> @@ -215,6 +215,10 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
>
>    OVS_GREP_IFELSE([$KSRC/include/linux/err.h], [ERR_CAST])
>
> +  OVS_GREP_IFELSE([$KSRC/include/linux/etherdevice.h],
> [eth_hw_addr_random])
> +
> +  OVS_GREP_IFELSE([$KSRC/include/linux/if_vlan.h], [vlan_set_encap_proto])
> +
>    OVS_GREP_IFELSE([$KSRC/include/linux/in.h], [ipv4_is_multicast])
>
>    OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [dev_disable_lro])
> @@ -249,6 +253,7 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
>                    [OVS_DEFINE([HAVE_SKB_WARN_LRO])])
>    OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [consume_skb])
>    OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [skb_frag_page])
> +  OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [skb_reset_mac_len])
>
>    OVS_GREP_IFELSE([$KSRC/include/linux/string.h], [kmemdup], [],
>                    [OVS_GREP_IFELSE([$KSRC/include/linux/slab.h],
> [kmemdup])])
> diff --git a/datapath/linux/compat/include/linux/etherdevice.h
> b/datapath/linux/compat/include/linux/etherdevice.h
> index b2c3353..eb7123e 100644
> --- a/datapath/linux/compat/include/linux/etherdevice.h
> +++ b/datapath/linux/compat/include/linux/etherdevice.h
> @@ -4,6 +4,7 @@
>  #include <linux/version.h>
>  #include_next <linux/etherdevice.h>
>
> +#ifndef HAVE_ETH_HW_ADDR_RANDOM
>  #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)
>  static inline void eth_hw_addr_random(struct net_device *dev)
>  {
> @@ -15,6 +16,7 @@ static inline void eth_hw_addr_random(struct net_device
> *dev)
>         dev_hw_addr_random(dev, dev->dev_addr);
>  }
>  #endif
> +#endif
>
>  #if LINUX_VERSION_CODE < KERNEL_VERSION(3,6,0)
>  #define eth_mac_addr rpl_eth_mac_addr
> diff --git a/datapath/linux/compat/include/linux/if_vlan.h
> b/datapath/linux/compat/include/linux/if_vlan.h
> index dc4b15e..b8b1961 100644
> --- a/datapath/linux/compat/include/linux/if_vlan.h
> +++ b/datapath/linux/compat/include/linux/if_vlan.h
> @@ -55,7 +55,7 @@ static inline struct sk_buff *__vlan_put_tag(struct
> sk_buff *skb, u16 vlan_tci)
>  #define VLAN_TAG_PRESENT       VLAN_CFI_MASK
>  #endif
>
> -#if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)
> +#ifndef HAVE_VLAN_SET_ENCAP_PROTO
>  static inline void vlan_set_encap_proto(struct sk_buff *skb, struct
> vlan_hdr *vhdr)
>  {
>         __be16 proto;
> diff --git a/datapath/linux/compat/include/linux/skbuff.h
> b/datapath/linux/compat/include/linux/skbuff.h
> index 7fbe9d8..d485b39 100644
> --- a/datapath/linux/compat/include/linux/skbuff.h
> +++ b/datapath/linux/compat/include/linux/skbuff.h
> @@ -245,7 +245,7 @@ static inline struct page *skb_frag_page(const
> skb_frag_t *frag)
>  }
>  #endif
>
> -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,40)
> +#ifndef HAVE_SKB_RESET_MAC_LEN
>  static inline void skb_reset_mac_len(struct sk_buff *skb)
>  {
>         skb->mac_len = skb->network_header - skb->mac_header;
> --
> 1.7.10.4
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-dev/attachments/20130313/3e09038e/attachment-0003.html>


More information about the dev mailing list