All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vincenzo Frascino <vincenzo.frascino@arm.com>
To: Andrey Konovalov <andreyknvl@google.com>,
	Al Viro <viro@zeniv.linux.org.uk>
Cc: Mark Rutland <mark.rutland@arm.com>,
	Kate Stewart <kstewart@linuxfoundation.org>,
	linux-doc@vger.kernel.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	Kostya Serebryany <kcc@google.com>,
	linux-kselftest@vger.kernel.org,
	Chintan Pandya <cpandya@codeaurora.org>,
	Shuah Khan <shuah@kernel.org>, Ingo Molnar <mingo@kernel.org>,
	linux-arch@vger.kernel.org, Jacob Bramley <Jacob.Bramley@arm.com>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Evgeniy Stepanov <eugenis@google.com>,
	Kees Cook <keescook@chromium.org>,
	Ruben Ayrapetyan <Ruben.Ayrapetyan@arm.com>,
	Ramana Radhakrishnan <Ramana.Radhakrishnan@arm.com>,
	Dmitry Vyukov <dvyukov@google.com>,
	Linux Memory Management List <linux-mm@kvack.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Luc Van Oostenryck <luc.vanoostenryck@gmail.com>,
	Lee Smith <Lee.Smith@arm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Robin Murphy <robin.murphy@arm.com>,
	"Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>
Subject: Re: [PATCH v6 11/11] arm64: annotate user pointers casts detected by sparse
Date: Mon, 3 Sep 2018 14:30:36 +0100	[thread overview]
Message-ID: <4368e5b0-4bb8-5bc2-0ad9-9d8f9d3325d7@arm.com> (raw)
In-Reply-To: <CAAeHK+w86m6YztnTGhuZPKRczb-+znZ1hiJskPXeQok4SgcaOw@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2962 bytes --]

On 03/09/18 13:34, Andrey Konovalov wrote:
> On Fri, Aug 31, 2018 at 3:42 PM, Al Viro <viro@zeniv.linux.org.uk><mailto:viro@zeniv.linux.org.uk> wrote: >> On Fri, Aug 31, 2018 at 10:11:24AM +0200, Luc Van Oostenryck wrote: >>> On Thu, Aug 30, 2018 at 01:41:16PM +0200, Andrey Konovalov wrote: >>>> This patch adds __force annotations for __user pointers casts detected by >>>> sparse with the -Wcast-from-as flag enabled (added in [1]). >>>> >>>> [1] https://github.com/lucvoo/sparse-dev/commit/5f960cb10f56ec2017c128ef9d16060e0145f292 >>> >>> Hi, >>> >>> It would be nice to have some explanation for why these added __force >>> are useful. > > I'll add this in the next version, thanks! > >> It would be even more useful if that series would either deal with >> the noise for real ("that's what we intend here, that's what we intend there, >> here's a primitive for such-and-such kind of cases, here we actually >> ought to pass __user pointer instead of unsigned long", etc.) or left it >> unmasked. >> >> As it is, __force says only one thing: "I know the code is doing >> the right thing here". That belongs in primitives, and I do *not* mean the >> #define cast_to_ulong(x) ((__force unsigned long)(x)) >> kind. >> >> Folks, if you don't want to deal with that - leave the warnings be. >> They do carry more information than "someone has slapped __force in that place". >> >> Al, very annoyed by that kind of information-hiding crap... > > This patch only adds __force to hide the reports I've looked at and > decided that the code does the right thing. The cases where this is > not the case are handled by the previous patches in the patchset. I'll > this to the patch description as well. Is that OK? > I think as well that we should make explicit the information that
__force is hiding.
A possible solution could be defining some new address spaces and use
them where it is relevant in the kernel. Something like:

# define __compat_ptr __attribute__((noderef, address_space(5)))
# define __tagged_ptr __attribute__((noderef, address_space(6)))

In this way sparse can still identify the casting and trigger a warning.

We could at that point modify sparse to ignore these conversions when a
specific flag is passed (i.e. -Wignore-compat-ptr, -Wignore-tagged-ptr)
to exclude from the generated warnings the ones we have already dealt
with.

What do you think about this approach?
> _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org<mailto:linux-arm-kernel@lists.infradead.org> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

[-- Attachment #2: Type: text/html, Size: 3967 bytes --]

  reply	other threads:[~2018-09-03 13:30 UTC|newest]

Thread overview: 168+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-30 11:41 [PATCH v6 00/11] arm64: untag user pointers passed to the kernel Andrey Konovalov
2018-08-30 11:41 ` Andrey Konovalov
2018-08-30 11:41 ` Andrey Konovalov
2018-08-30 11:41 ` andreyknvl
2018-08-30 11:41 ` [PATCH v6 01/11] arm64: add type casts to untagged_addr macro Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` andreyknvl
2018-08-30 11:41 ` [PATCH v6 02/11] uaccess: add untagged_addr definition for other arches Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` andreyknvl
2018-08-30 11:41 ` [PATCH v6 03/11] arm64: untag user addresses in access_ok and __uaccess_mask_ptr Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` andreyknvl
2018-08-30 11:41 ` [PATCH v6 04/11] mm, arm64: untag user addresses in mm/gup.c Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` andreyknvl
2018-08-30 11:41 ` [PATCH v6 05/11] lib, arm64: untag addrs passed to strncpy_from_user and strnlen_user Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` andreyknvl
2018-08-30 11:41 ` [PATCH v6 06/11] arm64: untag user address in __do_user_fault Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` andreyknvl
2018-08-30 11:41 ` [PATCH v6 07/11] fs, arm64: untag user address in copy_mount_options Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` andreyknvl
2018-08-30 11:41 ` [PATCH v6 08/11] usb, arm64: untag user addresses in devio Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` andreyknvl
2018-08-30 11:41 ` [PATCH v6 09/11] arm64: update Documentation/arm64/tagged-pointers.txt Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` andreyknvl
2018-08-30 11:41 ` [PATCH v6 10/11] selftests, arm64: add a selftest for passing tagged pointers to kernel Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` andreyknvl
2018-08-30 11:41 ` [PATCH v6 11/11] arm64: annotate user pointers casts detected by sparse Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` Andrey Konovalov
2018-08-30 11:41   ` andreyknvl
2018-08-31  8:11   ` Luc Van Oostenryck
2018-08-31  8:11     ` Luc Van Oostenryck
2018-08-31  8:11     ` Luc Van Oostenryck
2018-08-31  8:11     ` Luc Van Oostenryck
2018-08-31  8:11     ` luc.vanoostenryck
2018-08-31 13:42     ` Al Viro
2018-08-31 13:42       ` Al Viro
2018-08-31 13:42       ` Al Viro
2018-08-31 13:42       ` Al Viro
2018-08-31 13:42       ` viro
2018-09-03 12:34       ` Andrey Konovalov
2018-09-03 12:34         ` Andrey Konovalov
2018-09-03 12:34         ` Andrey Konovalov
2018-09-03 12:34         ` Andrey Konovalov
2018-09-03 12:34         ` andreyknvl
2018-09-03 13:30         ` Vincenzo Frascino [this message]
2018-09-03 13:49         ` Vincenzo Frascino
2018-09-03 13:49           ` Vincenzo Frascino
2018-09-03 13:49           ` Vincenzo Frascino
2018-09-03 13:49           ` Vincenzo Frascino
2018-09-03 13:49           ` vincenzo.frascino
2018-09-03 15:10           ` Luc Van Oostenryck
2018-09-03 15:10             ` Luc Van Oostenryck
2018-09-03 15:10             ` Luc Van Oostenryck
2018-09-03 15:10             ` Luc Van Oostenryck
2018-09-03 15:10             ` luc.vanoostenryck
2018-09-04 11:27             ` Vincenzo Frascino
2018-09-04 11:27               ` Vincenzo Frascino
2018-09-04 11:27               ` Vincenzo Frascino
2018-09-04 11:27               ` Vincenzo Frascino
2018-09-04 11:27               ` vincenzo.frascino
2018-09-05 19:03               ` Luc Van Oostenryck
2018-09-05 19:03                 ` Luc Van Oostenryck
2018-09-05 19:03                 ` Luc Van Oostenryck
2018-09-05 19:03                 ` Luc Van Oostenryck
2018-09-05 19:03                 ` luc.vanoostenryck
2018-09-06 14:13                 ` Vincenzo Frascino
2018-09-06 14:13                   ` Vincenzo Frascino
2018-09-06 14:13                   ` Vincenzo Frascino
2018-09-06 14:13                   ` Vincenzo Frascino
2018-09-06 14:13                   ` vincenzo.frascino
2018-09-06 20:10                   ` Luc Van Oostenryck
2018-09-06 20:10                     ` Luc Van Oostenryck
2018-09-06 20:10                     ` Luc Van Oostenryck
2018-09-06 20:10                     ` Luc Van Oostenryck
2018-09-06 20:10                     ` luc.vanoostenryck
2018-09-03 13:56         ` Al Viro
2018-09-03 13:56           ` Al Viro
2018-09-03 13:56           ` Al Viro
2018-09-03 13:56           ` Al Viro
2018-09-03 13:56           ` viro
2018-09-06 21:13   ` Linus Torvalds
2018-09-06 21:13     ` Linus Torvalds
2018-09-06 21:13     ` Linus Torvalds
2018-09-06 21:13     ` Linus Torvalds
2018-09-06 21:13     ` Linus Torvalds
2018-09-06 21:13     ` torvalds
2018-09-06 21:16     ` Linus Torvalds
2018-09-06 21:16       ` Linus Torvalds
2018-09-06 21:16       ` Linus Torvalds
2018-09-06 21:16       ` Linus Torvalds
2018-09-06 21:16       ` Linus Torvalds
2018-09-06 21:16       ` torvalds
2018-09-06 23:08       ` Luc Van Oostenryck
2018-09-06 23:08         ` Luc Van Oostenryck
2018-09-06 23:08         ` Luc Van Oostenryck
2018-09-06 23:08         ` Luc Van Oostenryck
2018-09-06 23:08         ` Luc Van Oostenryck
2018-09-06 23:08         ` luc.vanoostenryck
2018-09-07 15:26       ` Catalin Marinas
2018-09-07 15:26         ` Catalin Marinas
2018-09-07 15:26         ` Catalin Marinas
2018-09-07 15:26         ` Catalin Marinas
2018-09-07 15:26         ` Catalin Marinas
2018-09-07 15:26         ` catalin.marinas
2018-09-07 16:30         ` Linus Torvalds
2018-09-07 16:30           ` Linus Torvalds
2018-09-07 16:30           ` Linus Torvalds
2018-09-07 16:30           ` Linus Torvalds
2018-09-07 16:30           ` Linus Torvalds
2018-09-07 16:30           ` torvalds
2018-09-11 16:41           ` Catalin Marinas
2018-09-11 16:41             ` Catalin Marinas
2018-09-11 16:41             ` Catalin Marinas
2018-09-11 16:41             ` Catalin Marinas
2018-09-11 16:41             ` Catalin Marinas
2018-09-11 16:41             ` catalin.marinas
2018-09-17 17:01             ` Andrey Konovalov
2018-09-17 17:01               ` Andrey Konovalov
2018-09-17 17:01               ` Andrey Konovalov
2018-09-17 17:01               ` Andrey Konovalov
2018-09-17 17:01               ` Andrey Konovalov
2018-09-17 17:01               ` andreyknvl
2018-09-24 15:04               ` Andrey Konovalov
2018-09-24 15:04                 ` Andrey Konovalov
2018-09-24 15:04                 ` Andrey Konovalov
2018-09-24 15:04                 ` Andrey Konovalov
2018-09-24 15:04                 ` Andrey Konovalov
2018-09-24 15:04                 ` andreyknvl
2018-09-28 17:50               ` Catalin Marinas
2018-09-28 17:50                 ` Catalin Marinas
2018-09-28 17:50                 ` Catalin Marinas
2018-09-28 17:50                 ` Catalin Marinas
2018-09-28 17:50                 ` Catalin Marinas
2018-09-28 17:50                 ` catalin.marinas
2018-10-02 13:19                 ` Andrey Konovalov
2018-10-02 13:19                   ` Andrey Konovalov
2018-10-02 13:19                   ` Andrey Konovalov
2018-10-02 13:19                   ` Andrey Konovalov
2018-10-02 13:19                   ` Andrey Konovalov
2018-10-02 13:19                   ` andreyknvl
2018-09-14  1:25   ` [LKP] [arm64] 7b5b51e7b3: kvm-unit-tests.rmap_chain.fail kernel test robot
2018-09-14  1:25     ` kernel test robot
2018-09-14  1:25     ` [LKP] " kernel test robot
2018-09-14  1:25     ` kernel test robot
2018-08-30 11:48 ` [PATCH v6 00/11] arm64: untag user pointers passed to the kernel Andrey Konovalov
2018-08-30 11:48   ` Andrey Konovalov
2018-08-30 11:48   ` Andrey Konovalov
2018-08-30 11:48   ` Andrey Konovalov
2018-08-30 11:48   ` andreyknvl

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=4368e5b0-4bb8-5bc2-0ad9-9d8f9d3325d7@arm.com \
    --to=vincenzo.frascino@arm.com \
    --cc=Jacob.Bramley@arm.com \
    --cc=Lee.Smith@arm.com \
    --cc=Ramana.Radhakrishnan@arm.com \
    --cc=Ruben.Ayrapetyan@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=andreyknvl@google.com \
    --cc=catalin.marinas@arm.com \
    --cc=cpandya@codeaurora.org \
    --cc=dvyukov@google.com \
    --cc=eugenis@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=kcc@google.com \
    --cc=keescook@chromium.org \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=kstewart@linuxfoundation.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=luc.vanoostenryck@gmail.com \
    --cc=mark.rutland@arm.com \
    --cc=mingo@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=shuah@kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    --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: 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.