a09b359dac
Recent Ubuntu kernel 3.13.0-30.54, although based on Linux kernel 3.13.11, already provides skb_set_hash() inline function, slightly different than the one provided by lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h Ubuntu kernel 3.13.0-30.54 provides: * i40e/i40evf: i40e implementation for skb_set_hash - https://bugs.launchpad.net/bugs/1328037 - http://changelogs.ubuntu.com/changelogs/pool/main/l/linux/linux_3.13.0-30.54/changelog As a result, the implementation provided by kcompat.h must be skipped. It is not appropriate to test whether LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,11) because previous Ubuntu kernel 3.13.0-29.53, already based on 3.13.11, needs to get the implementation provided by kcompat.h So the full Ubuntu kernel version numbering scheme must be tested: <base kernel version>-<ABI number>.<upload number>-<flavour> See "What does a specific Ubuntu kernel version number mean?" and "How can we determine the version of the running kernel?" at: https://wiki.ubuntu.com/Kernel/FAQ Unlike RHEL_RELEASE_CODE, there is no such UBUNTU_RELEASE_CODE available out of the box, so it needs to be crafted from the Makefile Similarly, UBUNTU_KERNEL_CODE is generated with ABI and upload numbers. `lsb_release -si` is first used to check whether we are running Ubuntu `lsb_release -sr` provides release number 14.04, then converted to integer 1404 /proc/version_signature is parsed to get base kernel version, ABI and upload numbers, and flavour is dropped UBUNTU_KERNEL_CODE is indirectly defined using the UBUNTU_KERNEL_VERSION macro, which in turn is defined in kcompat.h This makes a single place to define the Ubuntu kernel version numbering scheme, which is slightly different than the usual "shift by 8" scheme: ABI numbers can be big (see: https://wiki.ubuntu.com/Kernel/Dev/TopicBranches), so 16-bits have been reserved for them. Finally, the implementaion of skb_set_hash is skipped in kcompat.h if we are running Ubuntu 14.04 with an Ubuntu kernel >= 3.13.0-30.54 Signed-off-by: Patrice Buriez <patrice.buriez@intel.com> [Thomas: simpler form, use tr instead of subst] Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com> |
||
---|---|---|
.. | ||
librte_acl | ||
librte_cfgfile | ||
librte_cmdline | ||
librte_distributor | ||
librte_eal | ||
librte_ether | ||
librte_hash | ||
librte_ip_frag | ||
librte_ivshmem | ||
librte_kni | ||
librte_kvargs | ||
librte_lpm | ||
librte_malloc | ||
librte_mbuf | ||
librte_mempool | ||
librte_meter | ||
librte_net | ||
librte_pipeline | ||
librte_pmd_bond | ||
librte_pmd_e1000 | ||
librte_pmd_i40e | ||
librte_pmd_ixgbe | ||
librte_pmd_pcap | ||
librte_pmd_ring | ||
librte_pmd_virtio | ||
librte_pmd_vmxnet3 | ||
librte_pmd_xenvirt | ||
librte_port | ||
librte_power | ||
librte_ring | ||
librte_sched | ||
librte_table | ||
librte_timer | ||
Makefile |