linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christophe Leroy <christophe.leroy@csgroup.eu>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Michael Ellerman <mpe@ellerman.id.au>
Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org
Subject: [PATCH v1 08/15] powerpc/uaccess: Remove __chk_user_ptr() in __get/put_user
Date: Thu, 25 Feb 2021 17:50:38 +0000 (UTC)	[thread overview]
Message-ID: <8a128f921114bfbad3e3f0b468bbe01f4d89c4dc.1614275314.git.christophe.leroy@csgroup.eu> (raw)
In-Reply-To: <cover.1614275314.git.christophe.leroy@csgroup.eu>

Commit d02f6b7dab82 ("powerpc/uaccess: Evaluate macro arguments once,
before user access is allowed") changed the __chk_user_ptr()
argument from the passed ptr pointer to the locally
declared __gu_addr. But __gu_addr is locally defined as __user
so the check is pointless.

During kernel build __chk_user_ptr() voids and is only evaluated
during sparse checks so it should have been armless to leave the
original pointer check there.

Nevertheless, this check is indeed redundant with the assignment
above which casts the ptr pointer to the local __user __gu_addr.
In case of mismatch, sparse will detect it there, so the
__check_user_ptr() is not needed anywhere else than in access_ok().

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
---
 arch/powerpc/include/asm/uaccess.h | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
index a6d3563cf3ee..a9f2639ca3a8 100644
--- a/arch/powerpc/include/asm/uaccess.h
+++ b/arch/powerpc/include/asm/uaccess.h
@@ -78,7 +78,6 @@ __pu_failed:							\
 	__typeof__(size) __pu_size = (size);			\
 								\
 	might_fault();						\
-	__chk_user_ptr(__pu_addr);				\
 	__put_user_size(__pu_val, __pu_addr, __pu_size, __pu_err);	\
 								\
 	__pu_err;						\
@@ -197,7 +196,6 @@ extern long __get_user_bad(void);
 #define __get_user_size_allowed(x, ptr, size, retval)		\
 do {								\
 	retval = 0;						\
-	__chk_user_ptr(ptr);					\
 	if (size > sizeof(x))					\
 		(x) = __get_user_bad();				\
 	switch (size) {						\
@@ -230,7 +228,6 @@ do {								\
 	__typeof__(*(ptr)) __user *__gu_addr = (ptr);	\
 	__typeof__(size) __gu_size = (size);			\
 								\
-	__chk_user_ptr(__gu_addr);				\
 	if (do_allow) {								\
 		might_fault();					\
 		__get_user_size(__gu_val, __gu_addr, __gu_size, __gu_err);	\
-- 
2.25.0


  parent reply	other threads:[~2021-02-25 17:56 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-25 17:50 [PATCH v1 00/15] powerpc: Cleanup of uaccess.h Christophe Leroy
2021-02-25 17:50 ` [PATCH v1 01/15] powerpc/uaccess: Remove __get_user_allowed() and unsafe_op_wrap() Christophe Leroy
2021-03-01 22:02   ` Daniel Axtens
2021-03-01 22:31     ` Segher Boessenkool
2021-03-10  8:14     ` Christophe Leroy
2021-02-25 17:50 ` [PATCH v1 02/15] powerpc/uaccess: Define ___get_user_instr() for ppc32 Christophe Leroy
2021-03-01 22:20   ` Daniel Axtens
2021-02-25 17:50 ` [PATCH v1 03/15] powerpc/uaccess: Remove __get/put_user_inatomic() Christophe Leroy
2021-03-01 22:42   ` Daniel Axtens
2021-03-10  8:03     ` Christophe Leroy
2021-02-25 17:50 ` [PATCH v1 04/15] powerpc/uaccess: Move get_user_instr helpers in asm/inst.h Christophe Leroy
2021-02-25 17:50 ` [PATCH v1 05/15] powerpc/align: Don't use __get_user_instr() on kernel addresses Christophe Leroy
2021-02-25 17:50 ` [PATCH v1 06/15] powerpc/uaccess: Call might_fault() inconditionaly Christophe Leroy
2021-02-25 17:50 ` [PATCH v1 07/15] powerpc/uaccess: Remove __unsafe_put_user_goto() Christophe Leroy
2021-02-25 17:50 ` Christophe Leroy [this message]
2021-02-25 17:50 ` [PATCH v1 09/15] powerpc/uaccess: Remove calls to __get_user_bad() and __put_user_bad() Christophe Leroy
2021-02-25 17:50 ` [PATCH v1 10/15] powerpc/uaccess: Split out __get_user_nocheck() Christophe Leroy
2021-02-25 17:50 ` [PATCH v1 11/15] powerpc/uaccess: Rename __get/put_user_check/nocheck Christophe Leroy
2021-02-25 17:50 ` [PATCH v1 12/15] powerpc/uaccess: Refactor get/put_user() and __get/put_user() Christophe Leroy
2021-03-07 10:23   ` kernel test robot
2021-03-08 12:14     ` Christophe Leroy
2021-03-08 14:43       ` Christian König
2021-02-25 17:50 ` [PATCH v1 13/15] powerpc/uaccess: Swap clear_user() and __clear_user() Christophe Leroy
2021-02-25 17:50 ` [PATCH v1 14/15] powerpc/uaccess: Also perform 64 bits copies in unsafe_copy_to_user() on ppc32 Christophe Leroy
2021-02-25 17:50 ` [PATCH v1 15/15] powerpc/uaccess: Move copy_mc_xxx() functions down Christophe Leroy

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=8a128f921114bfbad3e3f0b468bbe01f4d89c4dc.1614275314.git.christophe.leroy@csgroup.eu \
    --to=christophe.leroy@csgroup.eu \
    --cc=benh@kernel.crashing.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=paulus@samba.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).