From: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org> To: Steven Rostedt <rostedt@goodmis.org>, Ingo Molnar <mingo@redhat.com>, Laura Abbott <labbott@redhat.com>, Kees Cook <keescook@chromium.org>, Anton Vorontsov <anton@enomsg.org>, Rob Herring <robh+dt@kernel.org>, devicetree@vger.kernel.org, Colin Cross <ccross@android.com>, Jason Baron <jbaron@akamai.com>, Tony Luck <tony.luck@intel.com>, Arnd Bergmann <arnd@arndb.de>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will.deacon@arm.com>, Joel Fernandes <joel@joelfernandes.org>, Masami Hiramatsu <mhiramat@kernel.org>, Joe Perches <joe@perches.com>, Jim Cromie <jim.cromie@gmail.com> Cc: Rajendra Nayak <rnayak@codeaurora.org>, Vivek Gautam <vivek.gautam@codeaurora.org>, Sibi Sankar <sibis@codeaurora.org>, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Ingo Molnar <mingo@kernel.org>, Tom Zanussi <tom.zanussi@linux.intel.com>, Prasad Sodagudi <psodagud@codeaurora.org>, tsoni@codeaurora.org, Bryan Huntsman <bryanh@codeaurora.org>, Tingwei Zhang <tingwei@codeaurora.org>, Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org> Subject: [PATCH 5/6] arm64/io: Add header for instrumentation of io operations Date: Sun, 9 Sep 2018 01:57:06 +0530 [thread overview] Message-ID: <bb322d763aa6c58f036e5209a481c769be92ab9b.1536430404.git.saiprakash.ranjan@codeaurora.org> (raw) In-Reply-To: <cover.1536430404.git.saiprakash.ranjan@codeaurora.org> The new asm-generic/io-instrumented.h will keep arch code clean and separate from instrumented version which traces io register accesses. This instrumented header can later be included in arm as well for tracing io register accesses. Suggested-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org> --- arch/arm64/include/asm/io.h | 25 ++++++--------- include/asm-generic/io-instrumented.h | 45 +++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 16 deletions(-) create mode 100644 include/asm-generic/io-instrumented.h diff --git a/arch/arm64/include/asm/io.h b/arch/arm64/include/asm/io.h index 35b2e50f17fb..768a6a8c5778 100644 --- a/arch/arm64/include/asm/io.h +++ b/arch/arm64/include/asm/io.h @@ -36,32 +36,27 @@ /* * Generic IO read/write. These perform native-endian accesses. */ -#define __raw_writeb __raw_writeb -static inline void __raw_writeb(u8 val, volatile void __iomem *addr) +static inline void arch_raw_writeb(u8 val, volatile void __iomem *addr) { asm volatile("strb %w0, [%1]" : : "rZ" (val), "r" (addr)); } -#define __raw_writew __raw_writew -static inline void __raw_writew(u16 val, volatile void __iomem *addr) +static inline void arch_raw_writew(u16 val, volatile void __iomem *addr) { asm volatile("strh %w0, [%1]" : : "rZ" (val), "r" (addr)); } -#define __raw_writel __raw_writel -static inline void __raw_writel(u32 val, volatile void __iomem *addr) +static inline void arch_raw_writel(u32 val, volatile void __iomem *addr) { asm volatile("str %w0, [%1]" : : "rZ" (val), "r" (addr)); } -#define __raw_writeq __raw_writeq -static inline void __raw_writeq(u64 val, volatile void __iomem *addr) +static inline void arch_raw_writeq(u64 val, volatile void __iomem *addr) { asm volatile("str %x0, [%1]" : : "rZ" (val), "r" (addr)); } -#define __raw_readb __raw_readb -static inline u8 __raw_readb(const volatile void __iomem *addr) +static inline u8 arch_raw_readb(const volatile void __iomem *addr) { u8 val; asm volatile(ALTERNATIVE("ldrb %w0, [%1]", @@ -71,8 +66,7 @@ static inline u8 __raw_readb(const volatile void __iomem *addr) return val; } -#define __raw_readw __raw_readw -static inline u16 __raw_readw(const volatile void __iomem *addr) +static inline u16 arch_raw_readw(const volatile void __iomem *addr) { u16 val; @@ -83,8 +77,7 @@ static inline u16 __raw_readw(const volatile void __iomem *addr) return val; } -#define __raw_readl __raw_readl -static inline u32 __raw_readl(const volatile void __iomem *addr) +static inline u32 arch_raw_readl(const volatile void __iomem *addr) { u32 val; asm volatile(ALTERNATIVE("ldr %w0, [%1]", @@ -94,8 +87,7 @@ static inline u32 __raw_readl(const volatile void __iomem *addr) return val; } -#define __raw_readq __raw_readq -static inline u64 __raw_readq(const volatile void __iomem *addr) +static inline u64 arch_raw_readq(const volatile void __iomem *addr) { u64 val; asm volatile(ALTERNATIVE("ldr %0, [%1]", @@ -193,6 +185,7 @@ extern void __iomem *ioremap_cache(phys_addr_t phys_addr, size_t size); #define iowrite32be(v,p) ({ __iowmb(); __raw_writel((__force __u32)cpu_to_be32(v), p); }) #define iowrite64be(v,p) ({ __iowmb(); __raw_writeq((__force __u64)cpu_to_be64(v), p); }) +#include <asm-generic/io-instrumented.h> #include <asm-generic/io.h> /* diff --git a/include/asm-generic/io-instrumented.h b/include/asm-generic/io-instrumented.h new file mode 100644 index 000000000000..7b050e2487ed --- /dev/null +++ b/include/asm-generic/io-instrumented.h @@ -0,0 +1,45 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _ASM_GENERIC_IO_INSTRUMENTED_H +#define _ASM_GENERIC_IO_INSTRUMENTED_H + +#if defined(CONFIG_TRACING_EVENTS_IO) +#include <linux/tracepoint-defs.h> + +extern struct tracepoint __tracepoint_io_write; +extern struct tracepoint __tracepoint_io_read; +#define io_tracepoint_active(t) static_key_false(&(t).key) +extern void do_trace_io_write(const char *type, void *addr); +extern void do_trace_io_read(const char *type, void *addr); +#else +#define io_tracepoint_active(t) false +static inline void do_trace_io_write(const char *type, void *addr) {} +static inline void do_trace_io_read(const char *type, void *addr) {} +#endif /* CONFIG_TRACING_EVENTS_IO */ + +#define __raw_write(v, a, _l) ({ \ + volatile void __iomem *_a = (a); \ + if (io_tracepoint_active(__tracepoint_io_write)) \ + do_trace_io_write(__stringify(write##_l), (void __force *)(_a));\ + arch_raw_write##_l((v), _a); \ + }) + +#define __raw_writeb(v, a) __raw_write((v), a, b) +#define __raw_writew(v, a) __raw_write((v), a, w) +#define __raw_writel(v, a) __raw_write((v), a, l) +#define __raw_writeq(v, a) __raw_write((v), a, q) + +#define __raw_read(a, _l, _t) ({ \ + _t __a; \ + const volatile void __iomem *_a = (a); \ + if (io_tracepoint_active(__tracepoint_io_read)) \ + do_trace_io_read(__stringify(read##_l), (void __force *)(_a)); \ + __a = arch_raw_read##_l(_a); \ + __a; \ + }) + +#define __raw_readb(a) __raw_read((a), b, u8) +#define __raw_readw(a) __raw_read((a), w, u16) +#define __raw_readl(a) __raw_read((a), l, u32) +#define __raw_readq(a) __raw_read((a), q, u64) + +#endif /* _ASM_GENERIC_IO_INSTRUMENTED_H */ -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
WARNING: multiple messages have this Message-ID (diff)
From: saiprakash.ranjan@codeaurora.org (Sai Prakash Ranjan) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 5/6] arm64/io: Add header for instrumentation of io operations Date: Sun, 9 Sep 2018 01:57:06 +0530 [thread overview] Message-ID: <bb322d763aa6c58f036e5209a481c769be92ab9b.1536430404.git.saiprakash.ranjan@codeaurora.org> (raw) In-Reply-To: <cover.1536430404.git.saiprakash.ranjan@codeaurora.org> The new asm-generic/io-instrumented.h will keep arch code clean and separate from instrumented version which traces io register accesses. This instrumented header can later be included in arm as well for tracing io register accesses. Suggested-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org> --- arch/arm64/include/asm/io.h | 25 ++++++--------- include/asm-generic/io-instrumented.h | 45 +++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 16 deletions(-) create mode 100644 include/asm-generic/io-instrumented.h diff --git a/arch/arm64/include/asm/io.h b/arch/arm64/include/asm/io.h index 35b2e50f17fb..768a6a8c5778 100644 --- a/arch/arm64/include/asm/io.h +++ b/arch/arm64/include/asm/io.h @@ -36,32 +36,27 @@ /* * Generic IO read/write. These perform native-endian accesses. */ -#define __raw_writeb __raw_writeb -static inline void __raw_writeb(u8 val, volatile void __iomem *addr) +static inline void arch_raw_writeb(u8 val, volatile void __iomem *addr) { asm volatile("strb %w0, [%1]" : : "rZ" (val), "r" (addr)); } -#define __raw_writew __raw_writew -static inline void __raw_writew(u16 val, volatile void __iomem *addr) +static inline void arch_raw_writew(u16 val, volatile void __iomem *addr) { asm volatile("strh %w0, [%1]" : : "rZ" (val), "r" (addr)); } -#define __raw_writel __raw_writel -static inline void __raw_writel(u32 val, volatile void __iomem *addr) +static inline void arch_raw_writel(u32 val, volatile void __iomem *addr) { asm volatile("str %w0, [%1]" : : "rZ" (val), "r" (addr)); } -#define __raw_writeq __raw_writeq -static inline void __raw_writeq(u64 val, volatile void __iomem *addr) +static inline void arch_raw_writeq(u64 val, volatile void __iomem *addr) { asm volatile("str %x0, [%1]" : : "rZ" (val), "r" (addr)); } -#define __raw_readb __raw_readb -static inline u8 __raw_readb(const volatile void __iomem *addr) +static inline u8 arch_raw_readb(const volatile void __iomem *addr) { u8 val; asm volatile(ALTERNATIVE("ldrb %w0, [%1]", @@ -71,8 +66,7 @@ static inline u8 __raw_readb(const volatile void __iomem *addr) return val; } -#define __raw_readw __raw_readw -static inline u16 __raw_readw(const volatile void __iomem *addr) +static inline u16 arch_raw_readw(const volatile void __iomem *addr) { u16 val; @@ -83,8 +77,7 @@ static inline u16 __raw_readw(const volatile void __iomem *addr) return val; } -#define __raw_readl __raw_readl -static inline u32 __raw_readl(const volatile void __iomem *addr) +static inline u32 arch_raw_readl(const volatile void __iomem *addr) { u32 val; asm volatile(ALTERNATIVE("ldr %w0, [%1]", @@ -94,8 +87,7 @@ static inline u32 __raw_readl(const volatile void __iomem *addr) return val; } -#define __raw_readq __raw_readq -static inline u64 __raw_readq(const volatile void __iomem *addr) +static inline u64 arch_raw_readq(const volatile void __iomem *addr) { u64 val; asm volatile(ALTERNATIVE("ldr %0, [%1]", @@ -193,6 +185,7 @@ extern void __iomem *ioremap_cache(phys_addr_t phys_addr, size_t size); #define iowrite32be(v,p) ({ __iowmb(); __raw_writel((__force __u32)cpu_to_be32(v), p); }) #define iowrite64be(v,p) ({ __iowmb(); __raw_writeq((__force __u64)cpu_to_be64(v), p); }) +#include <asm-generic/io-instrumented.h> #include <asm-generic/io.h> /* diff --git a/include/asm-generic/io-instrumented.h b/include/asm-generic/io-instrumented.h new file mode 100644 index 000000000000..7b050e2487ed --- /dev/null +++ b/include/asm-generic/io-instrumented.h @@ -0,0 +1,45 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _ASM_GENERIC_IO_INSTRUMENTED_H +#define _ASM_GENERIC_IO_INSTRUMENTED_H + +#if defined(CONFIG_TRACING_EVENTS_IO) +#include <linux/tracepoint-defs.h> + +extern struct tracepoint __tracepoint_io_write; +extern struct tracepoint __tracepoint_io_read; +#define io_tracepoint_active(t) static_key_false(&(t).key) +extern void do_trace_io_write(const char *type, void *addr); +extern void do_trace_io_read(const char *type, void *addr); +#else +#define io_tracepoint_active(t) false +static inline void do_trace_io_write(const char *type, void *addr) {} +static inline void do_trace_io_read(const char *type, void *addr) {} +#endif /* CONFIG_TRACING_EVENTS_IO */ + +#define __raw_write(v, a, _l) ({ \ + volatile void __iomem *_a = (a); \ + if (io_tracepoint_active(__tracepoint_io_write)) \ + do_trace_io_write(__stringify(write##_l), (void __force *)(_a));\ + arch_raw_write##_l((v), _a); \ + }) + +#define __raw_writeb(v, a) __raw_write((v), a, b) +#define __raw_writew(v, a) __raw_write((v), a, w) +#define __raw_writel(v, a) __raw_write((v), a, l) +#define __raw_writeq(v, a) __raw_write((v), a, q) + +#define __raw_read(a, _l, _t) ({ \ + _t __a; \ + const volatile void __iomem *_a = (a); \ + if (io_tracepoint_active(__tracepoint_io_read)) \ + do_trace_io_read(__stringify(read##_l), (void __force *)(_a)); \ + __a = arch_raw_read##_l(_a); \ + __a; \ + }) + +#define __raw_readb(a) __raw_read((a), b, u8) +#define __raw_readw(a) __raw_read((a), w, u16) +#define __raw_readl(a) __raw_read((a), l, u32) +#define __raw_readq(a) __raw_read((a), q, u64) + +#endif /* _ASM_GENERIC_IO_INSTRUMENTED_H */ -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
next prev parent reply other threads:[~2018-09-08 20:27 UTC|newest] Thread overview: 141+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-09-08 20:27 [PATCH 0/6] Tracing register accesses with pstore and dynamic debug Sai Prakash Ranjan 2018-09-08 20:27 ` Sai Prakash Ranjan 2018-09-08 20:27 ` [PATCH 1/6] dt-bindings: ramoops: Add event-size property Sai Prakash Ranjan 2018-09-08 20:27 ` Sai Prakash Ranjan 2018-09-17 5:45 ` Rob Herring 2018-09-17 5:45 ` Rob Herring 2018-09-17 17:15 ` Sai Prakash Ranjan 2018-09-17 17:15 ` Sai Prakash Ranjan 2018-09-08 20:27 ` [PATCH 2/6] pstore: Add event tracing support Sai Prakash Ranjan 2018-09-08 20:27 ` Sai Prakash Ranjan 2018-09-11 10:46 ` Sai Prakash Ranjan 2018-09-11 10:46 ` Sai Prakash Ranjan 2018-09-17 17:38 ` Stephen Boyd 2018-09-17 17:38 ` Stephen Boyd 2018-09-17 19:43 ` Sai Prakash Ranjan 2018-09-17 19:43 ` Sai Prakash Ranjan 2018-09-16 7:07 ` Sai Prakash Ranjan 2018-09-16 7:07 ` Sai Prakash Ranjan 2018-09-16 13:55 ` Joel Fernandes 2018-09-17 14:54 ` Kees Cook 2018-09-17 14:54 ` Kees Cook 2018-09-17 14:54 ` Kees Cook 2018-09-17 17:17 ` Sai Prakash Ranjan 2018-09-17 17:17 ` Sai Prakash Ranjan 2018-09-17 17:17 ` Sai Prakash Ranjan 2018-09-17 17:13 ` Sai Prakash Ranjan 2018-09-17 17:13 ` Sai Prakash Ranjan 2018-09-17 17:13 ` Sai Prakash Ranjan 2018-09-17 23:04 ` Steven Rostedt 2018-09-17 23:04 ` Steven Rostedt 2018-09-17 23:04 ` Steven Rostedt 2018-09-18 6:24 ` Sai Prakash Ranjan 2018-09-18 6:24 ` Sai Prakash Ranjan 2018-09-18 6:24 ` Sai Prakash Ranjan 2018-09-17 23:34 ` Steven Rostedt 2018-09-17 23:34 ` Steven Rostedt 2018-09-17 23:34 ` Steven Rostedt 2018-09-18 17:52 ` Sai Prakash Ranjan 2018-09-18 17:52 ` Sai Prakash Ranjan 2018-09-18 17:52 ` Sai Prakash Ranjan 2018-09-18 20:44 ` Steven Rostedt 2018-09-18 20:44 ` Steven Rostedt 2018-09-18 20:44 ` Steven Rostedt 2018-09-18 21:13 ` Sai Prakash Ranjan 2018-09-18 21:13 ` Sai Prakash Ranjan 2018-09-18 21:13 ` Sai Prakash Ranjan 2018-09-22 6:48 ` Sai Prakash Ranjan 2018-09-22 6:48 ` Sai Prakash Ranjan 2018-09-22 6:48 ` Sai Prakash Ranjan 2018-09-22 9:05 ` Joel Fernandes 2018-09-22 9:05 ` Joel Fernandes 2018-09-22 9:05 ` Joel Fernandes 2018-09-22 16:37 ` Sai Prakash Ranjan 2018-09-22 16:37 ` Sai Prakash Ranjan 2018-09-22 16:37 ` Sai Prakash Ranjan 2018-09-22 17:32 ` Sai Prakash Ranjan 2018-09-22 17:32 ` Sai Prakash Ranjan 2018-09-22 17:32 ` Sai Prakash Ranjan 2018-09-22 17:45 ` Sai Prakash Ranjan 2018-09-22 17:45 ` Sai Prakash Ranjan 2018-09-22 17:45 ` Sai Prakash Ranjan 2018-09-23 15:33 ` Sai Prakash Ranjan 2018-09-23 15:33 ` Sai Prakash Ranjan 2018-09-23 15:33 ` Sai Prakash Ranjan 2018-09-25 20:37 ` Joel Fernandes 2018-09-25 20:37 ` Joel Fernandes 2018-09-25 20:37 ` Joel Fernandes 2018-09-25 20:39 ` Joel Fernandes 2018-09-25 20:39 ` Joel Fernandes 2018-09-25 20:39 ` Joel Fernandes 2018-09-25 20:40 ` Joel Fernandes 2018-09-25 20:40 ` Joel Fernandes 2018-09-25 20:40 ` Joel Fernandes 2018-09-26 9:52 ` Sai Prakash Ranjan 2018-09-26 9:52 ` Sai Prakash Ranjan 2018-09-26 9:52 ` Sai Prakash Ranjan 2018-09-08 20:27 ` [PATCH 3/6] tracing: Add tp_pstore cmdline to have tracepoints go to pstore Sai Prakash Ranjan 2018-09-08 20:27 ` Sai Prakash Ranjan 2018-09-25 21:25 ` Joel Fernandes 2018-09-25 21:25 ` Joel Fernandes 2018-09-25 21:25 ` Joel Fernandes 2018-09-26 9:46 ` Sai Prakash Ranjan 2018-09-26 9:46 ` Sai Prakash Ranjan 2018-09-26 9:46 ` Sai Prakash Ranjan 2018-10-08 14:16 ` Sai Prakash Ranjan 2018-10-08 14:16 ` Sai Prakash Ranjan 2018-10-08 14:16 ` Sai Prakash Ranjan 2018-10-08 14:36 ` Steven Rostedt 2018-10-08 14:36 ` Steven Rostedt 2018-10-08 14:36 ` Steven Rostedt 2018-10-08 22:40 ` Joel Fernandes 2018-10-08 22:40 ` Joel Fernandes 2018-10-08 22:40 ` Joel Fernandes 2018-10-09 18:22 ` Sai Prakash Ranjan 2018-10-09 18:22 ` Sai Prakash Ranjan 2018-10-09 18:22 ` Sai Prakash Ranjan 2018-10-10 19:37 ` Steven Rostedt 2018-10-10 19:37 ` Steven Rostedt 2018-10-10 19:37 ` Steven Rostedt 2018-09-08 20:27 ` [PATCH 4/6] arm64/io: Add tracepoint for register accesses Sai Prakash Ranjan 2018-09-08 20:27 ` Sai Prakash Ranjan 2018-09-08 20:27 ` Sai Prakash Ranjan [this message] 2018-09-08 20:27 ` [PATCH 5/6] arm64/io: Add header for instrumentation of io operations Sai Prakash Ranjan 2018-09-17 23:39 ` Steven Rostedt 2018-09-17 23:39 ` Steven Rostedt 2018-09-17 23:39 ` Steven Rostedt 2018-09-18 7:10 ` Sai Prakash Ranjan 2018-09-18 7:10 ` Sai Prakash Ranjan 2018-09-18 7:10 ` Sai Prakash Ranjan 2018-09-18 11:47 ` Will Deacon 2018-09-18 11:47 ` Will Deacon 2018-09-18 11:47 ` Will Deacon 2018-09-18 12:43 ` Sai Prakash Ranjan 2018-09-18 12:43 ` Sai Prakash Ranjan 2018-09-18 12:43 ` Sai Prakash Ranjan 2018-09-08 20:27 ` [PATCH 6/6] dynamic_debug: Add flag for dynamic event tracing Sai Prakash Ranjan 2018-09-08 20:27 ` Sai Prakash Ranjan 2018-09-11 15:11 ` [PATCH 0/6] Tracing register accesses with pstore and dynamic debug Will Deacon 2018-09-11 15:11 ` Will Deacon 2018-09-11 15:11 ` Will Deacon 2018-09-11 16:11 ` Sai Prakash Ranjan 2018-09-11 16:11 ` Sai Prakash Ranjan 2018-09-11 16:11 ` Sai Prakash Ranjan 2018-10-20 5:25 ` Joel Fernandes 2018-10-20 5:25 ` Joel Fernandes 2018-10-20 5:25 ` Joel Fernandes 2018-10-20 6:32 ` Sai Prakash Ranjan 2018-10-20 6:32 ` Sai Prakash Ranjan 2018-10-20 6:32 ` Sai Prakash Ranjan 2018-10-20 16:27 ` Joel Fernandes 2018-10-20 16:27 ` Joel Fernandes 2018-10-20 16:27 ` Joel Fernandes 2018-10-21 3:46 ` Sai Prakash Ranjan 2018-10-21 3:46 ` Sai Prakash Ranjan 2018-10-21 3:46 ` Sai Prakash Ranjan 2018-10-21 4:59 ` Sai Prakash Ranjan 2018-10-21 4:59 ` Sai Prakash Ranjan 2018-10-21 4:59 ` Sai Prakash Ranjan 2018-10-21 5:09 ` Joel Fernandes 2018-10-21 5:09 ` Joel Fernandes 2018-10-21 5:09 ` Joel Fernandes
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bb322d763aa6c58f036e5209a481c769be92ab9b.1536430404.git.saiprakash.ranjan@codeaurora.org \ --to=saiprakash.ranjan@codeaurora.org \ --cc=anton@enomsg.org \ --cc=arnd@arndb.de \ --cc=bryanh@codeaurora.org \ --cc=catalin.marinas@arm.com \ --cc=ccross@android.com \ --cc=devicetree@vger.kernel.org \ --cc=gregkh@linuxfoundation.org \ --cc=jbaron@akamai.com \ --cc=jim.cromie@gmail.com \ --cc=joe@perches.com \ --cc=joel@joelfernandes.org \ --cc=keescook@chromium.org \ --cc=labbott@redhat.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mhiramat@kernel.org \ --cc=mingo@kernel.org \ --cc=mingo@redhat.com \ --cc=psodagud@codeaurora.org \ --cc=rnayak@codeaurora.org \ --cc=robh+dt@kernel.org \ --cc=rostedt@goodmis.org \ --cc=sibis@codeaurora.org \ --cc=tingwei@codeaurora.org \ --cc=tom.zanussi@linux.intel.com \ --cc=tony.luck@intel.com \ --cc=tsoni@codeaurora.org \ --cc=vivek.gautam@codeaurora.org \ --cc=will.deacon@arm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.