From: Arnd Bergmann <arnd@kernel.org>
To: linux-arch@vger.kernel.org
Cc: Arnd Bergmann <arnd@arndb.de>, Christoph Hellwig <hch@lst.de>,
Al Viro <viro@zeniv.linux.org.uk>,
Vineet Gupta <vgupta@synopsys.com>,
Yoshinori Sato <ysato@users.sourceforge.jp>,
Brian Cain <bcain@codeaurora.org>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Paul Walmsley <paul.walmsley@sifive.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>, Jeff Dike <jdike@addtoit.com>,
Richard Weinberger <richard@nod.at>,
Anton Ivanov <anton.ivanov@cambridgegreys.com>,
Sid Manning <sidneym@codeaurora.org>,
Andrew Morton <akpm@linux-foundation.org>,
Mike Rapoport <rppt@kernel.org>,
linux-snps-arc@lists.infradead.org, linux-kernel@vger.kernel.org,
uclinux-h8-devel@lists.sourceforge.jp,
linux-hexagon@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
linux-riscv@lists.infradead.org, linux-um@lists.infradead.org
Subject: [PATCH 5/6] [v2] asm-generic: uaccess: remove inline strncpy_from_user/strnlen_user
Date: Sat, 15 May 2021 12:18:02 +0200 [thread overview]
Message-ID: <20210515101803.924427-6-arnd@kernel.org> (raw)
In-Reply-To: <20210515101803.924427-1-arnd@kernel.org>
From: Arnd Bergmann <arnd@arndb.de>
Consolidate the asm-generic implementation with the library version
that is used everywhere else.
These are the three versions for NOMMU kernels, which can in principle
fall back to strncpy()/strnlen() as the version in asm-generic does,
but this version is particularly inefficient when it scans the string
one byte at a time twice. The generic version also lacks a check
for user_addr_max(), but this is probably ok on NOMMU targets.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
arch/h8300/Kconfig | 2 ++
arch/m68k/Kconfig | 4 +--
arch/riscv/Kconfig | 4 +--
include/asm-generic/uaccess.h | 46 ++++++-----------------------------
4 files changed, 14 insertions(+), 42 deletions(-)
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig
index 3e3e0f16f7e0..53dfd2d47e0e 100644
--- a/arch/h8300/Kconfig
+++ b/arch/h8300/Kconfig
@@ -11,6 +11,8 @@ config H8300
select GENERIC_IRQ_SHOW
select FRAME_POINTER
select GENERIC_CPU_DEVICES
+ select GENERIC_STRNCPY_FROM_USER
+ select GENERIC_STRNLEN_USER
select MODULES_USE_ELF_RELA
select COMMON_CLK
select ARCH_WANT_FRAME_POINTERS
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index ed6b8050e3ed..5f1aafa7b2e2 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -17,8 +17,8 @@ config M68K
select GENERIC_CPU_DEVICES
select GENERIC_IOMAP
select GENERIC_IRQ_SHOW
- select GENERIC_STRNCPY_FROM_USER if MMU
- select GENERIC_STRNLEN_USER if MMU
+ select GENERIC_STRNCPY_FROM_USER
+ select GENERIC_STRNLEN_USER
select HAVE_AOUT if MMU
select HAVE_ASM_MODVERSIONS
select HAVE_DEBUG_BUGVERBOSE
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index a8ad8eb76120..ada7a2918c05 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -55,8 +55,8 @@ config RISCV
select GENERIC_PTDUMP if MMU
select GENERIC_SCHED_CLOCK
select GENERIC_SMP_IDLE_THREAD
- select GENERIC_STRNCPY_FROM_USER if MMU
- select GENERIC_STRNLEN_USER if MMU
+ select GENERIC_STRNCPY_FROM_USER
+ select GENERIC_STRNLEN_USER
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
select HANDLE_DOMAIN_IRQ
select HAVE_ARCH_AUDITSYSCALL
diff --git a/include/asm-generic/uaccess.h b/include/asm-generic/uaccess.h
index c03889cc904c..83a48f430951 100644
--- a/include/asm-generic/uaccess.h
+++ b/include/asm-generic/uaccess.h
@@ -119,6 +119,11 @@ static inline void set_fs(mm_segment_t fs)
#ifndef uaccess_kernel
#define uaccess_kernel() (get_fs().seg == KERNEL_DS.seg)
#endif
+
+#ifndef user_addr_max
+#define user_addr_max() (uaccess_kernel() ? ~0UL : TASK_SIZE)
+#endif
+
#endif /* CONFIG_SET_FS */
#define access_ok(addr, size) __access_ok((unsigned long)(addr),(size))
@@ -243,44 +248,6 @@ static inline int __get_user_fn(size_t size, const void __user *ptr, void *x)
extern int __get_user_bad(void) __attribute__((noreturn));
-/*
- * Copy a null terminated string from userspace.
- */
-#ifndef strncpy_from_user
-static inline long
-strncpy_from_user(char *dst, const char __user *src, long count)
-{
- char *tmp;
-
- if (!access_ok(src, 1))
- return -EFAULT;
-
- strncpy(dst, (const char __force *)src, count);
- for (tmp = dst; *tmp && count > 0; tmp++, count--)
- ;
- return (tmp - dst);
-}
-#endif
-
-#ifndef strnlen_user
-/*
- * Return the size of a string (including the ending 0)
- *
- * Return 0 on exception, a value greater than N if too long
- *
- * Unlike strnlen, strnlen_user includes the nul terminator in
- * its returned count. Callers should check for a returned value
- * greater than N as an indication the string is too long.
- */
-static inline long strnlen_user(const char __user *src, long n)
-{
- if (!access_ok(src, 1))
- return 0;
-
- return strnlen(src, n) + 1;
-}
-#endif
-
/*
* Zero Userspace
*/
@@ -305,4 +272,7 @@ clear_user(void __user *to, unsigned long n)
#include <asm/extable.h>
+extern long strncpy_from_user(char *dst, const char __user *src, long count);
+extern long strnlen_user(const char __user *src, long n);
+
#endif /* __ASM_GENERIC_UACCESS_H */
--
2.29.2
WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@kernel.org>
To: linux-arch@vger.kernel.org
Cc: Arnd Bergmann <arnd@arndb.de>, Christoph Hellwig <hch@lst.de>,
Al Viro <viro@zeniv.linux.org.uk>,
Vineet Gupta <vgupta@synopsys.com>,
Yoshinori Sato <ysato@users.sourceforge.jp>,
Brian Cain <bcain@codeaurora.org>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Paul Walmsley <paul.walmsley@sifive.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>, Jeff Dike <jdike@addtoit.com>,
Richard Weinberger <richard@nod.at>,
Anton Ivanov <anton.ivanov@cambridgegreys.com>,
Sid Manning <sidneym@codeaurora.org>,
Andrew Morton <akpm@linux-foundation.org>,
Mike Rapoport <rppt@kernel.org>,
linux-snps-arc@lists.infradead.org, linux-kernel@vger.kernel.org,
uclinux-h8-devel@lists.sourceforge.jp,
linux-hexagon@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
linux-riscv@lists.infradead.org, linux-um@lists.infradead.org
Subject: [PATCH 5/6] [v2] asm-generic: uaccess: remove inline strncpy_from_user/strnlen_user
Date: Sat, 15 May 2021 12:18:02 +0200 [thread overview]
Message-ID: <20210515101803.924427-6-arnd@kernel.org> (raw)
In-Reply-To: <20210515101803.924427-1-arnd@kernel.org>
From: Arnd Bergmann <arnd@arndb.de>
Consolidate the asm-generic implementation with the library version
that is used everywhere else.
These are the three versions for NOMMU kernels, which can in principle
fall back to strncpy()/strnlen() as the version in asm-generic does,
but this version is particularly inefficient when it scans the string
one byte at a time twice. The generic version also lacks a check
for user_addr_max(), but this is probably ok on NOMMU targets.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
arch/h8300/Kconfig | 2 ++
arch/m68k/Kconfig | 4 +--
arch/riscv/Kconfig | 4 +--
include/asm-generic/uaccess.h | 46 ++++++-----------------------------
4 files changed, 14 insertions(+), 42 deletions(-)
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig
index 3e3e0f16f7e0..53dfd2d47e0e 100644
--- a/arch/h8300/Kconfig
+++ b/arch/h8300/Kconfig
@@ -11,6 +11,8 @@ config H8300
select GENERIC_IRQ_SHOW
select FRAME_POINTER
select GENERIC_CPU_DEVICES
+ select GENERIC_STRNCPY_FROM_USER
+ select GENERIC_STRNLEN_USER
select MODULES_USE_ELF_RELA
select COMMON_CLK
select ARCH_WANT_FRAME_POINTERS
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index ed6b8050e3ed..5f1aafa7b2e2 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -17,8 +17,8 @@ config M68K
select GENERIC_CPU_DEVICES
select GENERIC_IOMAP
select GENERIC_IRQ_SHOW
- select GENERIC_STRNCPY_FROM_USER if MMU
- select GENERIC_STRNLEN_USER if MMU
+ select GENERIC_STRNCPY_FROM_USER
+ select GENERIC_STRNLEN_USER
select HAVE_AOUT if MMU
select HAVE_ASM_MODVERSIONS
select HAVE_DEBUG_BUGVERBOSE
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index a8ad8eb76120..ada7a2918c05 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -55,8 +55,8 @@ config RISCV
select GENERIC_PTDUMP if MMU
select GENERIC_SCHED_CLOCK
select GENERIC_SMP_IDLE_THREAD
- select GENERIC_STRNCPY_FROM_USER if MMU
- select GENERIC_STRNLEN_USER if MMU
+ select GENERIC_STRNCPY_FROM_USER
+ select GENERIC_STRNLEN_USER
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
select HANDLE_DOMAIN_IRQ
select HAVE_ARCH_AUDITSYSCALL
diff --git a/include/asm-generic/uaccess.h b/include/asm-generic/uaccess.h
index c03889cc904c..83a48f430951 100644
--- a/include/asm-generic/uaccess.h
+++ b/include/asm-generic/uaccess.h
@@ -119,6 +119,11 @@ static inline void set_fs(mm_segment_t fs)
#ifndef uaccess_kernel
#define uaccess_kernel() (get_fs().seg == KERNEL_DS.seg)
#endif
+
+#ifndef user_addr_max
+#define user_addr_max() (uaccess_kernel() ? ~0UL : TASK_SIZE)
+#endif
+
#endif /* CONFIG_SET_FS */
#define access_ok(addr, size) __access_ok((unsigned long)(addr),(size))
@@ -243,44 +248,6 @@ static inline int __get_user_fn(size_t size, const void __user *ptr, void *x)
extern int __get_user_bad(void) __attribute__((noreturn));
-/*
- * Copy a null terminated string from userspace.
- */
-#ifndef strncpy_from_user
-static inline long
-strncpy_from_user(char *dst, const char __user *src, long count)
-{
- char *tmp;
-
- if (!access_ok(src, 1))
- return -EFAULT;
-
- strncpy(dst, (const char __force *)src, count);
- for (tmp = dst; *tmp && count > 0; tmp++, count--)
- ;
- return (tmp - dst);
-}
-#endif
-
-#ifndef strnlen_user
-/*
- * Return the size of a string (including the ending 0)
- *
- * Return 0 on exception, a value greater than N if too long
- *
- * Unlike strnlen, strnlen_user includes the nul terminator in
- * its returned count. Callers should check for a returned value
- * greater than N as an indication the string is too long.
- */
-static inline long strnlen_user(const char __user *src, long n)
-{
- if (!access_ok(src, 1))
- return 0;
-
- return strnlen(src, n) + 1;
-}
-#endif
-
/*
* Zero Userspace
*/
@@ -305,4 +272,7 @@ clear_user(void __user *to, unsigned long n)
#include <asm/extable.h>
+extern long strncpy_from_user(char *dst, const char __user *src, long count);
+extern long strnlen_user(const char __user *src, long n);
+
#endif /* __ASM_GENERIC_UACCESS_H */
--
2.29.2
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@kernel.org>
To: linux-arch@vger.kernel.org
Cc: Arnd Bergmann <arnd@arndb.de>, Christoph Hellwig <hch@lst.de>,
Al Viro <viro@zeniv.linux.org.uk>,
Vineet Gupta <vgupta@synopsys.com>,
Yoshinori Sato <ysato@users.sourceforge.jp>,
Brian Cain <bcain@codeaurora.org>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Paul Walmsley <paul.walmsley@sifive.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>, Jeff Dike <jdike@addtoit.com>,
Richard Weinberger <richard@nod.at>,
Anton Ivanov <anton.ivanov@cambridgegreys.com>,
Sid Manning <sidneym@codeaurora.org>,
Andrew Morton <akpm@linux-foundation.org>,
Mike Rapoport <rppt@kernel.org>,
linux-snps-arc@lists.infradead.org, linux-kernel@vger.kernel.org,
uclinux-h8-devel@lists.sourceforge.jp,
linux-hexagon@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
linux-riscv@lists.infradead.org, linux-um@lists.infradead.org
Subject: [PATCH 5/6] [v2] asm-generic: uaccess: remove inline strncpy_from_user/strnlen_user
Date: Sat, 15 May 2021 12:18:02 +0200 [thread overview]
Message-ID: <20210515101803.924427-6-arnd@kernel.org> (raw)
In-Reply-To: <20210515101803.924427-1-arnd@kernel.org>
From: Arnd Bergmann <arnd@arndb.de>
Consolidate the asm-generic implementation with the library version
that is used everywhere else.
These are the three versions for NOMMU kernels, which can in principle
fall back to strncpy()/strnlen() as the version in asm-generic does,
but this version is particularly inefficient when it scans the string
one byte at a time twice. The generic version also lacks a check
for user_addr_max(), but this is probably ok on NOMMU targets.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
arch/h8300/Kconfig | 2 ++
arch/m68k/Kconfig | 4 +--
arch/riscv/Kconfig | 4 +--
include/asm-generic/uaccess.h | 46 ++++++-----------------------------
4 files changed, 14 insertions(+), 42 deletions(-)
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig
index 3e3e0f16f7e0..53dfd2d47e0e 100644
--- a/arch/h8300/Kconfig
+++ b/arch/h8300/Kconfig
@@ -11,6 +11,8 @@ config H8300
select GENERIC_IRQ_SHOW
select FRAME_POINTER
select GENERIC_CPU_DEVICES
+ select GENERIC_STRNCPY_FROM_USER
+ select GENERIC_STRNLEN_USER
select MODULES_USE_ELF_RELA
select COMMON_CLK
select ARCH_WANT_FRAME_POINTERS
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index ed6b8050e3ed..5f1aafa7b2e2 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -17,8 +17,8 @@ config M68K
select GENERIC_CPU_DEVICES
select GENERIC_IOMAP
select GENERIC_IRQ_SHOW
- select GENERIC_STRNCPY_FROM_USER if MMU
- select GENERIC_STRNLEN_USER if MMU
+ select GENERIC_STRNCPY_FROM_USER
+ select GENERIC_STRNLEN_USER
select HAVE_AOUT if MMU
select HAVE_ASM_MODVERSIONS
select HAVE_DEBUG_BUGVERBOSE
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index a8ad8eb76120..ada7a2918c05 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -55,8 +55,8 @@ config RISCV
select GENERIC_PTDUMP if MMU
select GENERIC_SCHED_CLOCK
select GENERIC_SMP_IDLE_THREAD
- select GENERIC_STRNCPY_FROM_USER if MMU
- select GENERIC_STRNLEN_USER if MMU
+ select GENERIC_STRNCPY_FROM_USER
+ select GENERIC_STRNLEN_USER
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
select HANDLE_DOMAIN_IRQ
select HAVE_ARCH_AUDITSYSCALL
diff --git a/include/asm-generic/uaccess.h b/include/asm-generic/uaccess.h
index c03889cc904c..83a48f430951 100644
--- a/include/asm-generic/uaccess.h
+++ b/include/asm-generic/uaccess.h
@@ -119,6 +119,11 @@ static inline void set_fs(mm_segment_t fs)
#ifndef uaccess_kernel
#define uaccess_kernel() (get_fs().seg == KERNEL_DS.seg)
#endif
+
+#ifndef user_addr_max
+#define user_addr_max() (uaccess_kernel() ? ~0UL : TASK_SIZE)
+#endif
+
#endif /* CONFIG_SET_FS */
#define access_ok(addr, size) __access_ok((unsigned long)(addr),(size))
@@ -243,44 +248,6 @@ static inline int __get_user_fn(size_t size, const void __user *ptr, void *x)
extern int __get_user_bad(void) __attribute__((noreturn));
-/*
- * Copy a null terminated string from userspace.
- */
-#ifndef strncpy_from_user
-static inline long
-strncpy_from_user(char *dst, const char __user *src, long count)
-{
- char *tmp;
-
- if (!access_ok(src, 1))
- return -EFAULT;
-
- strncpy(dst, (const char __force *)src, count);
- for (tmp = dst; *tmp && count > 0; tmp++, count--)
- ;
- return (tmp - dst);
-}
-#endif
-
-#ifndef strnlen_user
-/*
- * Return the size of a string (including the ending 0)
- *
- * Return 0 on exception, a value greater than N if too long
- *
- * Unlike strnlen, strnlen_user includes the nul terminator in
- * its returned count. Callers should check for a returned value
- * greater than N as an indication the string is too long.
- */
-static inline long strnlen_user(const char __user *src, long n)
-{
- if (!access_ok(src, 1))
- return 0;
-
- return strnlen(src, n) + 1;
-}
-#endif
-
/*
* Zero Userspace
*/
@@ -305,4 +272,7 @@ clear_user(void __user *to, unsigned long n)
#include <asm/extable.h>
+extern long strncpy_from_user(char *dst, const char __user *src, long count);
+extern long strnlen_user(const char __user *src, long n);
+
#endif /* __ASM_GENERIC_UACCESS_H */
--
2.29.2
_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc
next prev parent reply other threads:[~2021-05-15 10:19 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-15 10:17 [PATCH 0/6] [v2] asm-generic: strncpy_from_user/strnlen_user cleanup Arnd Bergmann
2021-05-15 10:17 ` Arnd Bergmann
2021-05-15 10:17 ` Arnd Bergmann
2021-05-15 10:17 ` Arnd Bergmann
2021-05-15 10:17 ` [PATCH 1/6] [v2] asm-generic/uaccess.h: remove __strncpy_from_user/__strnlen_user Arnd Bergmann
2021-05-15 10:17 ` Arnd Bergmann
2021-05-15 10:17 ` Arnd Bergmann
2021-05-15 10:17 ` Arnd Bergmann
2021-05-15 10:17 ` [PATCH 2/6] [v2] h8300: remove stale strncpy_from_user Arnd Bergmann
2021-05-15 10:17 ` Arnd Bergmann
2021-05-15 10:17 ` Arnd Bergmann
2021-05-15 10:17 ` Arnd Bergmann
2021-05-15 10:18 ` [PATCH 3/6] [v2] hexagon: use generic strncpy/strnlen from_user Arnd Bergmann
2021-05-15 10:18 ` Arnd Bergmann
2021-05-15 10:18 ` Arnd Bergmann
2021-05-17 6:16 ` Christoph Hellwig
2021-05-17 6:16 ` Christoph Hellwig
2021-05-17 6:16 ` Christoph Hellwig
2021-05-17 6:16 ` Christoph Hellwig
2021-05-17 6:46 ` Arnd Bergmann
2021-05-17 6:46 ` Arnd Bergmann
2021-05-17 6:46 ` Arnd Bergmann
2021-05-17 6:46 ` Arnd Bergmann
2021-05-15 10:18 ` [PATCH 4/6] [v2] arc: " Arnd Bergmann
2021-05-15 10:18 ` Arnd Bergmann
2021-05-15 10:18 ` Arnd Bergmann
2021-05-17 6:16 ` Christoph Hellwig
2021-05-17 6:16 ` Christoph Hellwig
2021-05-17 6:16 ` Christoph Hellwig
2021-05-17 6:16 ` Christoph Hellwig
2021-05-17 6:47 ` Arnd Bergmann
2021-05-17 6:47 ` Arnd Bergmann
2021-05-17 6:47 ` Arnd Bergmann
2021-05-17 6:47 ` Arnd Bergmann
2021-05-15 10:18 ` Arnd Bergmann [this message]
2021-05-15 10:18 ` [PATCH 5/6] [v2] asm-generic: uaccess: remove inline strncpy_from_user/strnlen_user Arnd Bergmann
2021-05-15 10:18 ` Arnd Bergmann
2021-05-17 6:20 ` Christoph Hellwig
2021-05-17 6:20 ` Christoph Hellwig
2021-05-17 6:20 ` Christoph Hellwig
2021-05-17 6:20 ` Christoph Hellwig
2021-05-17 7:27 ` Arnd Bergmann
2021-05-17 7:27 ` Arnd Bergmann
2021-05-17 7:27 ` Arnd Bergmann
2021-05-17 7:27 ` Arnd Bergmann
2021-05-15 10:18 ` [PATCH 6/6] [v2] asm-generic: remove extra strn{cpy_from,len}_user declarations Arnd Bergmann
2021-05-15 10:18 ` [PATCH 6/6] [v2] asm-generic: remove extra strn{cpy_from, len}_user declarations Arnd Bergmann
2021-05-15 10:18 ` Arnd Bergmann
2021-05-15 10:18 ` Arnd Bergmann
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=20210515101803.924427-6-arnd@kernel.org \
--to=arnd@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=anton.ivanov@cambridgegreys.com \
--cc=aou@eecs.berkeley.edu \
--cc=arnd@arndb.de \
--cc=bcain@codeaurora.org \
--cc=geert@linux-m68k.org \
--cc=hch@lst.de \
--cc=jdike@addtoit.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-hexagon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-m68k@lists.linux-m68k.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-snps-arc@lists.infradead.org \
--cc=linux-um@lists.infradead.org \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=richard@nod.at \
--cc=rppt@kernel.org \
--cc=sidneym@codeaurora.org \
--cc=uclinux-h8-devel@lists.sourceforge.jp \
--cc=vgupta@synopsys.com \
--cc=viro@zeniv.linux.org.uk \
--cc=ysato@users.sourceforge.jp \
/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: link
Be 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.