Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf tools: Move sh barrier.h stuff to tools/arch/sh/include/asm/barrier.h

We will need it for atomic.h, so move it from the ad-hoc tools/perf/
place to a tools/ subset of the kernel arch/ hierarchy.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-6xqb97k782wqp1r3v6jqayki@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

+35 -9
+32
tools/arch/sh/include/asm/barrier.h
··· 1 + /* 2 + * Copied from the kernel sources: 3 + * 4 + * Copyright (C) 1999, 2000 Niibe Yutaka & Kaz Kojima 5 + * Copyright (C) 2002 Paul Mundt 6 + */ 7 + #ifndef __TOOLS_LINUX_ASM_SH_BARRIER_H 8 + #define __TOOLS_LINUX_ASM_SH_BARRIER_H 9 + 10 + /* 11 + * A brief note on ctrl_barrier(), the control register write barrier. 12 + * 13 + * Legacy SH cores typically require a sequence of 8 nops after 14 + * modification of a control register in order for the changes to take 15 + * effect. On newer cores (like the sh4a and sh5) this is accomplished 16 + * with icbi. 17 + * 18 + * Also note that on sh4a in the icbi case we can forego a synco for the 19 + * write barrier, as it's not necessary for control registers. 20 + * 21 + * Historically we have only done this type of barrier for the MMUCR, but 22 + * it's also necessary for the CCR, so we make it generic here instead. 23 + */ 24 + #if defined(__SH4A__) || defined(__SH5__) 25 + #define mb() __asm__ __volatile__ ("synco": : :"memory") 26 + #define rmb() mb() 27 + #define wmb() mb() 28 + #endif 29 + 30 + #include <asm-generic/barrier.h> 31 + 32 + #endif /* __TOOLS_LINUX_ASM_SH_BARRIER_H */
+2
tools/include/asm/barrier.h
··· 4 4 #include "../../arch/powerpc/include/asm/barrier.h" 5 5 #elif defined(__s390__) 6 6 #include "../../arch/s390/include/asm/barrier.h" 7 + #elif defined(__sh__) 8 + #include "../../arch/sh/include/asm/barrier.h" 7 9 #endif
+1
tools/perf/MANIFEST
··· 1 1 tools/perf 2 2 tools/arch/powerpc/include/asm/barrier.h 3 3 tools/arch/s390/include/asm/barrier.h 4 + tools/arch/sh/include/asm/barrier.h 4 5 tools/arch/x86/include/asm/barrier.h 5 6 tools/scripts 6 7 tools/build
-9
tools/perf/perf-sys.h
··· 46 46 #endif 47 47 48 48 #ifdef __sh__ 49 - #if defined(__SH4A__) || defined(__SH5__) 50 - # define mb() asm volatile("synco" ::: "memory") 51 - # define wmb() asm volatile("synco" ::: "memory") 52 - # define rmb() asm volatile("synco" ::: "memory") 53 - #else 54 - # define mb() asm volatile("" ::: "memory") 55 - # define wmb() asm volatile("" ::: "memory") 56 - # define rmb() asm volatile("" ::: "memory") 57 - #endif 58 49 #define CPUINFO_PROC {"cpu type"} 59 50 #endif 60 51