On 8/29/2017 4:06 PM, Nirmoy Das wrote: > compilation error: > build/lib/librte_eal/linuxapp/kni/kni_net.c:215:5: error: > ‘struct net_device’ has no member named ‘trans_start’ > dev->trans_start = jiffies; > > Signed-off-by: Nirmoy Das <n...@suse.de> > --- > lib/librte_eal/linuxapp/kni/compat.h | 32 +++++++++++++++++++++++++++++++- > 1 file changed, 31 insertions(+), 1 deletion(-) > > diff --git a/lib/librte_eal/linuxapp/kni/compat.h > b/lib/librte_eal/linuxapp/kni/compat.h > index 6a1587b4e..19f8e96ce 100644 > --- a/lib/librte_eal/linuxapp/kni/compat.h > +++ b/lib/librte_eal/linuxapp/kni/compat.h > @@ -8,6 +8,34 @@ > #define RHEL_RELEASE_VERSION(a, b) (((a) << 8) + (b)) > #endif > > +/* SuSE version macro is the same as Linux kernel version */ > +#ifndef SLE_VERSION > +#define SLE_VERSION(a, b, c) KERNEL_VERSION(a, b, c) > +#endif > +#ifdef CONFIG_SUSE_KERNEL > +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 57)) > +/* SLES12SP3 is at least 4.4.57+ based */ > +#define SLE_VERSION_CODE SLE_VERSION(12, 3, 0)
Just to double check, is there a macro set in SUSE that we can use here, instead of defining here ourselves, like RHEL_RELEASE_CODE? > +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 28)) > +/* SLES12 is at least 3.12.28+ based */ > +#define SLE_VERSION_CODE SLE_VERSION(12, 0, 0) > +#elif ((LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 61)) && \ > + (LINUX_VERSION_CODE < KERNEL_VERSION(3, 1, 0))) This line gives following checkpatch warning: WARNING:LEADING_SPACE: please, no spaces at the start of a line > +/* SLES11 SP3 is at least 3.0.61+ based */ > +#define SLE_VERSION_CODE SLE_VERSION(11, 3, 0) > +#elif (LINUX_VERSION_CODE == KERNEL_VERSION(2, 6, 32)) > +/* SLES11 SP1 is 2.6.32 based */ > +#define SLE_VERSION_CODE SLE_VERSION(11, 1, 0) > +#elif (LINUX_VERSION_CODE == KERNEL_VERSION(2, 6, 27)) > +/* SLES11 GA is 2.6.27 based */ > +#define SLE_VERSION_CODE SLE_VERSION(11, 0, 0) > +#endif /* LINUX_VERSION_CODE == KERNEL_VERSION(x,y,z) */ > +#endif /* CONFIG_SUSE_KERNEL */ > +#ifndef SLE_VERSION_CODE > +#define SLE_VERSION_CODE 0 [1] see below. > +#endif /* SLE_VERSION_CODE */ > + > + > #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 39) && \ > (!(defined(RHEL_RELEASE_CODE) && \ > RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6, 4))) > @@ -55,7 +83,9 @@ > > #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0) || \ > (defined(RHEL_RELEASE_CODE) && \ > - RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7, 4)) > + RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7, 4)) || \ > + (defined(SLE_VERSION_CODE) && \ defined check is not required, since SLE_VERSION_CODE always defined [1]. It can be either: a) (SLE_VERSION_CODE && SLE_VERSION_CODE == SLE_VERSION(12, 3, 0)) or directly check: b) (SLE_VERSION_CODE == SLE_VERSION(12, 3, 0)) > + SLE_VERSION_CODE == SLE_VERSION(12, 3, 0)) > #define HAVE_TRANS_START_HELPER > #endif > >