On Fri, Sep 12, 2014 at 12:18 PM, Andy Zhou <az...@nicira.com> wrote: > Yes, older distribution kernels may not follow the upstream kernel > pattern. For example, centos-6.5-linux-2.6.32-431. > ok. Acked-by: Pravin B Shelar <pshe...@nicira.com>
> On Thu, Sep 11, 2014 at 6:23 PM, Pravin Shelar <pshe...@nicira.com> wrote: >> On Wed, Sep 10, 2014 at 3:58 PM, Andy Zhou <az...@nicira.com> wrote: >>> Current autoconfig detection logic for HAVE_PER_CPU_PTR is not robust. >>> Depends on linux kernel version, the definition can be in either >>> linux/percpu.h or asm/percpu.h >>> >> I could not find kernel with this_cpu_ptr () definition in >> linux/percpu.h, is it distribution kernel? >> >>> Turns out it is simpler and safer to handle missing percpu.h >>> definitions in linux/percpu.h rather than asm/percpu.h. With this >>> change, there is no need for the autoconfig detection logic above. >>> >>> Signed-off-by: Andy Zhou <az...@nicira.com> >>> --- >>> acinclude.m4 | 2 -- >>> datapath/linux/Modules.mk | 1 - >>> datapath/linux/compat/include/asm/percpu.h | 10 ---------- >>> datapath/linux/compat/include/linux/percpu.h | 4 ++++ >>> 4 files changed, 4 insertions(+), 13 deletions(-) >>> delete mode 100644 datapath/linux/compat/include/asm/percpu.h >>> >>> diff --git a/acinclude.m4 b/acinclude.m4 >>> index b0794d2..ae0f8d8 100644 >>> --- a/acinclude.m4 >>> +++ b/acinclude.m4 >>> @@ -359,8 +359,6 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [ >>> OVS_GREP_IFELSE([$KSRC/include/linux/if_vlan.h], [ADD_ALL_VLANS_CMD], >>> [OVS_DEFINE([HAVE_VLAN_BUG_WORKAROUND])]) >>> >>> - OVS_GREP_IFELSE([$KSRC/include/linux/percpu.h], [this_cpu_ptr]) >>> - >>> OVS_GREP_IFELSE([$KSRC/include/linux/u64_stats_sync.h], >>> [u64_stats_fetch_begin_irq]) >>> >>> OVS_GREP_IFELSE([$KSRC/include/linux/openvswitch.h], >>> [openvswitch_handle_frame_hook], >>> diff --git a/datapath/linux/Modules.mk b/datapath/linux/Modules.mk >>> index 00922ed..f7c64e2 100644 >>> --- a/datapath/linux/Modules.mk >>> +++ b/datapath/linux/Modules.mk >>> @@ -18,7 +18,6 @@ openvswitch_sources += \ >>> openvswitch_headers += \ >>> linux/compat/gso.h \ >>> linux/compat/include/asm/hash.h \ >>> - linux/compat/include/asm/percpu.h \ >>> linux/compat/include/linux/percpu.h \ >>> linux/compat/include/linux/bug.h \ >>> linux/compat/include/linux/compiler.h \ >>> diff --git a/datapath/linux/compat/include/asm/percpu.h >>> b/datapath/linux/compat/include/asm/percpu.h >>> deleted file mode 100644 >>> index 65bce08..0000000 >>> --- a/datapath/linux/compat/include/asm/percpu.h >>> +++ /dev/null >>> @@ -1,10 +0,0 @@ >>> -#ifndef __ASM_PERCPU_WRAPPER_H >>> -#define __ASM_PERCPU_WRAPPER_H 1 >>> - >>> -#include_next <asm/percpu.h> >>> - >>> -#if !defined this_cpu_ptr && !defined HAVE_THIS_CPU_PTR >>> -#define this_cpu_ptr(ptr) per_cpu_ptr(ptr, smp_processor_id()) >>> -#endif >>> - >>> -#endif >>> diff --git a/datapath/linux/compat/include/linux/percpu.h >>> b/datapath/linux/compat/include/linux/percpu.h >>> index 9bd6801..e0941f7 100644 >>> --- a/datapath/linux/compat/include/linux/percpu.h >>> +++ b/datapath/linux/compat/include/linux/percpu.h >>> @@ -3,6 +3,10 @@ >>> >>> #include_next <linux/percpu.h> >>> >>> +#if !defined this_cpu_ptr >>> +#define this_cpu_ptr(ptr) per_cpu_ptr(ptr, smp_processor_id()) >>> +#endif >>> + >>> #if !defined this_cpu_read >>> #define this_cpu_read(ptr) percpu_read(ptr) >>> #endif >>> -- >>> 1.9.1 >>> >>> _______________________________________________ >>> dev mailing list >>> dev@openvswitch.org >>> http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev