All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	linux-arch@vger.kernel.org, linux-mm@kvack.org,
	linux-api@vger.kernel.org, arnd@arndb.de,
	linux-kernel@vger.kernel.org, viro@zeniv.linux.org.uk
Cc: linux@armlinux.org.uk, will@kernel.org, guoren@kernel.org,
	bcain@codeaurora.org, geert@linux-m68k.org, monstr@monstr.eu,
	tsbogend@alpha.franken.de, nickhu@andestech.com,
	green.hu@gmail.com, dinguyen@kernel.org, shorne@gmail.com,
	deller@gmx.de, mpe@ellerman.id.au, peterz@infradead.org,
	mingo@redhat.com, mark.rutland@arm.com, hca@linux.ibm.com,
	dalias@libc.org, davem@davemloft.net, richard@nod.at,
	x86@kernel.org, jcmvbkbc@gmail.com, ebiederm@xmission.com,
	akpm@linux-foundation.org, ardb@kernel.org,
	linux-alpha@vger.kernel.org, linux-snps-arc@lists.infradead.org,
	linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, openrisc@lists.librecores.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-sh@vger.kernel.org, sparclinux@vger.kernel.org,
	linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org,
	Christoph Hellwig <hch@infradead.org>
Subject: [PATCH v2 05/18] x86: remove __range_not_ok()
Date: Wed, 16 Feb 2022 14:13:19 +0100	[thread overview]
Message-ID: <20220216131332.1489939-6-arnd@kernel.org> (raw)
In-Reply-To: <20220216131332.1489939-1-arnd@kernel.org>

From: Arnd Bergmann <arnd@arndb.de>

The __range_not_ok() helper is an x86 (and sparc64) specific interface
that does roughly the same thing as __access_ok(), but with different
calling conventions.

Change this to use the normal interface in order for consistency as we
clean up all access_ok() implementations.

This changes the limit from TASK_SIZE to TASK_SIZE_MAX, which Al points
out is the right thing do do here anyway.

The callers have to use __access_ok() instead of the normal access_ok()
though, because on x86 that contains a WARN_ON_IN_IRQ() check that cannot
be used inside of NMI context while tracing.

Suggested-by: Al Viro <viro@zeniv.linux.org.uk>
Suggested-by: Christoph Hellwig <hch@infradead.org>
Link: https://lore.kernel.org/lkml/YgsUKcXGR7r4nINj@zeniv-ca.linux.org.uk/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/x86/events/core.c         |  2 +-
 arch/x86/include/asm/uaccess.h | 10 ++++++----
 arch/x86/kernel/dumpstack.c    |  2 +-
 arch/x86/kernel/stacktrace.c   |  2 +-
 arch/x86/lib/usercopy.c        |  2 +-
 5 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index e686c5e0537b..eef816fc216d 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -2794,7 +2794,7 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *re
 static inline int
 valid_user_frame(const void __user *fp, unsigned long size)
 {
-	return (__range_not_ok(fp, size, TASK_SIZE) == 0);
+	return __access_ok(fp, size);
 }
 
 static unsigned long get_segment_base(unsigned int segment)
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
index ac96f9b2d64b..79c4869ccdd6 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -16,8 +16,10 @@
  * Test whether a block of memory is a valid user space address.
  * Returns 0 if the range is valid, nonzero otherwise.
  */
-static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, unsigned long limit)
+static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size)
 {
+	unsigned long limit = TASK_SIZE_MAX;
+
 	/*
 	 * If we have used "sizeof()" for the size,
 	 * we know it won't overflow the limit (but
@@ -35,10 +37,10 @@ static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, un
 	return unlikely(addr > limit);
 }
 
-#define __range_not_ok(addr, size, limit)				\
+#define __access_ok(addr, size)						\
 ({									\
 	__chk_user_ptr(addr);						\
-	__chk_range_not_ok((unsigned long __force)(addr), size, limit); \
+	!__chk_range_not_ok((unsigned long __force)(addr), size);	\
 })
 
 #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
@@ -69,7 +71,7 @@ static inline bool pagefault_disabled(void);
 #define access_ok(addr, size)					\
 ({									\
 	WARN_ON_IN_IRQ();						\
-	likely(!__range_not_ok(addr, size, TASK_SIZE_MAX));		\
+	likely(__access_ok(addr, size));				\
 })
 
 extern int __get_user_1(void);
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
index 53de044e5654..da534fb7b5c6 100644
--- a/arch/x86/kernel/dumpstack.c
+++ b/arch/x86/kernel/dumpstack.c
@@ -85,7 +85,7 @@ static int copy_code(struct pt_regs *regs, u8 *buf, unsigned long src,
 	 * Make sure userspace isn't trying to trick us into dumping kernel
 	 * memory by pointing the userspace instruction pointer at it.
 	 */
-	if (__chk_range_not_ok(src, nbytes, TASK_SIZE_MAX))
+	if (!__access_ok((void __user *)src, nbytes))
 		return -EINVAL;
 
 	/*
diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c
index 15b058eefc4e..ee117fcf46ed 100644
--- a/arch/x86/kernel/stacktrace.c
+++ b/arch/x86/kernel/stacktrace.c
@@ -90,7 +90,7 @@ copy_stack_frame(const struct stack_frame_user __user *fp,
 {
 	int ret;
 
-	if (__range_not_ok(fp, sizeof(*frame), TASK_SIZE))
+	if (!__access_ok(fp, sizeof(*frame)))
 		return 0;
 
 	ret = 1;
diff --git a/arch/x86/lib/usercopy.c b/arch/x86/lib/usercopy.c
index c3e8a62ca561..ad0139d25401 100644
--- a/arch/x86/lib/usercopy.c
+++ b/arch/x86/lib/usercopy.c
@@ -32,7 +32,7 @@ copy_from_user_nmi(void *to, const void __user *from, unsigned long n)
 {
 	unsigned long ret;
 
-	if (__range_not_ok(from, n, TASK_SIZE))
+	if (!__access_ok(from, n))
 		return n;
 
 	if (!nmi_uaccess_okay())
-- 
2.29.2


WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	linux-arch@vger.kernel.org, linux-mm@kvack.org,
	linux-api@vger.kernel.org, arnd@arndb.de,
	linux-kernel@vger.kernel.org, viro@zeniv.linux.org.uk
Cc: linux@armlinux.org.uk, will@kernel.org, guoren@kernel.org,
	bcain@codeaurora.org, geert@linux-m68k.org, monstr@monstr.eu,
	tsbogend@alpha.franken.de, nickhu@andestech.com,
	green.hu@gmail.com, dinguyen@kernel.org, shorne@gmail.com,
	deller@gmx.de, mpe@ellerman.id.au, peterz@infradead.org,
	mingo@redhat.com, mark.rutland@arm.com, hca@linux.ibm.com,
	dalias@libc.org, davem@davemloft.net, richard@nod.at,
	x86@kernel.org, jcmvbkbc@gmail.com, ebiederm@xmission.com,
	akpm@linux-foundation.org, ardb@kernel.org,
	linux-alpha@vger.kernel.org, linux-snps-arc@lists.infradead.org,
	linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, openrisc@lists.librecores.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-sh@vger.kernel.org, sparclinux@vger.kernel.org,
	linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org,
	Christoph Hellwig <hch@infradead.org>
Subject: [PATCH v2 05/18] x86: remove __range_not_ok()
Date: Wed, 16 Feb 2022 14:13:19 +0100	[thread overview]
Message-ID: <20220216131332.1489939-6-arnd@kernel.org> (raw)
In-Reply-To: <20220216131332.1489939-1-arnd@kernel.org>

From: Arnd Bergmann <arnd@arndb.de>

The __range_not_ok() helper is an x86 (and sparc64) specific interface
that does roughly the same thing as __access_ok(), but with different
calling conventions.

Change this to use the normal interface in order for consistency as we
clean up all access_ok() implementations.

This changes the limit from TASK_SIZE to TASK_SIZE_MAX, which Al points
out is the right thing do do here anyway.

The callers have to use __access_ok() instead of the normal access_ok()
though, because on x86 that contains a WARN_ON_IN_IRQ() check that cannot
be used inside of NMI context while tracing.

Suggested-by: Al Viro <viro@zeniv.linux.org.uk>
Suggested-by: Christoph Hellwig <hch@infradead.org>
Link: https://lore.kernel.org/lkml/YgsUKcXGR7r4nINj@zeniv-ca.linux.org.uk/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/x86/events/core.c         |  2 +-
 arch/x86/include/asm/uaccess.h | 10 ++++++----
 arch/x86/kernel/dumpstack.c    |  2 +-
 arch/x86/kernel/stacktrace.c   |  2 +-
 arch/x86/lib/usercopy.c        |  2 +-
 5 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index e686c5e0537b..eef816fc216d 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -2794,7 +2794,7 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *re
 static inline int
 valid_user_frame(const void __user *fp, unsigned long size)
 {
-	return (__range_not_ok(fp, size, TASK_SIZE) == 0);
+	return __access_ok(fp, size);
 }
 
 static unsigned long get_segment_base(unsigned int segment)
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
index ac96f9b2d64b..79c4869ccdd6 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -16,8 +16,10 @@
  * Test whether a block of memory is a valid user space address.
  * Returns 0 if the range is valid, nonzero otherwise.
  */
-static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, unsigned long limit)
+static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size)
 {
+	unsigned long limit = TASK_SIZE_MAX;
+
 	/*
 	 * If we have used "sizeof()" for the size,
 	 * we know it won't overflow the limit (but
@@ -35,10 +37,10 @@ static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, un
 	return unlikely(addr > limit);
 }
 
-#define __range_not_ok(addr, size, limit)				\
+#define __access_ok(addr, size)						\
 ({									\
 	__chk_user_ptr(addr);						\
-	__chk_range_not_ok((unsigned long __force)(addr), size, limit); \
+	!__chk_range_not_ok((unsigned long __force)(addr), size);	\
 })
 
 #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
@@ -69,7 +71,7 @@ static inline bool pagefault_disabled(void);
 #define access_ok(addr, size)					\
 ({									\
 	WARN_ON_IN_IRQ();						\
-	likely(!__range_not_ok(addr, size, TASK_SIZE_MAX));		\
+	likely(__access_ok(addr, size));				\
 })
 
 extern int __get_user_1(void);
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
index 53de044e5654..da534fb7b5c6 100644
--- a/arch/x86/kernel/dumpstack.c
+++ b/arch/x86/kernel/dumpstack.c
@@ -85,7 +85,7 @@ static int copy_code(struct pt_regs *regs, u8 *buf, unsigned long src,
 	 * Make sure userspace isn't trying to trick us into dumping kernel
 	 * memory by pointing the userspace instruction pointer at it.
 	 */
-	if (__chk_range_not_ok(src, nbytes, TASK_SIZE_MAX))
+	if (!__access_ok((void __user *)src, nbytes))
 		return -EINVAL;
 
 	/*
diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c
index 15b058eefc4e..ee117fcf46ed 100644
--- a/arch/x86/kernel/stacktrace.c
+++ b/arch/x86/kernel/stacktrace.c
@@ -90,7 +90,7 @@ copy_stack_frame(const struct stack_frame_user __user *fp,
 {
 	int ret;
 
-	if (__range_not_ok(fp, sizeof(*frame), TASK_SIZE))
+	if (!__access_ok(fp, sizeof(*frame)))
 		return 0;
 
 	ret = 1;
diff --git a/arch/x86/lib/usercopy.c b/arch/x86/lib/usercopy.c
index c3e8a62ca561..ad0139d25401 100644
--- a/arch/x86/lib/usercopy.c
+++ b/arch/x86/lib/usercopy.c
@@ -32,7 +32,7 @@ copy_from_user_nmi(void *to, const void __user *from, unsigned long n)
 {
 	unsigned long ret;
 
-	if (__range_not_ok(from, n, TASK_SIZE))
+	if (!__access_ok(from, n))
 		return n;
 
 	if (!nmi_uaccess_okay())
-- 
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: Linus Torvalds <torvalds@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	linux-arch@vger.kernel.org, linux-mm@kvack.org,
	linux-api@vger.kernel.org, arnd@arndb.de,
	linux-kernel@vger.kernel.org, viro@zeniv.linux.org.uk
Cc: linux@armlinux.org.uk, will@kernel.org, guoren@kernel.org,
	bcain@codeaurora.org, geert@linux-m68k.org, monstr@monstr.eu,
	tsbogend@alpha.franken.de, nickhu@andestech.com,
	green.hu@gmail.com, dinguyen@kernel.org, shorne@gmail.com,
	deller@gmx.de, mpe@ellerman.id.au, peterz@infradead.org,
	mingo@redhat.com, mark.rutland@arm.com, hca@linux.ibm.com,
	dalias@libc.org, davem@davemloft.net, richard@nod.at,
	x86@kernel.org, jcmvbkbc@gmail.com, ebiederm@xmission.com,
	akpm@linux-foundation.org, ardb@kernel.org,
	linux-alpha@vger.kernel.org, linux-snps-arc@lists.infradead.org,
	linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, openrisc@lists.librecores.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-sh@vger.kernel.org, sparclinux@vger.kernel.org,
	linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org,
	Christoph Hellwig <hch@infradead.org>
Subject: [PATCH v2 05/18] x86: remove __range_not_ok()
Date: Wed, 16 Feb 2022 14:13:19 +0100	[thread overview]
Message-ID: <20220216131332.1489939-6-arnd@kernel.org> (raw)
In-Reply-To: <20220216131332.1489939-1-arnd@kernel.org>

From: Arnd Bergmann <arnd@arndb.de>

The __range_not_ok() helper is an x86 (and sparc64) specific interface
that does roughly the same thing as __access_ok(), but with different
calling conventions.

Change this to use the normal interface in order for consistency as we
clean up all access_ok() implementations.

This changes the limit from TASK_SIZE to TASK_SIZE_MAX, which Al points
out is the right thing do do here anyway.

The callers have to use __access_ok() instead of the normal access_ok()
though, because on x86 that contains a WARN_ON_IN_IRQ() check that cannot
be used inside of NMI context while tracing.

Suggested-by: Al Viro <viro@zeniv.linux.org.uk>
Suggested-by: Christoph Hellwig <hch@infradead.org>
Link: https://lore.kernel.org/lkml/YgsUKcXGR7r4nINj@zeniv-ca.linux.org.uk/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/x86/events/core.c         |  2 +-
 arch/x86/include/asm/uaccess.h | 10 ++++++----
 arch/x86/kernel/dumpstack.c    |  2 +-
 arch/x86/kernel/stacktrace.c   |  2 +-
 arch/x86/lib/usercopy.c        |  2 +-
 5 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index e686c5e0537b..eef816fc216d 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -2794,7 +2794,7 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *re
 static inline int
 valid_user_frame(const void __user *fp, unsigned long size)
 {
-	return (__range_not_ok(fp, size, TASK_SIZE) == 0);
+	return __access_ok(fp, size);
 }
 
 static unsigned long get_segment_base(unsigned int segment)
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
index ac96f9b2d64b..79c4869ccdd6 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -16,8 +16,10 @@
  * Test whether a block of memory is a valid user space address.
  * Returns 0 if the range is valid, nonzero otherwise.
  */
-static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, unsigned long limit)
+static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size)
 {
+	unsigned long limit = TASK_SIZE_MAX;
+
 	/*
 	 * If we have used "sizeof()" for the size,
 	 * we know it won't overflow the limit (but
@@ -35,10 +37,10 @@ static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, un
 	return unlikely(addr > limit);
 }
 
-#define __range_not_ok(addr, size, limit)				\
+#define __access_ok(addr, size)						\
 ({									\
 	__chk_user_ptr(addr);						\
-	__chk_range_not_ok((unsigned long __force)(addr), size, limit); \
+	!__chk_range_not_ok((unsigned long __force)(addr), size);	\
 })
 
 #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
@@ -69,7 +71,7 @@ static inline bool pagefault_disabled(void);
 #define access_ok(addr, size)					\
 ({									\
 	WARN_ON_IN_IRQ();						\
-	likely(!__range_not_ok(addr, size, TASK_SIZE_MAX));		\
+	likely(__access_ok(addr, size));				\
 })
 
 extern int __get_user_1(void);
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
index 53de044e5654..da534fb7b5c6 100644
--- a/arch/x86/kernel/dumpstack.c
+++ b/arch/x86/kernel/dumpstack.c
@@ -85,7 +85,7 @@ static int copy_code(struct pt_regs *regs, u8 *buf, unsigned long src,
 	 * Make sure userspace isn't trying to trick us into dumping kernel
 	 * memory by pointing the userspace instruction pointer at it.
 	 */
-	if (__chk_range_not_ok(src, nbytes, TASK_SIZE_MAX))
+	if (!__access_ok((void __user *)src, nbytes))
 		return -EINVAL;
 
 	/*
diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c
index 15b058eefc4e..ee117fcf46ed 100644
--- a/arch/x86/kernel/stacktrace.c
+++ b/arch/x86/kernel/stacktrace.c
@@ -90,7 +90,7 @@ copy_stack_frame(const struct stack_frame_user __user *fp,
 {
 	int ret;
 
-	if (__range_not_ok(fp, sizeof(*frame), TASK_SIZE))
+	if (!__access_ok(fp, sizeof(*frame)))
 		return 0;
 
 	ret = 1;
diff --git a/arch/x86/lib/usercopy.c b/arch/x86/lib/usercopy.c
index c3e8a62ca561..ad0139d25401 100644
--- a/arch/x86/lib/usercopy.c
+++ b/arch/x86/lib/usercopy.c
@@ -32,7 +32,7 @@ copy_from_user_nmi(void *to, const void __user *from, unsigned long n)
 {
 	unsigned long ret;
 
-	if (__range_not_ok(from, n, TASK_SIZE))
+	if (!__access_ok(from, n))
 		return n;
 
 	if (!nmi_uaccess_okay())
-- 
2.29.2


_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	linux-arch@vger.kernel.org, linux-mm@kvack.org,
	linux-api@vger.kernel.org, arnd@arndb.de,
	linux-kernel@vger.kernel.org, viro@zeniv.linux.org.uk
Cc: mark.rutland@arm.com, dalias@libc.org,
	linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org,
	peterz@infradead.org, jcmvbkbc@gmail.com, guoren@kernel.org,
	sparclinux@vger.kernel.org, linux-hexagon@vger.kernel.org,
	linux-riscv@lists.infradead.org, will@kernel.org,
	ardb@kernel.org, linux-s390@vger.kernel.org,
	bcain@codeaurora.org, deller@gmx.de, x86@kernel.org,
	linux@armlinux.org.uk, linux-csky@vger.kernel.org,
	Christoph Hellwig <hch@infradead.org>,
	mingo@redhat.com, geert@linux-m68k.org,
	linux-snps-arc@lists.infradead.org,
	linux-xtensa@linux-xtensa.org, hca@linux.ibm.com,
	linux-alpha@vger.kernel.org, linux-um@lists.infradead.org,
	linux-m68k@lists.linux-m68k.org, openrisc@lists.librecores.org,
	green.hu@gmail.com, shorne@gmail.com, monstr@monstr.eu,
	tsbogend@alpha.franken.de, linux-parisc@vger.kernel.org,
	nickhu@andestech.com, linux-mips@vger.kernel.org,
	dinguyen@kernel.org, ebiederm@xmission.com, richard@nod.at,
	akpm@linux-foundation.org, linuxppc-dev@lists.ozlabs.org,
	davem@davemloft.net
Subject: [PATCH v2 05/18] x86: remove __range_not_ok()
Date: Wed, 16 Feb 2022 14:13:19 +0100	[thread overview]
Message-ID: <20220216131332.1489939-6-arnd@kernel.org> (raw)
In-Reply-To: <20220216131332.1489939-1-arnd@kernel.org>

From: Arnd Bergmann <arnd@arndb.de>

The __range_not_ok() helper is an x86 (and sparc64) specific interface
that does roughly the same thing as __access_ok(), but with different
calling conventions.

Change this to use the normal interface in order for consistency as we
clean up all access_ok() implementations.

This changes the limit from TASK_SIZE to TASK_SIZE_MAX, which Al points
out is the right thing do do here anyway.

The callers have to use __access_ok() instead of the normal access_ok()
though, because on x86 that contains a WARN_ON_IN_IRQ() check that cannot
be used inside of NMI context while tracing.

Suggested-by: Al Viro <viro@zeniv.linux.org.uk>
Suggested-by: Christoph Hellwig <hch@infradead.org>
Link: https://lore.kernel.org/lkml/YgsUKcXGR7r4nINj@zeniv-ca.linux.org.uk/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/x86/events/core.c         |  2 +-
 arch/x86/include/asm/uaccess.h | 10 ++++++----
 arch/x86/kernel/dumpstack.c    |  2 +-
 arch/x86/kernel/stacktrace.c   |  2 +-
 arch/x86/lib/usercopy.c        |  2 +-
 5 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index e686c5e0537b..eef816fc216d 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -2794,7 +2794,7 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *re
 static inline int
 valid_user_frame(const void __user *fp, unsigned long size)
 {
-	return (__range_not_ok(fp, size, TASK_SIZE) == 0);
+	return __access_ok(fp, size);
 }
 
 static unsigned long get_segment_base(unsigned int segment)
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
index ac96f9b2d64b..79c4869ccdd6 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -16,8 +16,10 @@
  * Test whether a block of memory is a valid user space address.
  * Returns 0 if the range is valid, nonzero otherwise.
  */
-static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, unsigned long limit)
+static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size)
 {
+	unsigned long limit = TASK_SIZE_MAX;
+
 	/*
 	 * If we have used "sizeof()" for the size,
 	 * we know it won't overflow the limit (but
@@ -35,10 +37,10 @@ static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, un
 	return unlikely(addr > limit);
 }
 
-#define __range_not_ok(addr, size, limit)				\
+#define __access_ok(addr, size)						\
 ({									\
 	__chk_user_ptr(addr);						\
-	__chk_range_not_ok((unsigned long __force)(addr), size, limit); \
+	!__chk_range_not_ok((unsigned long __force)(addr), size);	\
 })
 
 #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
@@ -69,7 +71,7 @@ static inline bool pagefault_disabled(void);
 #define access_ok(addr, size)					\
 ({									\
 	WARN_ON_IN_IRQ();						\
-	likely(!__range_not_ok(addr, size, TASK_SIZE_MAX));		\
+	likely(__access_ok(addr, size));				\
 })
 
 extern int __get_user_1(void);
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
index 53de044e5654..da534fb7b5c6 100644
--- a/arch/x86/kernel/dumpstack.c
+++ b/arch/x86/kernel/dumpstack.c
@@ -85,7 +85,7 @@ static int copy_code(struct pt_regs *regs, u8 *buf, unsigned long src,
 	 * Make sure userspace isn't trying to trick us into dumping kernel
 	 * memory by pointing the userspace instruction pointer at it.
 	 */
-	if (__chk_range_not_ok(src, nbytes, TASK_SIZE_MAX))
+	if (!__access_ok((void __user *)src, nbytes))
 		return -EINVAL;
 
 	/*
diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c
index 15b058eefc4e..ee117fcf46ed 100644
--- a/arch/x86/kernel/stacktrace.c
+++ b/arch/x86/kernel/stacktrace.c
@@ -90,7 +90,7 @@ copy_stack_frame(const struct stack_frame_user __user *fp,
 {
 	int ret;
 
-	if (__range_not_ok(fp, sizeof(*frame), TASK_SIZE))
+	if (!__access_ok(fp, sizeof(*frame)))
 		return 0;
 
 	ret = 1;
diff --git a/arch/x86/lib/usercopy.c b/arch/x86/lib/usercopy.c
index c3e8a62ca561..ad0139d25401 100644
--- a/arch/x86/lib/usercopy.c
+++ b/arch/x86/lib/usercopy.c
@@ -32,7 +32,7 @@ copy_from_user_nmi(void *to, const void __user *from, unsigned long n)
 {
 	unsigned long ret;
 
-	if (__range_not_ok(from, n, TASK_SIZE))
+	if (!__access_ok(from, n))
 		return n;
 
 	if (!nmi_uaccess_okay())
-- 
2.29.2


WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@kernel.org>
To: openrisc@lists.librecores.org
Subject: [OpenRISC] [PATCH v2 05/18] x86: remove __range_not_ok()
Date: Wed, 16 Feb 2022 14:13:19 +0100	[thread overview]
Message-ID: <20220216131332.1489939-6-arnd@kernel.org> (raw)
In-Reply-To: <20220216131332.1489939-1-arnd@kernel.org>

From: Arnd Bergmann <arnd@arndb.de>

The __range_not_ok() helper is an x86 (and sparc64) specific interface
that does roughly the same thing as __access_ok(), but with different
calling conventions.

Change this to use the normal interface in order for consistency as we
clean up all access_ok() implementations.

This changes the limit from TASK_SIZE to TASK_SIZE_MAX, which Al points
out is the right thing do do here anyway.

The callers have to use __access_ok() instead of the normal access_ok()
though, because on x86 that contains a WARN_ON_IN_IRQ() check that cannot
be used inside of NMI context while tracing.

Suggested-by: Al Viro <viro@zeniv.linux.org.uk>
Suggested-by: Christoph Hellwig <hch@infradead.org>
Link: https://lore.kernel.org/lkml/YgsUKcXGR7r4nINj at zeniv-ca.linux.org.uk/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/x86/events/core.c         |  2 +-
 arch/x86/include/asm/uaccess.h | 10 ++++++----
 arch/x86/kernel/dumpstack.c    |  2 +-
 arch/x86/kernel/stacktrace.c   |  2 +-
 arch/x86/lib/usercopy.c        |  2 +-
 5 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index e686c5e0537b..eef816fc216d 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -2794,7 +2794,7 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *re
 static inline int
 valid_user_frame(const void __user *fp, unsigned long size)
 {
-	return (__range_not_ok(fp, size, TASK_SIZE) == 0);
+	return __access_ok(fp, size);
 }
 
 static unsigned long get_segment_base(unsigned int segment)
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
index ac96f9b2d64b..79c4869ccdd6 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -16,8 +16,10 @@
  * Test whether a block of memory is a valid user space address.
  * Returns 0 if the range is valid, nonzero otherwise.
  */
-static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, unsigned long limit)
+static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size)
 {
+	unsigned long limit = TASK_SIZE_MAX;
+
 	/*
 	 * If we have used "sizeof()" for the size,
 	 * we know it won't overflow the limit (but
@@ -35,10 +37,10 @@ static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, un
 	return unlikely(addr > limit);
 }
 
-#define __range_not_ok(addr, size, limit)				\
+#define __access_ok(addr, size)						\
 ({									\
 	__chk_user_ptr(addr);						\
-	__chk_range_not_ok((unsigned long __force)(addr), size, limit); \
+	!__chk_range_not_ok((unsigned long __force)(addr), size);	\
 })
 
 #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
@@ -69,7 +71,7 @@ static inline bool pagefault_disabled(void);
 #define access_ok(addr, size)					\
 ({									\
 	WARN_ON_IN_IRQ();						\
-	likely(!__range_not_ok(addr, size, TASK_SIZE_MAX));		\
+	likely(__access_ok(addr, size));				\
 })
 
 extern int __get_user_1(void);
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
index 53de044e5654..da534fb7b5c6 100644
--- a/arch/x86/kernel/dumpstack.c
+++ b/arch/x86/kernel/dumpstack.c
@@ -85,7 +85,7 @@ static int copy_code(struct pt_regs *regs, u8 *buf, unsigned long src,
 	 * Make sure userspace isn't trying to trick us into dumping kernel
 	 * memory by pointing the userspace instruction pointer at it.
 	 */
-	if (__chk_range_not_ok(src, nbytes, TASK_SIZE_MAX))
+	if (!__access_ok((void __user *)src, nbytes))
 		return -EINVAL;
 
 	/*
diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c
index 15b058eefc4e..ee117fcf46ed 100644
--- a/arch/x86/kernel/stacktrace.c
+++ b/arch/x86/kernel/stacktrace.c
@@ -90,7 +90,7 @@ copy_stack_frame(const struct stack_frame_user __user *fp,
 {
 	int ret;
 
-	if (__range_not_ok(fp, sizeof(*frame), TASK_SIZE))
+	if (!__access_ok(fp, sizeof(*frame)))
 		return 0;
 
 	ret = 1;
diff --git a/arch/x86/lib/usercopy.c b/arch/x86/lib/usercopy.c
index c3e8a62ca561..ad0139d25401 100644
--- a/arch/x86/lib/usercopy.c
+++ b/arch/x86/lib/usercopy.c
@@ -32,7 +32,7 @@ copy_from_user_nmi(void *to, const void __user *from, unsigned long n)
 {
 	unsigned long ret;
 
-	if (__range_not_ok(from, n, TASK_SIZE))
+	if (!__access_ok(from, n))
 		return n;
 
 	if (!nmi_uaccess_okay())
-- 
2.29.2


WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	linux-arch@vger.kernel.org, linux-mm@kvack.org,
	linux-api@vger.kernel.org, arnd@arndb.de,
	linux-kernel@vger.kernel.org, viro@zeniv.linux.org.uk
Cc: linux@armlinux.org.uk, will@kernel.org, guoren@kernel.org,
	bcain@codeaurora.org, geert@linux-m68k.org, monstr@monstr.eu,
	tsbogend@alpha.franken.de, nickhu@andestech.com,
	green.hu@gmail.com, dinguyen@kernel.org, shorne@gmail.com,
	deller@gmx.de, mpe@ellerman.id.au, peterz@infradead.org,
	mingo@redhat.com, mark.rutland@arm.com, hca@linux.ibm.com,
	dalias@libc.org, davem@davemloft.net, richard@nod.at,
	x86@kernel.org, jcmvbkbc@gmail.com, ebiederm@xmission.com,
	akpm@linux-foundation.org, ardb@kernel.org,
	linux-alpha@vger.kernel.org, linux-snps-arc@lists.infradead.org,
	linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, openrisc@lists.librecores.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-sh@vger.kernel.org, sparclinux@vger.kernel.org,
	linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org,
	Christoph Hellwig <hch@infradead.org>
Subject: [PATCH v2 05/18] x86: remove __range_not_ok()
Date: Wed, 16 Feb 2022 13:13:19 +0000	[thread overview]
Message-ID: <20220216131332.1489939-6-arnd@kernel.org> (raw)
In-Reply-To: <20220216131332.1489939-1-arnd@kernel.org>

From: Arnd Bergmann <arnd@arndb.de>

The __range_not_ok() helper is an x86 (and sparc64) specific interface
that does roughly the same thing as __access_ok(), but with different
calling conventions.

Change this to use the normal interface in order for consistency as we
clean up all access_ok() implementations.

This changes the limit from TASK_SIZE to TASK_SIZE_MAX, which Al points
out is the right thing do do here anyway.

The callers have to use __access_ok() instead of the normal access_ok()
though, because on x86 that contains a WARN_ON_IN_IRQ() check that cannot
be used inside of NMI context while tracing.

Suggested-by: Al Viro <viro@zeniv.linux.org.uk>
Suggested-by: Christoph Hellwig <hch@infradead.org>
Link: https://lore.kernel.org/lkml/YgsUKcXGR7r4nINj@zeniv-ca.linux.org.uk/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/x86/events/core.c         |  2 +-
 arch/x86/include/asm/uaccess.h | 10 ++++++----
 arch/x86/kernel/dumpstack.c    |  2 +-
 arch/x86/kernel/stacktrace.c   |  2 +-
 arch/x86/lib/usercopy.c        |  2 +-
 5 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index e686c5e0537b..eef816fc216d 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -2794,7 +2794,7 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *re
 static inline int
 valid_user_frame(const void __user *fp, unsigned long size)
 {
-	return (__range_not_ok(fp, size, TASK_SIZE) = 0);
+	return __access_ok(fp, size);
 }
 
 static unsigned long get_segment_base(unsigned int segment)
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
index ac96f9b2d64b..79c4869ccdd6 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -16,8 +16,10 @@
  * Test whether a block of memory is a valid user space address.
  * Returns 0 if the range is valid, nonzero otherwise.
  */
-static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, unsigned long limit)
+static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size)
 {
+	unsigned long limit = TASK_SIZE_MAX;
+
 	/*
 	 * If we have used "sizeof()" for the size,
 	 * we know it won't overflow the limit (but
@@ -35,10 +37,10 @@ static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, un
 	return unlikely(addr > limit);
 }
 
-#define __range_not_ok(addr, size, limit)				\
+#define __access_ok(addr, size)						\
 ({									\
 	__chk_user_ptr(addr);						\
-	__chk_range_not_ok((unsigned long __force)(addr), size, limit); \
+	!__chk_range_not_ok((unsigned long __force)(addr), size);	\
 })
 
 #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
@@ -69,7 +71,7 @@ static inline bool pagefault_disabled(void);
 #define access_ok(addr, size)					\
 ({									\
 	WARN_ON_IN_IRQ();						\
-	likely(!__range_not_ok(addr, size, TASK_SIZE_MAX));		\
+	likely(__access_ok(addr, size));				\
 })
 
 extern int __get_user_1(void);
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
index 53de044e5654..da534fb7b5c6 100644
--- a/arch/x86/kernel/dumpstack.c
+++ b/arch/x86/kernel/dumpstack.c
@@ -85,7 +85,7 @@ static int copy_code(struct pt_regs *regs, u8 *buf, unsigned long src,
 	 * Make sure userspace isn't trying to trick us into dumping kernel
 	 * memory by pointing the userspace instruction pointer at it.
 	 */
-	if (__chk_range_not_ok(src, nbytes, TASK_SIZE_MAX))
+	if (!__access_ok((void __user *)src, nbytes))
 		return -EINVAL;
 
 	/*
diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c
index 15b058eefc4e..ee117fcf46ed 100644
--- a/arch/x86/kernel/stacktrace.c
+++ b/arch/x86/kernel/stacktrace.c
@@ -90,7 +90,7 @@ copy_stack_frame(const struct stack_frame_user __user *fp,
 {
 	int ret;
 
-	if (__range_not_ok(fp, sizeof(*frame), TASK_SIZE))
+	if (!__access_ok(fp, sizeof(*frame)))
 		return 0;
 
 	ret = 1;
diff --git a/arch/x86/lib/usercopy.c b/arch/x86/lib/usercopy.c
index c3e8a62ca561..ad0139d25401 100644
--- a/arch/x86/lib/usercopy.c
+++ b/arch/x86/lib/usercopy.c
@@ -32,7 +32,7 @@ copy_from_user_nmi(void *to, const void __user *from, unsigned long n)
 {
 	unsigned long ret;
 
-	if (__range_not_ok(from, n, TASK_SIZE))
+	if (!__access_ok(from, n))
 		return n;
 
 	if (!nmi_uaccess_okay())
-- 
2.29.2

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	linux-arch@vger.kernel.org, linux-mm@kvack.org,
	linux-api@vger.kernel.org, arnd@arndb.de,
	linux-kernel@vger.kernel.org, viro@zeniv.linux.org.uk
Cc: linux@armlinux.org.uk, will@kernel.org, guoren@kernel.org,
	bcain@codeaurora.org, geert@linux-m68k.org, monstr@monstr.eu,
	tsbogend@alpha.franken.de, nickhu@andestech.com,
	green.hu@gmail.com, dinguyen@kernel.org, shorne@gmail.com,
	deller@gmx.de, mpe@ellerman.id.au, peterz@infradead.org,
	mingo@redhat.com, mark.rutland@arm.com, hca@linux.ibm.com,
	dalias@libc.org, davem@davemloft.net, richard@nod.at,
	x86@kernel.org, jcmvbkbc@gmail.com, ebiederm@xmission.com,
	akpm@linux-foundation.org, ardb@kernel.org,
	linux-alpha@vger.kernel.org, linux-snps-arc@lists.infradead.org,
	linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, openrisc@lists.librecores.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-sh@vger.k
Subject: [PATCH v2 05/18] x86: remove __range_not_ok()
Date: Wed, 16 Feb 2022 14:13:19 +0100	[thread overview]
Message-ID: <20220216131332.1489939-6-arnd@kernel.org> (raw)
In-Reply-To: <20220216131332.1489939-1-arnd@kernel.org>

From: Arnd Bergmann <arnd@arndb.de>

The __range_not_ok() helper is an x86 (and sparc64) specific interface
that does roughly the same thing as __access_ok(), but with different
calling conventions.

Change this to use the normal interface in order for consistency as we
clean up all access_ok() implementations.

This changes the limit from TASK_SIZE to TASK_SIZE_MAX, which Al points
out is the right thing do do here anyway.

The callers have to use __access_ok() instead of the normal access_ok()
though, because on x86 that contains a WARN_ON_IN_IRQ() check that cannot
be used inside of NMI context while tracing.

Suggested-by: Al Viro <viro@zeniv.linux.org.uk>
Suggested-by: Christoph Hellwig <hch@infradead.org>
Link: https://lore.kernel.org/lkml/YgsUKcXGR7r4nINj@zeniv-ca.linux.org.uk/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/x86/events/core.c         |  2 +-
 arch/x86/include/asm/uaccess.h | 10 ++++++----
 arch/x86/kernel/dumpstack.c    |  2 +-
 arch/x86/kernel/stacktrace.c   |  2 +-
 arch/x86/lib/usercopy.c        |  2 +-
 5 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index e686c5e0537b..eef816fc216d 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -2794,7 +2794,7 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *re
 static inline int
 valid_user_frame(const void __user *fp, unsigned long size)
 {
-	return (__range_not_ok(fp, size, TASK_SIZE) == 0);
+	return __access_ok(fp, size);
 }
 
 static unsigned long get_segment_base(unsigned int segment)
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
index ac96f9b2d64b..79c4869ccdd6 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -16,8 +16,10 @@
  * Test whether a block of memory is a valid user space address.
  * Returns 0 if the range is valid, nonzero otherwise.
  */
-static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, unsigned long limit)
+static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size)
 {
+	unsigned long limit = TASK_SIZE_MAX;
+
 	/*
 	 * If we have used "sizeof()" for the size,
 	 * we know it won't overflow the limit (but
@@ -35,10 +37,10 @@ static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, un
 	return unlikely(addr > limit);
 }
 
-#define __range_not_ok(addr, size, limit)				\
+#define __access_ok(addr, size)						\
 ({									\
 	__chk_user_ptr(addr);						\
-	__chk_range_not_ok((unsigned long __force)(addr), size, limit); \
+	!__chk_range_not_ok((unsigned long __force)(addr), size);	\
 })
 
 #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
@@ -69,7 +71,7 @@ static inline bool pagefault_disabled(void);
 #define access_ok(addr, size)					\
 ({									\
 	WARN_ON_IN_IRQ();						\
-	likely(!__range_not_ok(addr, size, TASK_SIZE_MAX));		\
+	likely(__access_ok(addr, size));				\
 })
 
 extern int __get_user_1(void);
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
index 53de044e5654..da534fb7b5c6 100644
--- a/arch/x86/kernel/dumpstack.c
+++ b/arch/x86/kernel/dumpstack.c
@@ -85,7 +85,7 @@ static int copy_code(struct pt_regs *regs, u8 *buf, unsigned long src,
 	 * Make sure userspace isn't trying to trick us into dumping kernel
 	 * memory by pointing the userspace instruction pointer at it.
 	 */
-	if (__chk_range_not_ok(src, nbytes, TASK_SIZE_MAX))
+	if (!__access_ok((void __user *)src, nbytes))
 		return -EINVAL;
 
 	/*
diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c
index 15b058eefc4e..ee117fcf46ed 100644
--- a/arch/x86/kernel/stacktrace.c
+++ b/arch/x86/kernel/stacktrace.c
@@ -90,7 +90,7 @@ copy_stack_frame(const struct stack_frame_user __user *fp,
 {
 	int ret;
 
-	if (__range_not_ok(fp, sizeof(*frame), TASK_SIZE))
+	if (!__access_ok(fp, sizeof(*frame)))
 		return 0;
 
 	ret = 1;
diff --git a/arch/x86/lib/usercopy.c b/arch/x86/lib/usercopy.c
index c3e8a62ca561..ad0139d25401 100644
--- a/arch/x86/lib/usercopy.c
+++ b/arch/x86/lib/usercopy.c
@@ -32,7 +32,7 @@ copy_from_user_nmi(void *to, const void __user *from, unsigned long n)
 {
 	unsigned long ret;
 
-	if (__range_not_ok(from, n, TASK_SIZE))
+	if (!__access_ok(from, n))
 		return n;
 
 	if (!nmi_uaccess_okay())
-- 
2.29.2

  parent reply	other threads:[~2022-02-16 13:17 UTC|newest]

Thread overview: 528+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-16 13:13 [PATCH v2 00/18] clean up asm/uaccess.h, kill set_fs for good Arnd Bergmann
2022-02-16 13:13 ` Arnd Bergmann
2022-02-16 13:13 ` Arnd Bergmann
2022-02-16 13:13 ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13 ` Arnd Bergmann
2022-02-16 13:13 ` Arnd Bergmann
2022-02-16 13:13 ` Arnd Bergmann
2022-02-16 13:13 ` [PATCH v2 01/18] uaccess: fix integer overflow on access_ok() Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13 ` [PATCH v2 02/18] uaccess: fix nios2 and microblaze get_user_8() Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:35   ` David Laight
2022-02-16 13:35     ` David Laight
2022-02-16 13:35     ` [OpenRISC] " David Laight
2022-02-16 13:35     ` David Laight
2022-02-16 13:35     ` David Laight
2022-02-16 13:35     ` David Laight
2022-02-18  6:25   ` Christoph Hellwig
2022-02-18  6:25     ` Christoph Hellwig
2022-02-18  6:25     ` Christoph Hellwig
2022-02-18  6:25     ` [OpenRISC] " Christoph Hellwig
2022-02-18  6:25     ` Christoph Hellwig
2022-02-18  6:25     ` Christoph Hellwig
2022-02-18  6:25     ` Christoph Hellwig
2022-02-25  4:28   ` Dinh Nguyen
2022-02-25  4:28     ` Dinh Nguyen
2022-02-25  4:28     ` Dinh Nguyen
2022-02-25  4:28     ` [OpenRISC] " Dinh Nguyen
2022-02-25  4:28     ` Dinh Nguyen
2022-02-25  4:28     ` Dinh Nguyen
2022-02-25  4:28     ` Dinh Nguyen
2022-02-16 13:13 ` [PATCH v2 03/18] nds32: fix access_ok() checks in get/put_user Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-18  6:25   ` Christoph Hellwig
2022-02-18  6:25     ` Christoph Hellwig
2022-02-18  6:25     ` Christoph Hellwig
2022-02-18  6:25     ` [OpenRISC] " Christoph Hellwig
2022-02-18  6:25     ` Christoph Hellwig
2022-02-18  6:25     ` Christoph Hellwig
2022-02-18  6:25     ` Christoph Hellwig
2022-02-16 13:13 ` [PATCH v2 04/18] sparc64: add __{get,put}_kernel_nocheck() Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] [PATCH v2 04/18] sparc64: add __{get, put}_kernel_nocheck() Arnd Bergmann
2022-02-16 13:13   ` [PATCH v2 04/18] sparc64: add __{get,put}_kernel_nocheck() Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13 ` Arnd Bergmann [this message]
2022-02-16 13:13   ` [PATCH v2 05/18] x86: remove __range_not_ok() Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-18  6:28   ` Christoph Hellwig
2022-02-18  6:28     ` Christoph Hellwig
2022-02-18  6:28     ` Christoph Hellwig
2022-02-18  6:28     ` [OpenRISC] " Christoph Hellwig
2022-02-18  6:28     ` Christoph Hellwig
2022-02-18  6:28     ` Christoph Hellwig
2022-02-18  6:28     ` Christoph Hellwig
2022-02-18  7:29     ` Arnd Bergmann
2022-02-18  7:29       ` Arnd Bergmann
2022-02-18  7:29       ` Arnd Bergmann
2022-02-18  7:29       ` [OpenRISC] " Arnd Bergmann
2022-02-18  7:29       ` Arnd Bergmann
2022-02-18  7:29       ` Arnd Bergmann
2022-02-18  7:29       ` Arnd Bergmann
2022-02-18 15:45     ` David Laight
2022-02-18 15:45       ` David Laight
2022-02-18 15:45       ` [OpenRISC] " David Laight
2022-02-18 15:45       ` David Laight
2022-02-18 15:45       ` David Laight
2022-02-18 15:45       ` David Laight
2022-02-16 13:13 ` [PATCH v2 06/18] x86: use more conventional access_ok() definition Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-18  6:29   ` Christoph Hellwig
2022-02-18  6:29     ` Christoph Hellwig
2022-02-18  6:29     ` Christoph Hellwig
2022-02-18  6:29     ` [OpenRISC] " Christoph Hellwig
2022-02-18  6:29     ` Christoph Hellwig
2022-02-18  6:29     ` Christoph Hellwig
2022-02-18  6:29     ` Christoph Hellwig
2022-02-16 13:13 ` [PATCH v2 07/18] nios2: drop access_ok() check from __put_user() Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-18  6:29   ` Christoph Hellwig
2022-02-18  6:29     ` Christoph Hellwig
2022-02-18  6:29     ` Christoph Hellwig
2022-02-18  6:29     ` [OpenRISC] " Christoph Hellwig
2022-02-18  6:29     ` Christoph Hellwig
2022-02-18  6:29     ` Christoph Hellwig
2022-02-18  6:29     ` Christoph Hellwig
2022-02-23 23:30   ` Dinh Nguyen
2022-02-23 23:30     ` Dinh Nguyen
2022-02-23 23:30     ` Dinh Nguyen
2022-02-23 23:30     ` [OpenRISC] " Dinh Nguyen
2022-02-23 23:30     ` Dinh Nguyen
2022-02-23 23:30     ` Dinh Nguyen
2022-02-23 23:30     ` Dinh Nguyen
2022-02-24  7:05     ` Arnd Bergmann
2022-02-24  7:05       ` Arnd Bergmann
2022-02-24  7:05       ` Arnd Bergmann
2022-02-24  7:05       ` [OpenRISC] " Arnd Bergmann
2022-02-24  7:05       ` Arnd Bergmann
2022-02-24  7:05       ` Arnd Bergmann
2022-02-24  7:05       ` Arnd Bergmann
2022-02-16 13:13 ` [PATCH v2 08/18] uaccess: add generic __{get,put}_kernel_nofault Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] [PATCH v2 08/18] uaccess: add generic __{get, put}_kernel_nofault Arnd Bergmann
2022-02-16 13:13   ` [PATCH v2 08/18] uaccess: add generic __{get,put}_kernel_nofault Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-18  6:30   ` Christoph Hellwig
2022-02-18  6:30     ` Christoph Hellwig
2022-02-18  6:30     ` Christoph Hellwig
2022-02-18  6:30     ` [OpenRISC] [PATCH v2 08/18] uaccess: add generic __{get, put}_kernel_nofault Christoph Hellwig
2022-02-18  6:30     ` [PATCH v2 08/18] uaccess: add generic __{get,put}_kernel_nofault Christoph Hellwig
2022-02-18  6:30     ` Christoph Hellwig
2022-02-18  6:30     ` Christoph Hellwig
2022-02-18  8:55   ` Geert Uytterhoeven
2022-02-18  8:55     ` Geert Uytterhoeven
2022-02-18  8:55     ` Geert Uytterhoeven
2022-02-18  8:55     ` [OpenRISC] [PATCH v2 08/18] uaccess: add generic __{get, put}_kernel_nofault Geert Uytterhoeven
2022-02-18  8:55     ` [PATCH v2 08/18] uaccess: add generic __{get,put}_kernel_nofault Geert Uytterhoeven
2022-02-18  8:55     ` Geert Uytterhoeven
2022-02-18  8:55     ` Geert Uytterhoeven
2022-02-16 13:13 ` [PATCH v2 09/18] mips: use simpler access_ok() Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-21 13:24   ` Thomas Bogendoerfer
2022-02-21 13:24     ` Thomas Bogendoerfer
2022-02-21 13:24     ` Thomas Bogendoerfer
2022-02-21 13:24     ` [OpenRISC] " Thomas Bogendoerfer
2022-02-21 13:24     ` Thomas Bogendoerfer
2022-02-21 13:24     ` Thomas Bogendoerfer
2022-02-21 13:24     ` Thomas Bogendoerfer
2022-02-21 14:31     ` Arnd Bergmann
2022-02-21 14:31       ` Arnd Bergmann
2022-02-21 14:31       ` Arnd Bergmann
2022-02-21 14:31       ` [OpenRISC] " Arnd Bergmann
2022-02-21 14:31       ` Arnd Bergmann
2022-02-21 14:31       ` Arnd Bergmann
2022-02-21 14:31       ` Arnd Bergmann
2022-02-21 15:21       ` Thomas Bogendoerfer
2022-02-21 15:21         ` Thomas Bogendoerfer
2022-02-21 15:21         ` Thomas Bogendoerfer
2022-02-21 15:21         ` [OpenRISC] " Thomas Bogendoerfer
2022-02-21 15:21         ` Thomas Bogendoerfer
2022-02-21 15:21         ` Thomas Bogendoerfer
2022-02-21 15:21         ` Thomas Bogendoerfer
2022-02-22 16:36       ` Thomas Bogendoerfer
2022-02-22 16:36         ` Thomas Bogendoerfer
2022-02-22 16:36         ` Thomas Bogendoerfer
2022-02-22 16:36         ` [OpenRISC] " Thomas Bogendoerfer
2022-02-22 16:36         ` Thomas Bogendoerfer
2022-02-22 16:36         ` Thomas Bogendoerfer
2022-02-22 16:36         ` Thomas Bogendoerfer
2022-02-23 20:05     ` Linus Torvalds
2022-02-23 20:05       ` Linus Torvalds
2022-02-23 20:05       ` Linus Torvalds
2022-02-23 20:05       ` [OpenRISC] " Linus Torvalds
2022-02-23 20:05       ` Linus Torvalds
2022-02-23 20:05       ` Linus Torvalds
2022-02-23 20:05       ` Linus Torvalds
2022-02-23  7:41   ` Thomas Bogendoerfer
2022-02-23  7:41     ` Thomas Bogendoerfer
2022-02-23  7:41     ` Thomas Bogendoerfer
2022-02-23  7:41     ` [OpenRISC] " Thomas Bogendoerfer
2022-02-23  7:41     ` Thomas Bogendoerfer
2022-02-23  7:41     ` Thomas Bogendoerfer
2022-02-23  7:41     ` Thomas Bogendoerfer
2022-02-23  9:26     ` Arnd Bergmann
2022-02-23  9:26       ` Arnd Bergmann
2022-02-23  9:26       ` Arnd Bergmann
2022-02-23  9:26       ` [OpenRISC] " Arnd Bergmann
2022-02-23  9:26       ` Arnd Bergmann
2022-02-23  9:26       ` Arnd Bergmann
2022-02-23  9:26       ` Arnd Bergmann
2022-02-16 13:13 ` [PATCH v2 10/18] m68k: fix access_ok for coldfire Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-18  6:30   ` Christoph Hellwig
2022-02-18  6:30     ` Christoph Hellwig
2022-02-18  6:30     ` Christoph Hellwig
2022-02-18  6:30     ` [OpenRISC] " Christoph Hellwig
2022-02-18  6:30     ` Christoph Hellwig
2022-02-18  6:30     ` Christoph Hellwig
2022-02-18  6:30     ` Christoph Hellwig
2022-02-18  9:00   ` Geert Uytterhoeven
2022-02-18  9:00     ` Geert Uytterhoeven
2022-02-18  9:00     ` Geert Uytterhoeven
2022-02-18  9:00     ` [OpenRISC] " Geert Uytterhoeven
2022-02-18  9:00     ` Geert Uytterhoeven
2022-02-18  9:00     ` Geert Uytterhoeven
2022-02-18  9:00     ` Geert Uytterhoeven
2022-02-18  9:24     ` Arnd Bergmann
2022-02-18  9:24       ` Arnd Bergmann
2022-02-18  9:24       ` Arnd Bergmann
2022-02-18  9:24       ` [OpenRISC] " Arnd Bergmann
2022-02-18  9:24       ` Arnd Bergmann
2022-02-18  9:24       ` Arnd Bergmann
2022-02-18  9:24       ` Arnd Bergmann
2022-02-16 13:13 ` [PATCH v2 11/18] arm64: simplify access_ok() Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13 ` [PATCH v2 12/18] uaccess: fix type mismatch warnings from access_ok() Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-18  6:31   ` Christoph Hellwig
2022-02-18  6:31     ` Christoph Hellwig
2022-02-18  6:31     ` Christoph Hellwig
2022-02-18  6:31     ` [OpenRISC] " Christoph Hellwig
2022-02-18  6:31     ` Christoph Hellwig
2022-02-18  6:31     ` Christoph Hellwig
2022-02-18  6:31     ` Christoph Hellwig
2022-02-25  4:30   ` Dinh Nguyen
2022-02-25  4:30     ` Dinh Nguyen
2022-02-25  4:30     ` Dinh Nguyen
2022-02-25  4:30     ` [OpenRISC] " Dinh Nguyen
2022-02-25  4:30     ` Dinh Nguyen
2022-02-25  4:30     ` Dinh Nguyen
2022-02-25  4:30     ` Dinh Nguyen
2022-02-16 13:13 ` [PATCH v2 13/18] uaccess: generalize access_ok() Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-17  7:52   ` Arnd Bergmann
2022-02-17  7:52     ` Arnd Bergmann
2022-02-17  7:52     ` Arnd Bergmann
2022-02-17  7:52     ` [OpenRISC] " Arnd Bergmann
2022-02-17  7:52     ` Arnd Bergmann
2022-02-17  7:52     ` Arnd Bergmann
2022-02-17  7:52     ` Arnd Bergmann
2022-02-17 19:15   ` Andy Lutomirski
2022-02-17 19:15     ` Andy Lutomirski
2022-02-17 19:15     ` Andy Lutomirski
2022-02-17 19:15     ` [OpenRISC] " Andy Lutomirski
2022-02-17 19:15     ` Andy Lutomirski
2022-02-17 19:15     ` Andy Lutomirski
2022-02-17 19:15     ` Andy Lutomirski
2022-02-18  7:16     ` Arnd Bergmann
2022-02-18  7:16       ` Arnd Bergmann
2022-02-18  7:16       ` Arnd Bergmann
2022-02-18  7:16       ` [OpenRISC] " Arnd Bergmann
2022-02-18  7:16       ` Arnd Bergmann
2022-02-18  7:16       ` Arnd Bergmann
2022-02-18  7:16       ` Arnd Bergmann
2022-02-18  9:30     ` David Laight
2022-02-18  9:30       ` David Laight
2022-02-18  9:30       ` David Laight
2022-02-18  9:30       ` [OpenRISC] " David Laight
2022-02-18  9:30       ` David Laight
2022-02-18  9:30       ` David Laight
2022-02-18  9:30       ` David Laight
2022-02-18 18:07       ` Andy Lutomirski
2022-02-18 18:07         ` Andy Lutomirski
2022-02-18 18:07         ` Andy Lutomirski
2022-02-18 18:07         ` [OpenRISC] " Andy Lutomirski
2022-02-18 18:07         ` Andy Lutomirski
2022-02-18 18:07         ` Andy Lutomirski
2022-02-18 18:07         ` Andy Lutomirski
2022-02-18  6:34   ` Christoph Hellwig
2022-02-18  6:34     ` Christoph Hellwig
2022-02-18  6:34     ` Christoph Hellwig
2022-02-18  6:34     ` [OpenRISC] " Christoph Hellwig
2022-02-18  6:34     ` Christoph Hellwig
2022-02-18  6:34     ` Christoph Hellwig
2022-02-18  6:34     ` Christoph Hellwig
2022-02-18  7:23     ` Arnd Bergmann
2022-02-18  7:23       ` Arnd Bergmann
2022-02-18  7:23       ` Arnd Bergmann
2022-02-18  7:23       ` [OpenRISC] " Arnd Bergmann
2022-02-18  7:23       ` Arnd Bergmann
2022-02-18  7:23       ` Arnd Bergmann
2022-02-18  7:23       ` Arnd Bergmann
2022-02-18  9:04   ` Geert Uytterhoeven
2022-02-18  9:04     ` Geert Uytterhoeven
2022-02-18  9:04     ` Geert Uytterhoeven
2022-02-18  9:04     ` [OpenRISC] " Geert Uytterhoeven
2022-02-18  9:04     ` Geert Uytterhoeven
2022-02-18  9:04     ` Geert Uytterhoeven
2022-02-18  9:04     ` Geert Uytterhoeven
2022-02-24  8:29   ` Stafford Horne
2022-02-24  8:29     ` Stafford Horne
2022-02-24  8:29     ` Stafford Horne
2022-02-24  8:29     ` [OpenRISC] " Stafford Horne
2022-02-24  8:29     ` Stafford Horne
2022-02-24  8:29     ` Stafford Horne
2022-02-24  8:29     ` Stafford Horne
2022-02-24  8:41     ` Arnd Bergmann
2022-02-24  8:41       ` Arnd Bergmann
2022-02-24  8:41       ` Arnd Bergmann
2022-02-24  8:41       ` [OpenRISC] " Arnd Bergmann
2022-02-24  8:41       ` Arnd Bergmann
2022-02-24  8:41       ` Arnd Bergmann
2022-02-24  8:41       ` Arnd Bergmann
2022-02-25  4:31   ` Dinh Nguyen
2022-02-25  4:31     ` Dinh Nguyen
2022-02-25  4:31     ` Dinh Nguyen
2022-02-25  4:31     ` [OpenRISC] " Dinh Nguyen
2022-02-25  4:31     ` Dinh Nguyen
2022-02-25  4:31     ` Dinh Nguyen
2022-02-25  4:31     ` Dinh Nguyen
2022-02-16 13:13 ` [PATCH v2 14/18] lib/test_lockup: fix kernel pointer check for separate address spaces Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-18  6:35   ` Christoph Hellwig
2022-02-18  6:35     ` Christoph Hellwig
2022-02-18  6:35     ` Christoph Hellwig
2022-02-18  6:35     ` [OpenRISC] " Christoph Hellwig
2022-02-18  6:35     ` Christoph Hellwig
2022-02-18  6:35     ` Christoph Hellwig
2022-02-18  6:35     ` Christoph Hellwig
2022-02-18  7:15     ` Arnd Bergmann
2022-02-18  7:15       ` Arnd Bergmann
2022-02-18  7:15       ` Arnd Bergmann
2022-02-18  7:15       ` [OpenRISC] " Arnd Bergmann
2022-02-18  7:15       ` Arnd Bergmann
2022-02-18  7:15       ` Arnd Bergmann
2022-02-18  7:15       ` Arnd Bergmann
2022-02-16 13:13 ` [PATCH v2 15/18] sparc64: remove CONFIG_SET_FS support Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 18:34   ` Sam Ravnborg
2022-02-16 18:34     ` Sam Ravnborg
2022-02-16 18:34     ` Sam Ravnborg
2022-02-16 18:34     ` [OpenRISC] " Sam Ravnborg
2022-02-16 18:34     ` Sam Ravnborg
2022-02-16 18:34     ` Sam Ravnborg
2022-02-16 18:34     ` Sam Ravnborg
2022-02-16 18:41     ` Sam Ravnborg
2022-02-16 18:41       ` Sam Ravnborg
2022-02-16 18:41       ` Sam Ravnborg
2022-02-16 18:41       ` [OpenRISC] " Sam Ravnborg
2022-02-16 18:41       ` Sam Ravnborg
2022-02-16 18:41       ` Sam Ravnborg
2022-02-16 18:41       ` Sam Ravnborg
2022-02-16 22:01       ` Arnd Bergmann
2022-02-16 22:01         ` Arnd Bergmann
2022-02-16 22:01         ` Arnd Bergmann
2022-02-16 22:01         ` [OpenRISC] " Arnd Bergmann
2022-02-16 22:01         ` Arnd Bergmann
2022-02-16 22:01         ` Arnd Bergmann
2022-02-16 22:01         ` Arnd Bergmann
2022-02-16 13:13 ` [PATCH v2 16/18] sh: " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-18  6:36   ` Christoph Hellwig
2022-02-18  6:36     ` Christoph Hellwig
2022-02-18  6:36     ` Christoph Hellwig
2022-02-18  6:36     ` [OpenRISC] " Christoph Hellwig
2022-02-18  6:36     ` Christoph Hellwig
2022-02-18  6:36     ` Christoph Hellwig
2022-02-18  6:36     ` Christoph Hellwig
2022-02-16 13:13 ` [PATCH v2 17/18] ia64: " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13 ` [PATCH v2 18/18] uaccess: drop maining CONFIG_SET_FS users Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` [OpenRISC] " Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 13:13   ` Arnd Bergmann
2022-02-16 18:44   ` Sam Ravnborg
2022-02-16 18:44     ` Sam Ravnborg
2022-02-16 18:44     ` Sam Ravnborg
2022-02-16 18:44     ` [OpenRISC] " Sam Ravnborg
2022-02-16 18:44     ` Sam Ravnborg
2022-02-16 18:44     ` Sam Ravnborg
2022-02-16 18:44     ` Sam Ravnborg
2022-02-16 22:02     ` Arnd Bergmann
2022-02-16 22:02       ` Arnd Bergmann
2022-02-16 22:02       ` Arnd Bergmann
2022-02-16 22:02       ` [OpenRISC] " Arnd Bergmann
2022-02-16 22:02       ` Arnd Bergmann
2022-02-16 22:02       ` Arnd Bergmann
2022-02-16 22:02       ` Arnd Bergmann
2022-02-17 22:36   ` Eric W. Biederman
2022-02-17 22:36     ` Eric W. Biederman
2022-02-17 22:36     ` Eric W. Biederman
2022-02-17 22:36     ` [OpenRISC] " Eric W. Biederman
2022-02-17 22:36     ` Eric W. Biederman
2022-02-17 22:36     ` Eric W. Biederman
2022-02-17 22:36     ` Eric W. Biederman
2022-02-18  6:37   ` Christoph Hellwig
2022-02-18  6:37     ` Christoph Hellwig
2022-02-18  6:37     ` Christoph Hellwig
2022-02-18  6:37     ` [OpenRISC] " Christoph Hellwig
2022-02-18  6:37     ` Christoph Hellwig
2022-02-18  6:37     ` Christoph Hellwig
2022-02-18  6:37     ` Christoph Hellwig
2022-02-18  7:10     ` Arnd Bergmann
2022-02-18  7:10       ` Arnd Bergmann
2022-02-18  7:10       ` Arnd Bergmann
2022-02-18  7:10       ` [OpenRISC] " Arnd Bergmann
2022-02-18  7:10       ` Arnd Bergmann
2022-02-18  7:10       ` Arnd Bergmann
2022-02-18  7:10       ` Arnd Bergmann
2022-02-18 10:18   ` Sergey Matyukevich
2022-02-18 10:18     ` Sergey Matyukevich
2022-02-18 10:18     ` Sergey Matyukevich
2022-02-18 10:18     ` [OpenRISC] " Sergey Matyukevich
2022-02-18 10:18     ` Sergey Matyukevich
2022-02-18 10:18     ` Sergey Matyukevich
2022-02-18 10:18     ` Sergey Matyukevich
2022-02-24  8:45   ` Stafford Horne
2022-02-24  8:45     ` Stafford Horne
2022-02-24  8:45     ` Stafford Horne
2022-02-24  8:45     ` [OpenRISC] " Stafford Horne
2022-02-24  8:45     ` Stafford Horne
2022-02-24  8:45     ` Stafford Horne
2022-02-24  8:45     ` Stafford Horne
2022-02-25  4:33   ` Dinh Nguyen
2022-02-25  4:33     ` Dinh Nguyen
2022-02-25  4:33     ` Dinh Nguyen
2022-02-25  4:33     ` [OpenRISC] " Dinh Nguyen
2022-02-25  4:33     ` Dinh Nguyen
2022-02-25  4:33     ` Dinh Nguyen
2022-02-25  4:33     ` Dinh Nguyen
2022-02-17  7:20 ` [PATCH v2 00/18] clean up asm/uaccess.h, kill set_fs for good Christophe Leroy
2022-02-17  7:20   ` Christophe Leroy
2022-02-17  7:20   ` Christophe Leroy
2022-02-17  7:20   ` [OpenRISC] " Christophe Leroy
2022-02-17  7:20   ` Christophe Leroy
2022-02-17  7:20   ` Christophe Leroy
2022-02-17  7:20   ` Christophe Leroy
2022-02-17  7:49   ` Arnd Bergmann
2022-02-17  7:49     ` Arnd Bergmann
2022-02-17  7:49     ` Arnd Bergmann
2022-02-17  7:49     ` [OpenRISC] " Arnd Bergmann
2022-02-17  7:49     ` Arnd Bergmann
2022-02-17  7:49     ` Arnd Bergmann
2022-02-17  7:49     ` Arnd Bergmann
2022-02-18  2:21     ` Al Viro
2022-02-18  2:21       ` Al Viro
2022-02-18  2:21       ` [OpenRISC] " Al Viro
2022-02-18  2:21       ` Al Viro
2022-02-18  2:21       ` Al Viro
2022-02-18  2:21       ` Al Viro
2022-02-18  9:20       ` Arnd Bergmann
2022-02-18  9:20         ` Arnd Bergmann
2022-02-18  9:20         ` Arnd Bergmann
2022-02-18  9:20         ` [OpenRISC] " Arnd Bergmann
2022-02-18  9:20         ` Arnd Bergmann
2022-02-18  9:20         ` Arnd Bergmann
2022-02-18  9:20         ` Arnd Bergmann
2022-02-18  1:50   ` Al Viro
2022-02-18  1:50     ` Al Viro
2022-02-18  1:50     ` [OpenRISC] " Al Viro
2022-02-18  1:50     ` Al Viro
2022-02-18  1:50     ` Al Viro
2022-02-18  1:50     ` Al Viro
2022-02-18 10:01     ` Christophe Leroy
2022-02-18 10:01       ` Christophe Leroy
2022-02-18 10:01       ` Christophe Leroy
2022-02-18 10:01       ` [OpenRISC] " Christophe Leroy
2022-02-18 10:01       ` Christophe Leroy
2022-02-18 10:01       ` Christophe Leroy
2022-02-18 10:01       ` Christophe Leroy
2022-02-17  8:13 ` Arnd Bergmann
2022-02-17  8:13   ` Arnd Bergmann
2022-02-17  8:13   ` Arnd Bergmann
2022-02-17  8:13   ` [OpenRISC] " Arnd Bergmann
2022-02-17  8:13   ` Arnd Bergmann
2022-02-17  8:13   ` Arnd Bergmann
2022-02-17  8:13   ` 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=20220216131332.1489939-6-arnd@kernel.org \
    --to=arnd@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=ardb@kernel.org \
    --cc=arnd@arndb.de \
    --cc=bcain@codeaurora.org \
    --cc=dalias@libc.org \
    --cc=davem@davemloft.net \
    --cc=deller@gmx.de \
    --cc=dinguyen@kernel.org \
    --cc=ebiederm@xmission.com \
    --cc=geert@linux-m68k.org \
    --cc=green.hu@gmail.com \
    --cc=guoren@kernel.org \
    --cc=hca@linux.ibm.com \
    --cc=hch@infradead.org \
    --cc=hch@lst.de \
    --cc=jcmvbkbc@gmail.com \
    --cc=linux-alpha@vger.kernel.org \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-csky@vger.kernel.org \
    --cc=linux-hexagon@vger.kernel.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux-snps-arc@lists.infradead.org \
    --cc=linux-um@lists.infradead.org \
    --cc=linux-xtensa@linux-xtensa.org \
    --cc=linux@armlinux.org.uk \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=monstr@monstr.eu \
    --cc=mpe@ellerman.id.au \
    --cc=nickhu@andestech.com \
    --cc=openrisc@lists.librecores.org \
    --cc=peterz@infradead.org \
    --cc=richard@nod.at \
    --cc=shorne@gmail.com \
    --cc=sparclinux@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=tsbogend@alpha.franken.de \
    --cc=viro@zeniv.linux.org.uk \
    --cc=will@kernel.org \
    --cc=x86@kernel.org \
    /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.