All of lore.kernel.org
 help / color / mirror / Atom feed
From: enh <enh@google.com>
To: Kees Cook <keescook@chromium.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
	Evgenii Stepanov <eugenis@google.com>,
	Andrey Konovalov <andreyknvl@google.com>,
	Khalid Aziz <khalid.aziz@oracle.com>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Linux Memory Management List <linux-mm@kvack.org>,
	LKML <linux-kernel@vger.kernel.org>,
	amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	linux-rdma@vger.kernel.org, linux-media@vger.kernel.org,
	kvm@vger.kernel.org,
	"open list:KERNEL SELFTEST FRAMEWORK"
	<linux-kselftest@vger.kernel.org>,
	Vincenzo Frascino <vincenzo.frascino@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Yishai Hadas <yishaih@mellanox.co>
Subject: Re: [PATCH v15 00/17] arm64: untag user pointers passed to the kernel
Date: Wed, 22 May 2019 13:15:57 -0700	[thread overview]
Message-ID: <CAJgzZooRCx5MFL8dWuG8VaV=esYBADji7-L49fMeQa6niieWnw@mail.gmail.com> (raw)
In-Reply-To: <201905221157.A9BAB1F296@keescook>

On Wed, May 22, 2019 at 12:21 PM Kees Cook <keescook@chromium.org> wrote:
>
> On Wed, May 22, 2019 at 08:30:21AM -0700, enh wrote:
> > On Wed, May 22, 2019 at 3:11 AM Catalin Marinas <catalin.marinas@arm.com> wrote:
> > > On Tue, May 21, 2019 at 05:04:39PM -0700, Kees Cook wrote:
> > > > I just want to make sure I fully understand your concern about this
> > > > being an ABI break, and I work best with examples. The closest situation
> > > > I can see would be:
> > > >
> > > > - some program has no idea about MTE
> > >
> > > Apart from some libraries like libc (and maybe those that handle
> > > specific device ioctls), I think most programs should have no idea about
> > > MTE. I wouldn't expect programmers to have to change their app just
> > > because we have a new feature that colours heap allocations.
>
> Right -- things should Just Work from the application perspective.
>
> > obviously i'm biased as a libc maintainer, but...
> >
> > i don't think it helps to move this to libc --- now you just have an
> > extra dependency where to have a guaranteed working system you need to
> > update your kernel and libc together. (or at least update your libc to
> > understand new ioctls etc _before_ you can update your kernel.)
>
> I think (hope?) we've all agreed that we shouldn't pass this off to
> userspace. At the very least, it reduces the utility of MTE, and at worst
> it complicates userspace when this is clearly a kernel/architecture issue.
>
> >
> > > > - malloc() starts returning MTE-tagged addresses
> > > > - program doesn't break from that change
> > > > - program uses some syscall that is missing untagged_addr() and fails
> > > > - kernel has now broken userspace that used to work
> > >
> > > That's one aspect though probably more of a case of plugging in a new
> > > device (graphics card, network etc.) and the ioctl to the new device
> > > doesn't work.
>
> I think MTE will likely be rather like NX/PXN and SMAP/PAN: there will
> be glitches, and we can disable stuff either via CONFIG or (as is more
> common now) via a kernel commandline with untagged_addr() containing a
> static branch, etc. But I actually don't think we need to go this route
> (see below...)
>
> > > The other is that, assuming we reach a point where the kernel entirely
> > > supports this relaxed ABI, can we guarantee that it won't break in the
> > > future. Let's say some subsequent kernel change (some refactoring)
> > > misses out an untagged_addr(). This renders a previously TBI/MTE-capable
> > > syscall unusable. Can we rely only on testing?
> > >
> > > > The trouble I see with this is that it is largely theoretical and
> > > > requires part of userspace to collude to start using a new CPU feature
> > > > that tickles a bug in the kernel. As I understand the golden rule,
> > > > this is a bug in the kernel (a missed ioctl() or such) to be fixed,
> > > > not a global breaking of some userspace behavior.
> > >
> > > Yes, we should follow the rule that it's a kernel bug but it doesn't
> > > help the user that a newly installed kernel causes user space to no
> > > longer reach a prompt. Hence the proposal of an opt-in via personality
> > > (for MTE we would need an explicit opt-in by the user anyway since the
> > > top byte is no longer ignored but checked against the allocation tag).
> >
> > but realistically would this actually get used in this way? or would
> > any given system either be MTE or non-MTE. in which case a kernel
> > configuration option would seem to make more sense. (because either
> > way, the hypothetical user basically needs to recompile the kernel to
> > get back on their feet. or all of userspace.)
>
> Right: the point is to design things so that we do our best to not break
> userspace that is using the new feature (which I think this series has
> done well). But supporting MTE/TBI is just like supporting PAN: if someone
> refactors a driver and swaps a copy_from_user() to a memcpy(), it's going
> to break under PAN. There will be the same long tail of these bugs like
> any other, but my sense is that they are small and rare. But I agree:
> they're going to be pretty weird bugs to track down. The final result,
> however, will be excellent annotation in the kernel for where userspace
> addresses get used and people make assumptions about them.
>
> The sooner we get the series landed and gain QEMU support (or real
> hardware), the faster we can hammer out these missed corner-cases.
> What's the timeline for either of those things, BTW?
>
> > > > I feel like I'm missing something about this being seen as an ABI
> > > > break. The kernel already fails on userspace addresses that have high
> > > > bits set -- are there things that _depend_ on this failure to operate?
> > >
> > > It's about providing a relaxed ABI which allows non-zero top byte and
> > > breaking it later inadvertently without having something better in place
> > > to analyse the kernel changes.
>
> It sounds like the question is how to switch a process in or out of this
> ABI (but I don't think that's the real issue: I think it's just a matter
> of whether or not a process uses tags at all). Doing it at the prctl()
> level doesn't make sense to me, except maybe to detect MTE support or
> something. ("Should I tag allocations?") And that state is controlled
> by the kernel: the kernel does it or it doesn't.
>
> If a process wants to not tag, that's also up to the allocator where
> it can decide not to ask the kernel, and just not tag. Nothing breaks in
> userspace if a process is NOT tagging and untagged_addr() exists or is
> missing. This, I think, is the core way this doesn't trip over the
> golden rule: an old system image will run fine (because it's not
> tagging). A *new* system may encounter bugs with tagging because it's a
> new feature: this is The Way Of Things. But we don't break old userspace
> because old userspace isn't using tags.
>
> So the agreement appears to be between the kernel and the allocator.
> Kernel says "I support this" or not. Telling the allocator to not tag if
> something breaks sounds like an entirely userspace decision, yes?

sgtm, and the AT_FLAGS suggestion sounds fine for our needs in that regard.

> --
> Kees Cook

WARNING: multiple messages have this Message-ID (diff)
From: enh <enh@google.com>
To: Kees Cook <keescook@chromium.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
	Evgenii Stepanov <eugenis@google.com>,
	Andrey Konovalov <andreyknvl@google.com>,
	Khalid Aziz <khalid.aziz@oracle.com>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Linux Memory Management List <linux-mm@kvack.org>,
	LKML <linux-kernel@vger.kernel.org>,
	amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	linux-rdma@vger.kernel.org, linux-media@vger.kernel.org,
	kvm@vger.kernel.org,
	"open list:KERNEL SELFTEST FRAMEWORK" 
	<linux-kselftest@vger.kernel.org>,
	Vincenzo Frascino <vincenzo.frascino@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Yishai Hadas <yishaih@mellanox.com>,
	Felix Kuehling <Felix.Kuehling@amd.com>,
	Alexander Deucher <Alexander.Deucher@amd.com>,
	Christian Koenig <Christian.Koenig@amd.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Alex Williamson <alex.williamson@redhat.com>,
	Leon Romanovsky <leon@kernel.org>,
	Dmitry Vyukov <dvyukov@google.com>,
	Kostya Serebryany <kcc@google.com>, Lee Smith <Lee.Smith@arm.com>,
	Ramana Radhakrishnan <Ramana.Radhakrishnan@arm.com>,
	Jacob Bramley <Jacob.Bramley@arm.com>,
	Ruben Ayrapetyan <Ruben.Ayrapetyan@arm.com>,
	Robin Murphy <robin.murphy@arm.com>,
	Luc Van Oostenryck <luc.vanoostenryck@gmail.com>,
	Dave Martin <Dave.Martin@arm.com>,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Szabolcs Nagy <Szabolcs.Nagy@arm.com>
Subject: Re: [PATCH v15 00/17] arm64: untag user pointers passed to the kernel
Date: Wed, 22 May 2019 13:15:57 -0700	[thread overview]
Message-ID: <CAJgzZooRCx5MFL8dWuG8VaV=esYBADji7-L49fMeQa6niieWnw@mail.gmail.com> (raw)
In-Reply-To: <201905221157.A9BAB1F296@keescook>

On Wed, May 22, 2019 at 12:21 PM Kees Cook <keescook@chromium.org> wrote:
>
> On Wed, May 22, 2019 at 08:30:21AM -0700, enh wrote:
> > On Wed, May 22, 2019 at 3:11 AM Catalin Marinas <catalin.marinas@arm.com> wrote:
> > > On Tue, May 21, 2019 at 05:04:39PM -0700, Kees Cook wrote:
> > > > I just want to make sure I fully understand your concern about this
> > > > being an ABI break, and I work best with examples. The closest situation
> > > > I can see would be:
> > > >
> > > > - some program has no idea about MTE
> > >
> > > Apart from some libraries like libc (and maybe those that handle
> > > specific device ioctls), I think most programs should have no idea about
> > > MTE. I wouldn't expect programmers to have to change their app just
> > > because we have a new feature that colours heap allocations.
>
> Right -- things should Just Work from the application perspective.
>
> > obviously i'm biased as a libc maintainer, but...
> >
> > i don't think it helps to move this to libc --- now you just have an
> > extra dependency where to have a guaranteed working system you need to
> > update your kernel and libc together. (or at least update your libc to
> > understand new ioctls etc _before_ you can update your kernel.)
>
> I think (hope?) we've all agreed that we shouldn't pass this off to
> userspace. At the very least, it reduces the utility of MTE, and at worst
> it complicates userspace when this is clearly a kernel/architecture issue.
>
> >
> > > > - malloc() starts returning MTE-tagged addresses
> > > > - program doesn't break from that change
> > > > - program uses some syscall that is missing untagged_addr() and fails
> > > > - kernel has now broken userspace that used to work
> > >
> > > That's one aspect though probably more of a case of plugging in a new
> > > device (graphics card, network etc.) and the ioctl to the new device
> > > doesn't work.
>
> I think MTE will likely be rather like NX/PXN and SMAP/PAN: there will
> be glitches, and we can disable stuff either via CONFIG or (as is more
> common now) via a kernel commandline with untagged_addr() containing a
> static branch, etc. But I actually don't think we need to go this route
> (see below...)
>
> > > The other is that, assuming we reach a point where the kernel entirely
> > > supports this relaxed ABI, can we guarantee that it won't break in the
> > > future. Let's say some subsequent kernel change (some refactoring)
> > > misses out an untagged_addr(). This renders a previously TBI/MTE-capable
> > > syscall unusable. Can we rely only on testing?
> > >
> > > > The trouble I see with this is that it is largely theoretical and
> > > > requires part of userspace to collude to start using a new CPU feature
> > > > that tickles a bug in the kernel. As I understand the golden rule,
> > > > this is a bug in the kernel (a missed ioctl() or such) to be fixed,
> > > > not a global breaking of some userspace behavior.
> > >
> > > Yes, we should follow the rule that it's a kernel bug but it doesn't
> > > help the user that a newly installed kernel causes user space to no
> > > longer reach a prompt. Hence the proposal of an opt-in via personality
> > > (for MTE we would need an explicit opt-in by the user anyway since the
> > > top byte is no longer ignored but checked against the allocation tag).
> >
> > but realistically would this actually get used in this way? or would
> > any given system either be MTE or non-MTE. in which case a kernel
> > configuration option would seem to make more sense. (because either
> > way, the hypothetical user basically needs to recompile the kernel to
> > get back on their feet. or all of userspace.)
>
> Right: the point is to design things so that we do our best to not break
> userspace that is using the new feature (which I think this series has
> done well). But supporting MTE/TBI is just like supporting PAN: if someone
> refactors a driver and swaps a copy_from_user() to a memcpy(), it's going
> to break under PAN. There will be the same long tail of these bugs like
> any other, but my sense is that they are small and rare. But I agree:
> they're going to be pretty weird bugs to track down. The final result,
> however, will be excellent annotation in the kernel for where userspace
> addresses get used and people make assumptions about them.
>
> The sooner we get the series landed and gain QEMU support (or real
> hardware), the faster we can hammer out these missed corner-cases.
> What's the timeline for either of those things, BTW?
>
> > > > I feel like I'm missing something about this being seen as an ABI
> > > > break. The kernel already fails on userspace addresses that have high
> > > > bits set -- are there things that _depend_ on this failure to operate?
> > >
> > > It's about providing a relaxed ABI which allows non-zero top byte and
> > > breaking it later inadvertently without having something better in place
> > > to analyse the kernel changes.
>
> It sounds like the question is how to switch a process in or out of this
> ABI (but I don't think that's the real issue: I think it's just a matter
> of whether or not a process uses tags at all). Doing it at the prctl()
> level doesn't make sense to me, except maybe to detect MTE support or
> something. ("Should I tag allocations?") And that state is controlled
> by the kernel: the kernel does it or it doesn't.
>
> If a process wants to not tag, that's also up to the allocator where
> it can decide not to ask the kernel, and just not tag. Nothing breaks in
> userspace if a process is NOT tagging and untagged_addr() exists or is
> missing. This, I think, is the core way this doesn't trip over the
> golden rule: an old system image will run fine (because it's not
> tagging). A *new* system may encounter bugs with tagging because it's a
> new feature: this is The Way Of Things. But we don't break old userspace
> because old userspace isn't using tags.
>
> So the agreement appears to be between the kernel and the allocator.
> Kernel says "I support this" or not. Telling the allocator to not tag if
> something breaks sounds like an entirely userspace decision, yes?

sgtm, and the AT_FLAGS suggestion sounds fine for our needs in that regard.

> --
> Kees Cook

WARNING: multiple messages have this Message-ID (diff)
From: enh at google.com (enh)
Subject: [PATCH v15 00/17] arm64: untag user pointers passed to the kernel
Date: Wed, 22 May 2019 13:15:57 -0700	[thread overview]
Message-ID: <CAJgzZooRCx5MFL8dWuG8VaV=esYBADji7-L49fMeQa6niieWnw@mail.gmail.com> (raw)
In-Reply-To: <201905221157.A9BAB1F296@keescook>

On Wed, May 22, 2019 at 12:21 PM Kees Cook <keescook at chromium.org> wrote:
>
> On Wed, May 22, 2019 at 08:30:21AM -0700, enh wrote:
> > On Wed, May 22, 2019 at 3:11 AM Catalin Marinas <catalin.marinas at arm.com> wrote:
> > > On Tue, May 21, 2019 at 05:04:39PM -0700, Kees Cook wrote:
> > > > I just want to make sure I fully understand your concern about this
> > > > being an ABI break, and I work best with examples. The closest situation
> > > > I can see would be:
> > > >
> > > > - some program has no idea about MTE
> > >
> > > Apart from some libraries like libc (and maybe those that handle
> > > specific device ioctls), I think most programs should have no idea about
> > > MTE. I wouldn't expect programmers to have to change their app just
> > > because we have a new feature that colours heap allocations.
>
> Right -- things should Just Work from the application perspective.
>
> > obviously i'm biased as a libc maintainer, but...
> >
> > i don't think it helps to move this to libc --- now you just have an
> > extra dependency where to have a guaranteed working system you need to
> > update your kernel and libc together. (or at least update your libc to
> > understand new ioctls etc _before_ you can update your kernel.)
>
> I think (hope?) we've all agreed that we shouldn't pass this off to
> userspace. At the very least, it reduces the utility of MTE, and at worst
> it complicates userspace when this is clearly a kernel/architecture issue.
>
> >
> > > > - malloc() starts returning MTE-tagged addresses
> > > > - program doesn't break from that change
> > > > - program uses some syscall that is missing untagged_addr() and fails
> > > > - kernel has now broken userspace that used to work
> > >
> > > That's one aspect though probably more of a case of plugging in a new
> > > device (graphics card, network etc.) and the ioctl to the new device
> > > doesn't work.
>
> I think MTE will likely be rather like NX/PXN and SMAP/PAN: there will
> be glitches, and we can disable stuff either via CONFIG or (as is more
> common now) via a kernel commandline with untagged_addr() containing a
> static branch, etc. But I actually don't think we need to go this route
> (see below...)
>
> > > The other is that, assuming we reach a point where the kernel entirely
> > > supports this relaxed ABI, can we guarantee that it won't break in the
> > > future. Let's say some subsequent kernel change (some refactoring)
> > > misses out an untagged_addr(). This renders a previously TBI/MTE-capable
> > > syscall unusable. Can we rely only on testing?
> > >
> > > > The trouble I see with this is that it is largely theoretical and
> > > > requires part of userspace to collude to start using a new CPU feature
> > > > that tickles a bug in the kernel. As I understand the golden rule,
> > > > this is a bug in the kernel (a missed ioctl() or such) to be fixed,
> > > > not a global breaking of some userspace behavior.
> > >
> > > Yes, we should follow the rule that it's a kernel bug but it doesn't
> > > help the user that a newly installed kernel causes user space to no
> > > longer reach a prompt. Hence the proposal of an opt-in via personality
> > > (for MTE we would need an explicit opt-in by the user anyway since the
> > > top byte is no longer ignored but checked against the allocation tag).
> >
> > but realistically would this actually get used in this way? or would
> > any given system either be MTE or non-MTE. in which case a kernel
> > configuration option would seem to make more sense. (because either
> > way, the hypothetical user basically needs to recompile the kernel to
> > get back on their feet. or all of userspace.)
>
> Right: the point is to design things so that we do our best to not break
> userspace that is using the new feature (which I think this series has
> done well). But supporting MTE/TBI is just like supporting PAN: if someone
> refactors a driver and swaps a copy_from_user() to a memcpy(), it's going
> to break under PAN. There will be the same long tail of these bugs like
> any other, but my sense is that they are small and rare. But I agree:
> they're going to be pretty weird bugs to track down. The final result,
> however, will be excellent annotation in the kernel for where userspace
> addresses get used and people make assumptions about them.
>
> The sooner we get the series landed and gain QEMU support (or real
> hardware), the faster we can hammer out these missed corner-cases.
> What's the timeline for either of those things, BTW?
>
> > > > I feel like I'm missing something about this being seen as an ABI
> > > > break. The kernel already fails on userspace addresses that have high
> > > > bits set -- are there things that _depend_ on this failure to operate?
> > >
> > > It's about providing a relaxed ABI which allows non-zero top byte and
> > > breaking it later inadvertently without having something better in place
> > > to analyse the kernel changes.
>
> It sounds like the question is how to switch a process in or out of this
> ABI (but I don't think that's the real issue: I think it's just a matter
> of whether or not a process uses tags at all). Doing it at the prctl()
> level doesn't make sense to me, except maybe to detect MTE support or
> something. ("Should I tag allocations?") And that state is controlled
> by the kernel: the kernel does it or it doesn't.
>
> If a process wants to not tag, that's also up to the allocator where
> it can decide not to ask the kernel, and just not tag. Nothing breaks in
> userspace if a process is NOT tagging and untagged_addr() exists or is
> missing. This, I think, is the core way this doesn't trip over the
> golden rule: an old system image will run fine (because it's not
> tagging). A *new* system may encounter bugs with tagging because it's a
> new feature: this is The Way Of Things. But we don't break old userspace
> because old userspace isn't using tags.
>
> So the agreement appears to be between the kernel and the allocator.
> Kernel says "I support this" or not. Telling the allocator to not tag if
> something breaks sounds like an entirely userspace decision, yes?

sgtm, and the AT_FLAGS suggestion sounds fine for our needs in that regard.

> --
> Kees Cook

WARNING: multiple messages have this Message-ID (diff)
From: enh@google.com (enh)
Subject: [PATCH v15 00/17] arm64: untag user pointers passed to the kernel
Date: Wed, 22 May 2019 13:15:57 -0700	[thread overview]
Message-ID: <CAJgzZooRCx5MFL8dWuG8VaV=esYBADji7-L49fMeQa6niieWnw@mail.gmail.com> (raw)
Message-ID: <20190522201557.Ty17L8L4vLGmf2aJaGM0SdY7QBKbzwMM7YmMWdPkQ6Q@z> (raw)
In-Reply-To: <201905221157.A9BAB1F296@keescook>

On Wed, May 22, 2019@12:21 PM Kees Cook <keescook@chromium.org> wrote:
>
> On Wed, May 22, 2019@08:30:21AM -0700, enh wrote:
> > On Wed, May 22, 2019@3:11 AM Catalin Marinas <catalin.marinas@arm.com> wrote:
> > > On Tue, May 21, 2019@05:04:39PM -0700, Kees Cook wrote:
> > > > I just want to make sure I fully understand your concern about this
> > > > being an ABI break, and I work best with examples. The closest situation
> > > > I can see would be:
> > > >
> > > > - some program has no idea about MTE
> > >
> > > Apart from some libraries like libc (and maybe those that handle
> > > specific device ioctls), I think most programs should have no idea about
> > > MTE. I wouldn't expect programmers to have to change their app just
> > > because we have a new feature that colours heap allocations.
>
> Right -- things should Just Work from the application perspective.
>
> > obviously i'm biased as a libc maintainer, but...
> >
> > i don't think it helps to move this to libc --- now you just have an
> > extra dependency where to have a guaranteed working system you need to
> > update your kernel and libc together. (or at least update your libc to
> > understand new ioctls etc _before_ you can update your kernel.)
>
> I think (hope?) we've all agreed that we shouldn't pass this off to
> userspace. At the very least, it reduces the utility of MTE, and at worst
> it complicates userspace when this is clearly a kernel/architecture issue.
>
> >
> > > > - malloc() starts returning MTE-tagged addresses
> > > > - program doesn't break from that change
> > > > - program uses some syscall that is missing untagged_addr() and fails
> > > > - kernel has now broken userspace that used to work
> > >
> > > That's one aspect though probably more of a case of plugging in a new
> > > device (graphics card, network etc.) and the ioctl to the new device
> > > doesn't work.
>
> I think MTE will likely be rather like NX/PXN and SMAP/PAN: there will
> be glitches, and we can disable stuff either via CONFIG or (as is more
> common now) via a kernel commandline with untagged_addr() containing a
> static branch, etc. But I actually don't think we need to go this route
> (see below...)
>
> > > The other is that, assuming we reach a point where the kernel entirely
> > > supports this relaxed ABI, can we guarantee that it won't break in the
> > > future. Let's say some subsequent kernel change (some refactoring)
> > > misses out an untagged_addr(). This renders a previously TBI/MTE-capable
> > > syscall unusable. Can we rely only on testing?
> > >
> > > > The trouble I see with this is that it is largely theoretical and
> > > > requires part of userspace to collude to start using a new CPU feature
> > > > that tickles a bug in the kernel. As I understand the golden rule,
> > > > this is a bug in the kernel (a missed ioctl() or such) to be fixed,
> > > > not a global breaking of some userspace behavior.
> > >
> > > Yes, we should follow the rule that it's a kernel bug but it doesn't
> > > help the user that a newly installed kernel causes user space to no
> > > longer reach a prompt. Hence the proposal of an opt-in via personality
> > > (for MTE we would need an explicit opt-in by the user anyway since the
> > > top byte is no longer ignored but checked against the allocation tag).
> >
> > but realistically would this actually get used in this way? or would
> > any given system either be MTE or non-MTE. in which case a kernel
> > configuration option would seem to make more sense. (because either
> > way, the hypothetical user basically needs to recompile the kernel to
> > get back on their feet. or all of userspace.)
>
> Right: the point is to design things so that we do our best to not break
> userspace that is using the new feature (which I think this series has
> done well). But supporting MTE/TBI is just like supporting PAN: if someone
> refactors a driver and swaps a copy_from_user() to a memcpy(), it's going
> to break under PAN. There will be the same long tail of these bugs like
> any other, but my sense is that they are small and rare. But I agree:
> they're going to be pretty weird bugs to track down. The final result,
> however, will be excellent annotation in the kernel for where userspace
> addresses get used and people make assumptions about them.
>
> The sooner we get the series landed and gain QEMU support (or real
> hardware), the faster we can hammer out these missed corner-cases.
> What's the timeline for either of those things, BTW?
>
> > > > I feel like I'm missing something about this being seen as an ABI
> > > > break. The kernel already fails on userspace addresses that have high
> > > > bits set -- are there things that _depend_ on this failure to operate?
> > >
> > > It's about providing a relaxed ABI which allows non-zero top byte and
> > > breaking it later inadvertently without having something better in place
> > > to analyse the kernel changes.
>
> It sounds like the question is how to switch a process in or out of this
> ABI (but I don't think that's the real issue: I think it's just a matter
> of whether or not a process uses tags at all). Doing it at the prctl()
> level doesn't make sense to me, except maybe to detect MTE support or
> something. ("Should I tag allocations?") And that state is controlled
> by the kernel: the kernel does it or it doesn't.
>
> If a process wants to not tag, that's also up to the allocator where
> it can decide not to ask the kernel, and just not tag. Nothing breaks in
> userspace if a process is NOT tagging and untagged_addr() exists or is
> missing. This, I think, is the core way this doesn't trip over the
> golden rule: an old system image will run fine (because it's not
> tagging). A *new* system may encounter bugs with tagging because it's a
> new feature: this is The Way Of Things. But we don't break old userspace
> because old userspace isn't using tags.
>
> So the agreement appears to be between the kernel and the allocator.
> Kernel says "I support this" or not. Telling the allocator to not tag if
> something breaks sounds like an entirely userspace decision, yes?

sgtm, and the AT_FLAGS suggestion sounds fine for our needs in that regard.

> --
> Kees Cook

WARNING: multiple messages have this Message-ID (diff)
From: enh <enh@google.com>
To: Kees Cook <keescook@chromium.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
	Evgenii Stepanov <eugenis@google.com>,
	 Andrey Konovalov <andreyknvl@google.com>,
	Khalid Aziz <khalid.aziz@oracle.com>,
	 Linux ARM <linux-arm-kernel@lists.infradead.org>,
	 Linux Memory Management List <linux-mm@kvack.org>,
	LKML <linux-kernel@vger.kernel.org>,
	 amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	 linux-rdma@vger.kernel.org, linux-media@vger.kernel.org,
	kvm@vger.kernel.org,
	 "open list:KERNEL SELFTEST FRAMEWORK"
	<linux-kselftest@vger.kernel.org>,
	 Vincenzo Frascino <vincenzo.frascino@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	 Mark Rutland <mark.rutland@arm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Yishai Hadas <yishaih@mellanox.com>,
	 Felix Kuehling <Felix.Kuehling@amd.com>,
	Alexander Deucher <Alexander.Deucher@amd.com>,
	 Christian Koenig <Christian.Koenig@amd.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	 Jens Wiklander <jens.wiklander@linaro.org>,
	Alex Williamson <alex.williamson@redhat.com>,
	 Leon Romanovsky <leon@kernel.org>,
	Dmitry Vyukov <dvyukov@google.com>,
	Kostya Serebryany <kcc@google.com>,
	 Lee Smith <Lee.Smith@arm.com>,
	Ramana Radhakrishnan <Ramana.Radhakrishnan@arm.com>,
	 Jacob Bramley <Jacob.Bramley@arm.com>,
	Ruben Ayrapetyan <Ruben.Ayrapetyan@arm.com>,
	 Robin Murphy <robin.murphy@arm.com>,
	Luc Van Oostenryck <luc.vanoostenryck@gmail.com>,
	 Dave Martin <Dave.Martin@arm.com>,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	 Szabolcs Nagy <Szabolcs.Nagy@arm.com>
Subject: Re: [PATCH v15 00/17] arm64: untag user pointers passed to the kernel
Date: Wed, 22 May 2019 13:15:57 -0700	[thread overview]
Message-ID: <CAJgzZooRCx5MFL8dWuG8VaV=esYBADji7-L49fMeQa6niieWnw@mail.gmail.com> (raw)
In-Reply-To: <201905221157.A9BAB1F296@keescook>

On Wed, May 22, 2019 at 12:21 PM Kees Cook <keescook@chromium.org> wrote:
>
> On Wed, May 22, 2019 at 08:30:21AM -0700, enh wrote:
> > On Wed, May 22, 2019 at 3:11 AM Catalin Marinas <catalin.marinas@arm.com> wrote:
> > > On Tue, May 21, 2019 at 05:04:39PM -0700, Kees Cook wrote:
> > > > I just want to make sure I fully understand your concern about this
> > > > being an ABI break, and I work best with examples. The closest situation
> > > > I can see would be:
> > > >
> > > > - some program has no idea about MTE
> > >
> > > Apart from some libraries like libc (and maybe those that handle
> > > specific device ioctls), I think most programs should have no idea about
> > > MTE. I wouldn't expect programmers to have to change their app just
> > > because we have a new feature that colours heap allocations.
>
> Right -- things should Just Work from the application perspective.
>
> > obviously i'm biased as a libc maintainer, but...
> >
> > i don't think it helps to move this to libc --- now you just have an
> > extra dependency where to have a guaranteed working system you need to
> > update your kernel and libc together. (or at least update your libc to
> > understand new ioctls etc _before_ you can update your kernel.)
>
> I think (hope?) we've all agreed that we shouldn't pass this off to
> userspace. At the very least, it reduces the utility of MTE, and at worst
> it complicates userspace when this is clearly a kernel/architecture issue.
>
> >
> > > > - malloc() starts returning MTE-tagged addresses
> > > > - program doesn't break from that change
> > > > - program uses some syscall that is missing untagged_addr() and fails
> > > > - kernel has now broken userspace that used to work
> > >
> > > That's one aspect though probably more of a case of plugging in a new
> > > device (graphics card, network etc.) and the ioctl to the new device
> > > doesn't work.
>
> I think MTE will likely be rather like NX/PXN and SMAP/PAN: there will
> be glitches, and we can disable stuff either via CONFIG or (as is more
> common now) via a kernel commandline with untagged_addr() containing a
> static branch, etc. But I actually don't think we need to go this route
> (see below...)
>
> > > The other is that, assuming we reach a point where the kernel entirely
> > > supports this relaxed ABI, can we guarantee that it won't break in the
> > > future. Let's say some subsequent kernel change (some refactoring)
> > > misses out an untagged_addr(). This renders a previously TBI/MTE-capable
> > > syscall unusable. Can we rely only on testing?
> > >
> > > > The trouble I see with this is that it is largely theoretical and
> > > > requires part of userspace to collude to start using a new CPU feature
> > > > that tickles a bug in the kernel. As I understand the golden rule,
> > > > this is a bug in the kernel (a missed ioctl() or such) to be fixed,
> > > > not a global breaking of some userspace behavior.
> > >
> > > Yes, we should follow the rule that it's a kernel bug but it doesn't
> > > help the user that a newly installed kernel causes user space to no
> > > longer reach a prompt. Hence the proposal of an opt-in via personality
> > > (for MTE we would need an explicit opt-in by the user anyway since the
> > > top byte is no longer ignored but checked against the allocation tag).
> >
> > but realistically would this actually get used in this way? or would
> > any given system either be MTE or non-MTE. in which case a kernel
> > configuration option would seem to make more sense. (because either
> > way, the hypothetical user basically needs to recompile the kernel to
> > get back on their feet. or all of userspace.)
>
> Right: the point is to design things so that we do our best to not break
> userspace that is using the new feature (which I think this series has
> done well). But supporting MTE/TBI is just like supporting PAN: if someone
> refactors a driver and swaps a copy_from_user() to a memcpy(), it's going
> to break under PAN. There will be the same long tail of these bugs like
> any other, but my sense is that they are small and rare. But I agree:
> they're going to be pretty weird bugs to track down. The final result,
> however, will be excellent annotation in the kernel for where userspace
> addresses get used and people make assumptions about them.
>
> The sooner we get the series landed and gain QEMU support (or real
> hardware), the faster we can hammer out these missed corner-cases.
> What's the timeline for either of those things, BTW?
>
> > > > I feel like I'm missing something about this being seen as an ABI
> > > > break. The kernel already fails on userspace addresses that have high
> > > > bits set -- are there things that _depend_ on this failure to operate?
> > >
> > > It's about providing a relaxed ABI which allows non-zero top byte and
> > > breaking it later inadvertently without having something better in place
> > > to analyse the kernel changes.
>
> It sounds like the question is how to switch a process in or out of this
> ABI (but I don't think that's the real issue: I think it's just a matter
> of whether or not a process uses tags at all). Doing it at the prctl()
> level doesn't make sense to me, except maybe to detect MTE support or
> something. ("Should I tag allocations?") And that state is controlled
> by the kernel: the kernel does it or it doesn't.
>
> If a process wants to not tag, that's also up to the allocator where
> it can decide not to ask the kernel, and just not tag. Nothing breaks in
> userspace if a process is NOT tagging and untagged_addr() exists or is
> missing. This, I think, is the core way this doesn't trip over the
> golden rule: an old system image will run fine (because it's not
> tagging). A *new* system may encounter bugs with tagging because it's a
> new feature: this is The Way Of Things. But we don't break old userspace
> because old userspace isn't using tags.
>
> So the agreement appears to be between the kernel and the allocator.
> Kernel says "I support this" or not. Telling the allocator to not tag if
> something breaks sounds like an entirely userspace decision, yes?

sgtm, and the AT_FLAGS suggestion sounds fine for our needs in that regard.

> --
> Kees Cook


WARNING: multiple messages have this Message-ID (diff)
From: enh <enh@google.com>
To: Kees Cook <keescook@chromium.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
	kvm@vger.kernel.org, Szabolcs Nagy <Szabolcs.Nagy@arm.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	dri-devel@lists.freedesktop.org,
	Linux Memory Management List <linux-mm@kvack.org>,
	Khalid Aziz <khalid.aziz@oracle.com>,
	"open list:KERNEL SELFTEST FRAMEWORK"
	<linux-kselftest@vger.kernel.org>,
	Vincenzo Frascino <vincenzo.frascino@arm.com>,
	Jacob Bramley <Jacob.Bramley@arm.com>,
	Leon Romanovsky <leon@kernel.org>,
	linux-rdma@vger.kernel.org, amd-gfx@lists.freedesktop.org,
	Dmitry Vyukov <dvyukov@google.com>,
	Dave Martin <Dave.Martin@arm.com>,
	Evgenii Stepanov <eugenis@google.com>,
	linux-media@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Ruben Ayrapetyan <Ruben.Ayrapetyan@arm.com>,
	Andrey Konovalov <andreyknvl@google.com>,
	Ramana Radhakrishnan <Ramana.Radhakrishnan@arm.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Yishai Hadas <yishaih@mellanox.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Kostya Serebryany <kcc@google.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Felix Kuehling <Felix.Kuehling@amd.com>,
	LKML <linux-kernel@vger.kernel.org>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Lee Smith <Lee.Smith@arm.com>,
	Alexander Deucher <Alexander.Deucher@amd.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Robin Murphy <robin.murphy@arm.com>,
	Christian Koenig <Christian.Koenig@amd.com>,
	Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Subject: Re: [PATCH v15 00/17] arm64: untag user pointers passed to the kernel
Date: Wed, 22 May 2019 13:15:57 -0700	[thread overview]
Message-ID: <CAJgzZooRCx5MFL8dWuG8VaV=esYBADji7-L49fMeQa6niieWnw@mail.gmail.com> (raw)
In-Reply-To: <201905221157.A9BAB1F296@keescook>

On Wed, May 22, 2019 at 12:21 PM Kees Cook <keescook@chromium.org> wrote:
>
> On Wed, May 22, 2019 at 08:30:21AM -0700, enh wrote:
> > On Wed, May 22, 2019 at 3:11 AM Catalin Marinas <catalin.marinas@arm.com> wrote:
> > > On Tue, May 21, 2019 at 05:04:39PM -0700, Kees Cook wrote:
> > > > I just want to make sure I fully understand your concern about this
> > > > being an ABI break, and I work best with examples. The closest situation
> > > > I can see would be:
> > > >
> > > > - some program has no idea about MTE
> > >
> > > Apart from some libraries like libc (and maybe those that handle
> > > specific device ioctls), I think most programs should have no idea about
> > > MTE. I wouldn't expect programmers to have to change their app just
> > > because we have a new feature that colours heap allocations.
>
> Right -- things should Just Work from the application perspective.
>
> > obviously i'm biased as a libc maintainer, but...
> >
> > i don't think it helps to move this to libc --- now you just have an
> > extra dependency where to have a guaranteed working system you need to
> > update your kernel and libc together. (or at least update your libc to
> > understand new ioctls etc _before_ you can update your kernel.)
>
> I think (hope?) we've all agreed that we shouldn't pass this off to
> userspace. At the very least, it reduces the utility of MTE, and at worst
> it complicates userspace when this is clearly a kernel/architecture issue.
>
> >
> > > > - malloc() starts returning MTE-tagged addresses
> > > > - program doesn't break from that change
> > > > - program uses some syscall that is missing untagged_addr() and fails
> > > > - kernel has now broken userspace that used to work
> > >
> > > That's one aspect though probably more of a case of plugging in a new
> > > device (graphics card, network etc.) and the ioctl to the new device
> > > doesn't work.
>
> I think MTE will likely be rather like NX/PXN and SMAP/PAN: there will
> be glitches, and we can disable stuff either via CONFIG or (as is more
> common now) via a kernel commandline with untagged_addr() containing a
> static branch, etc. But I actually don't think we need to go this route
> (see below...)
>
> > > The other is that, assuming we reach a point where the kernel entirely
> > > supports this relaxed ABI, can we guarantee that it won't break in the
> > > future. Let's say some subsequent kernel change (some refactoring)
> > > misses out an untagged_addr(). This renders a previously TBI/MTE-capable
> > > syscall unusable. Can we rely only on testing?
> > >
> > > > The trouble I see with this is that it is largely theoretical and
> > > > requires part of userspace to collude to start using a new CPU feature
> > > > that tickles a bug in the kernel. As I understand the golden rule,
> > > > this is a bug in the kernel (a missed ioctl() or such) to be fixed,
> > > > not a global breaking of some userspace behavior.
> > >
> > > Yes, we should follow the rule that it's a kernel bug but it doesn't
> > > help the user that a newly installed kernel causes user space to no
> > > longer reach a prompt. Hence the proposal of an opt-in via personality
> > > (for MTE we would need an explicit opt-in by the user anyway since the
> > > top byte is no longer ignored but checked against the allocation tag).
> >
> > but realistically would this actually get used in this way? or would
> > any given system either be MTE or non-MTE. in which case a kernel
> > configuration option would seem to make more sense. (because either
> > way, the hypothetical user basically needs to recompile the kernel to
> > get back on their feet. or all of userspace.)
>
> Right: the point is to design things so that we do our best to not break
> userspace that is using the new feature (which I think this series has
> done well). But supporting MTE/TBI is just like supporting PAN: if someone
> refactors a driver and swaps a copy_from_user() to a memcpy(), it's going
> to break under PAN. There will be the same long tail of these bugs like
> any other, but my sense is that they are small and rare. But I agree:
> they're going to be pretty weird bugs to track down. The final result,
> however, will be excellent annotation in the kernel for where userspace
> addresses get used and people make assumptions about them.
>
> The sooner we get the series landed and gain QEMU support (or real
> hardware), the faster we can hammer out these missed corner-cases.
> What's the timeline for either of those things, BTW?
>
> > > > I feel like I'm missing something about this being seen as an ABI
> > > > break. The kernel already fails on userspace addresses that have high
> > > > bits set -- are there things that _depend_ on this failure to operate?
> > >
> > > It's about providing a relaxed ABI which allows non-zero top byte and
> > > breaking it later inadvertently without having something better in place
> > > to analyse the kernel changes.
>
> It sounds like the question is how to switch a process in or out of this
> ABI (but I don't think that's the real issue: I think it's just a matter
> of whether or not a process uses tags at all). Doing it at the prctl()
> level doesn't make sense to me, except maybe to detect MTE support or
> something. ("Should I tag allocations?") And that state is controlled
> by the kernel: the kernel does it or it doesn't.
>
> If a process wants to not tag, that's also up to the allocator where
> it can decide not to ask the kernel, and just not tag. Nothing breaks in
> userspace if a process is NOT tagging and untagged_addr() exists or is
> missing. This, I think, is the core way this doesn't trip over the
> golden rule: an old system image will run fine (because it's not
> tagging). A *new* system may encounter bugs with tagging because it's a
> new feature: this is The Way Of Things. But we don't break old userspace
> because old userspace isn't using tags.
>
> So the agreement appears to be between the kernel and the allocator.
> Kernel says "I support this" or not. Telling the allocator to not tag if
> something breaks sounds like an entirely userspace decision, yes?

sgtm, and the AT_FLAGS suggestion sounds fine for our needs in that regard.

> --
> Kees Cook

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-05-22 20:15 UTC|newest]

Thread overview: 558+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-06 16:30 [PATCH v15 00/17] arm64: untag user pointers passed to the kernel Andrey Konovalov
2019-05-06 16:30 ` Andrey Konovalov
2019-05-06 16:30 ` Andrey Konovalov
2019-05-06 16:30 ` Andrey Konovalov
2019-05-06 16:30 ` andreyknvl
2019-05-06 16:30 ` Andrey Konovalov
2019-05-06 16:30 ` [PATCH v15 01/17] uaccess: add untagged_addr definition for other arches Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` andreyknvl
2019-05-06 16:30   ` Andrey Konovalov
2019-05-29 14:49   ` Khalid Aziz
2019-05-29 14:49     ` Khalid Aziz
2019-05-29 14:49     ` Khalid Aziz
2019-05-29 14:49     ` khalid.aziz
2019-05-29 14:49     ` Khalid Aziz
2019-05-06 16:30 ` [PATCH v15 02/17] arm64: untag user pointers in access_ok and __uaccess_mask_ptr Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` andreyknvl
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30 ` [PATCH v15 03/17] lib, arm64: untag user pointers in strn*_user Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` andreyknvl
2019-05-06 16:30   ` Andrey Konovalov
2019-05-22 10:41   ` Catalin Marinas
2019-05-22 10:41     ` Catalin Marinas
2019-05-22 10:41     ` Catalin Marinas
2019-05-22 10:41     ` catalin.marinas
2019-05-22 10:41     ` Catalin Marinas
2019-05-06 16:30 ` [PATCH v15 04/17] mm: add ksys_ wrappers to memory syscalls Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` andreyknvl
2019-05-06 16:30   ` Andrey Konovalov
2019-05-22 10:56   ` Catalin Marinas
2019-05-22 10:56     ` Catalin Marinas
2019-05-22 10:56     ` Catalin Marinas
2019-05-22 10:56     ` catalin.marinas
2019-05-22 10:56     ` Catalin Marinas
2019-05-06 16:30 ` [PATCH v15 05/17] arms64: untag user pointers passed " Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` andreyknvl
2019-05-06 16:30   ` Andrey Konovalov
2019-05-22 11:49   ` Catalin Marinas
2019-05-22 11:49     ` Catalin Marinas
2019-05-22 11:49     ` Catalin Marinas
2019-05-22 11:49     ` catalin.marinas
2019-05-22 11:49     ` Catalin Marinas
2019-05-22 21:16     ` Evgenii Stepanov
2019-05-22 21:16       ` Evgenii Stepanov
2019-05-22 21:16       ` Evgenii Stepanov
2019-05-22 21:16       ` Evgenii Stepanov
2019-05-22 21:16       ` eugenis
2019-05-22 21:16       ` Evgenii Stepanov
2019-05-23  9:04       ` Catalin Marinas
2019-05-23  9:04         ` Catalin Marinas
2019-05-23  9:04         ` Catalin Marinas
2019-05-23  9:04         ` Catalin Marinas
2019-05-23  9:04         ` catalin.marinas
2019-05-23  9:04         ` Catalin Marinas
2019-05-24  4:23         ` Evgenii Stepanov
2019-05-24  4:23           ` Evgenii Stepanov
2019-05-24  4:23           ` Evgenii Stepanov
2019-05-24  4:23           ` Evgenii Stepanov
2019-05-24  4:23           ` eugenis
2019-05-24  4:23           ` Evgenii Stepanov
2019-05-24 15:41   ` Andrew Murray
2019-05-24 15:41     ` Andrew Murray
2019-05-24 15:41     ` Andrew Murray
2019-05-24 15:41     ` andrew.murray
2019-05-24 15:41     ` Andrew Murray
2019-05-25  9:57   ` Catalin Marinas
2019-05-25  9:57     ` Catalin Marinas
2019-05-25  9:57     ` Catalin Marinas
2019-05-25  9:57     ` catalin.marinas
2019-05-25  9:57     ` Catalin Marinas
2019-05-27  9:42   ` Catalin Marinas
2019-05-27  9:42     ` Catalin Marinas
2019-05-27  9:42     ` Catalin Marinas
2019-05-27  9:42     ` catalin.marinas
2019-05-27  9:42     ` Catalin Marinas
2019-05-27 14:37   ` Catalin Marinas
2019-05-27 14:37     ` Catalin Marinas
2019-05-27 14:37     ` Catalin Marinas
2019-05-27 14:37     ` catalin.marinas
2019-05-27 14:37     ` Catalin Marinas
2019-05-28 14:54     ` Andrew Murray
2019-05-28 14:54       ` Andrew Murray
2019-05-28 14:54       ` Andrew Murray
2019-05-28 14:54       ` andrew.murray
2019-05-28 14:54       ` Andrew Murray
2019-05-28 15:40       ` Catalin Marinas
2019-05-28 15:40         ` Catalin Marinas
2019-05-28 15:40         ` Catalin Marinas
2019-05-28 15:40         ` catalin.marinas
2019-05-28 15:40         ` Catalin Marinas
2019-05-28 15:56         ` Dave Martin
2019-05-28 15:56           ` Dave Martin
2019-05-28 15:56           ` Dave Martin
2019-05-28 15:56           ` Dave.Martin
2019-05-28 15:56           ` Dave Martin
2019-05-28 16:34           ` Catalin Marinas
2019-05-28 16:34             ` Catalin Marinas
2019-05-28 16:34             ` Catalin Marinas
2019-05-28 16:34             ` catalin.marinas
2019-05-28 16:34             ` Catalin Marinas
2019-05-29 12:42             ` Dave Martin
2019-05-29 12:42               ` Dave Martin
2019-05-29 12:42               ` Dave Martin
2019-05-29 12:42               ` Dave.Martin
2019-05-29 12:42               ` Dave Martin
2019-05-29 13:23               ` Catalin Marinas
2019-05-29 13:23                 ` Catalin Marinas
2019-05-29 13:23                 ` Catalin Marinas
2019-05-29 13:23                 ` catalin.marinas
2019-05-29 13:23                 ` Catalin Marinas
2019-05-29 15:18                 ` Dave Martin
2019-05-29 15:18                   ` Dave Martin
2019-05-29 15:18                   ` Dave Martin
2019-05-29 15:18                   ` Dave.Martin
2019-05-29 15:18                   ` Dave Martin
2019-05-28 23:33         ` Khalid Aziz
2019-05-28 23:33           ` Khalid Aziz
2019-05-28 23:33           ` Khalid Aziz
2019-05-28 23:33           ` khalid.aziz
2019-05-28 23:33           ` Khalid Aziz
2019-05-29 14:20           ` Catalin Marinas
2019-05-29 14:20             ` Catalin Marinas
2019-05-29 14:20             ` Catalin Marinas
2019-05-29 14:20             ` catalin.marinas
2019-05-29 14:20             ` Catalin Marinas
2019-05-29 19:16             ` Khalid Aziz
2019-05-29 19:16               ` Khalid Aziz
2019-05-29 19:16               ` Khalid Aziz
2019-05-29 19:16               ` khalid.aziz
2019-05-29 19:16               ` Khalid Aziz
2019-05-30 15:11               ` Catalin Marinas
2019-05-30 15:11                 ` Catalin Marinas
2019-05-30 15:11                 ` Catalin Marinas
2019-05-30 15:11                 ` catalin.marinas
2019-05-30 15:11                 ` Catalin Marinas
2019-05-30 16:05                 ` Khalid Aziz
2019-05-30 16:05                   ` Khalid Aziz
2019-05-30 16:05                   ` Khalid Aziz
2019-05-30 16:05                   ` khalid.aziz
2019-05-30 16:05                   ` Khalid Aziz
2019-05-30 16:57                   ` Catalin Marinas
2019-05-30 16:57                     ` Catalin Marinas
2019-05-30 16:57                     ` Catalin Marinas
2019-05-30 16:57                     ` catalin.marinas
2019-05-30 16:57                     ` Catalin Marinas
2019-05-28 13:05   ` Catalin Marinas
2019-05-28 13:05     ` Catalin Marinas
2019-05-28 13:05     ` Catalin Marinas
2019-05-28 13:05     ` catalin.marinas
2019-05-28 13:05     ` Catalin Marinas
2019-05-06 16:30 ` [PATCH v15 06/17] mm: untag user pointers in do_pages_move Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` andreyknvl
2019-05-06 16:30   ` Andrey Konovalov
2019-05-22 11:51   ` Catalin Marinas
2019-05-22 11:51     ` Catalin Marinas
2019-05-22 11:51     ` Catalin Marinas
2019-05-22 11:51     ` catalin.marinas
2019-05-22 11:51     ` Catalin Marinas
2019-05-06 16:30 ` [PATCH v15 07/17] mm, arm64: untag user pointers in mm/gup.c Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` andreyknvl
2019-05-06 16:30   ` Andrey Konovalov
2019-05-22 11:56   ` Catalin Marinas
2019-05-22 11:56     ` Catalin Marinas
2019-05-22 11:56     ` Catalin Marinas
2019-05-22 11:56     ` catalin.marinas
2019-05-22 11:56     ` Catalin Marinas
2019-05-06 16:30 ` [PATCH v15 08/17] mm, arm64: untag user pointers in get_vaddr_frames Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` andreyknvl
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30 ` [PATCH v15 09/17] fs, arm64: untag user pointers in copy_mount_options Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` andreyknvl
2019-05-06 16:30   ` Andrey Konovalov
2019-05-22 12:09   ` Catalin Marinas
2019-05-22 12:09     ` Catalin Marinas
2019-05-22 12:09     ` Catalin Marinas
2019-05-22 12:09     ` catalin.marinas
2019-05-22 12:09     ` Catalin Marinas
2019-05-06 16:30 ` [PATCH v15 10/17] fs, arm64: untag user pointers in fs/userfaultfd.c Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` andreyknvl
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30 ` [PATCH v15 11/17] drm/amdgpu, arm64: untag user pointers Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` andreyknvl
2019-05-06 16:30   ` Andrey Konovalov
2019-05-07 16:43   ` Kuehling, Felix
2019-05-07 16:43     ` Kuehling, Felix
2019-05-07 16:43     ` Kuehling, Felix
2019-05-07 16:43     ` Kuehling, Felix
2019-05-07 16:43     ` Felix.Kuehling
2019-05-07 16:43     ` Kuehling, Felix
2019-05-06 16:30 ` [PATCH v15 12/17] drm/radeon, arm64: untag user pointers in radeon_gem_userptr_ioctl Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` andreyknvl
2019-05-06 16:30   ` Andrey Konovalov
     [not found]   ` <03fe9d923db75cf72678f3ce103838e67390751a.1557160186.git.andreyknvl-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2019-05-07 16:44     ` Kuehling, Felix
2019-05-07 16:44       ` Kuehling, Felix
2019-05-07 16:44       ` Kuehling, Felix
2019-05-07 16:44       ` Kuehling, Felix
2019-05-07 16:44       ` Felix.Kuehling
2019-05-07 16:44       ` Kuehling, Felix
2019-05-06 16:30 ` [PATCH v15 13/17] IB, arm64: untag user pointers in ib_uverbs_(re)reg_mr() Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 16:30   ` andreyknvl
2019-05-06 16:30   ` Andrey Konovalov
2019-05-06 19:50   ` Jason Gunthorpe
2019-05-06 19:50     ` Jason Gunthorpe
2019-05-06 19:50     ` Jason Gunthorpe
2019-05-06 19:50     ` jgg
2019-05-06 19:50     ` Jason Gunthorpe
2019-05-07  6:33     ` Leon Romanovsky
2019-05-07  6:33       ` Leon Romanovsky
2019-05-07  6:33       ` Leon Romanovsky
2019-05-07  6:33       ` leon
2019-05-07  6:33       ` Leon Romanovsky
2019-05-06 16:31 ` [PATCH v15 14/17] media/v4l2-core, arm64: untag user pointers in videobuf_dma_contig_user_get Andrey Konovalov
2019-05-06 16:31   ` Andrey Konovalov
2019-05-06 16:31   ` Andrey Konovalov
2019-05-06 16:31   ` Andrey Konovalov
2019-05-06 16:31   ` andreyknvl
2019-05-06 16:31   ` Andrey Konovalov
2019-05-24 13:13   ` Mauro Carvalho Chehab
2019-05-24 13:13     ` Mauro Carvalho Chehab
2019-05-24 13:13     ` Mauro Carvalho Chehab
2019-05-24 13:13     ` mchehab+samsung
2019-05-24 13:13     ` Mauro Carvalho Chehab
2019-05-06 16:31 ` [PATCH v15 15/17] tee, arm64: untag user pointers in tee_shm_register Andrey Konovalov
2019-05-06 16:31   ` Andrey Konovalov
2019-05-06 16:31   ` Andrey Konovalov
2019-05-06 16:31   ` Andrey Konovalov
2019-05-06 16:31   ` andreyknvl
2019-05-06 16:31   ` Andrey Konovalov
2019-05-06 16:31 ` [PATCH v15 16/17] vfio/type1, arm64: untag user pointers in vaddr_get_pfn Andrey Konovalov
2019-05-06 16:31   ` Andrey Konovalov
2019-05-06 16:31   ` Andrey Konovalov
2019-05-06 16:31   ` Andrey Konovalov
2019-05-06 16:31   ` andreyknvl
2019-05-06 16:31   ` Andrey Konovalov
2019-05-06 16:31 ` [PATCH v15 17/17] selftests, arm64: add a selftest for passing tagged pointers to kernel Andrey Konovalov
2019-05-06 16:31   ` Andrey Konovalov
2019-05-06 16:31   ` Andrey Konovalov
2019-05-06 16:31   ` Andrey Konovalov
2019-05-06 16:31   ` andreyknvl
2019-05-06 16:31   ` Andrey Konovalov
2019-05-22 14:16   ` Catalin Marinas
2019-05-22 14:16     ` Catalin Marinas
2019-05-22 14:16     ` Catalin Marinas
2019-05-22 14:16     ` catalin.marinas
2019-05-22 14:16     ` Catalin Marinas
2019-05-31 14:21     ` Andrey Konovalov
2019-05-31 14:21       ` Andrey Konovalov
2019-05-31 14:21       ` Andrey Konovalov
2019-05-31 14:21       ` Andrey Konovalov
2019-05-31 14:21       ` andreyknvl
2019-05-31 14:21       ` Andrey Konovalov
2019-05-31 16:22       ` Catalin Marinas
2019-05-31 16:22         ` Catalin Marinas
2019-05-31 16:22         ` Catalin Marinas
2019-05-31 16:22         ` Catalin Marinas
2019-05-31 16:22         ` catalin.marinas
2019-05-31 16:22         ` Catalin Marinas
2019-05-17 14:49 ` [PATCH v15 00/17] arm64: untag user pointers passed to the kernel Catalin Marinas
2019-05-17 14:49   ` Catalin Marinas
2019-05-17 14:49   ` Catalin Marinas
2019-05-17 14:49   ` catalin.marinas
2019-05-17 14:49   ` Catalin Marinas
2019-05-20 23:53   ` Evgenii Stepanov
2019-05-20 23:53     ` Evgenii Stepanov
2019-05-20 23:53     ` Evgenii Stepanov
2019-05-20 23:53     ` Evgenii Stepanov
2019-05-20 23:53     ` eugenis
2019-05-20 23:53     ` Evgenii Stepanov
2019-05-21 18:29     ` Catalin Marinas
2019-05-21 18:29       ` Catalin Marinas
2019-05-21 18:29       ` Catalin Marinas
2019-05-21 18:29       ` Catalin Marinas
2019-05-21 18:29       ` catalin.marinas
2019-05-21 18:29       ` Catalin Marinas
2019-05-22  0:04       ` Kees Cook
2019-05-22  0:04         ` Kees Cook
2019-05-22  0:04         ` Kees Cook
2019-05-22  0:04         ` Kees Cook
2019-05-22  0:04         ` keescook
2019-05-22  0:04         ` Kees Cook
2019-05-22 10:11         ` Catalin Marinas
2019-05-22 10:11           ` Catalin Marinas
2019-05-22 10:11           ` Catalin Marinas
2019-05-22 10:11           ` Catalin Marinas
2019-05-22 10:11           ` catalin.marinas
2019-05-22 10:11           ` Catalin Marinas
2019-05-22 15:30           ` enh
2019-05-22 15:30             ` enh
2019-05-22 15:30             ` enh
2019-05-22 15:30             ` enh
2019-05-22 15:30             ` enh
2019-05-22 15:30             ` enh
2019-05-22 16:35             ` Catalin Marinas
2019-05-22 16:35               ` Catalin Marinas
2019-05-22 16:35               ` Catalin Marinas
2019-05-22 16:35               ` Catalin Marinas
2019-05-22 16:35               ` catalin.marinas
2019-05-22 16:35               ` Catalin Marinas
2019-05-22 16:58               ` enh
2019-05-22 16:58                 ` enh
2019-05-22 16:58                 ` enh
2019-05-22 16:58                 ` enh
2019-05-22 16:58                 ` enh
2019-05-22 16:58                 ` enh
2019-05-23 15:21                 ` Catalin Marinas
2019-05-23 15:21                   ` Catalin Marinas
2019-05-23 15:21                   ` Catalin Marinas
2019-05-23 15:21                   ` Catalin Marinas
2019-05-23 15:21                   ` catalin.marinas
2019-05-23 15:21                   ` Catalin Marinas
2019-05-22 20:47               ` Kees Cook
2019-05-22 20:47                 ` Kees Cook
2019-05-22 20:47                 ` Kees Cook
2019-05-22 20:47                 ` Kees Cook
2019-05-22 20:47                 ` keescook
2019-05-22 20:47                 ` Kees Cook
2019-05-22 23:03                 ` Evgenii Stepanov
2019-05-22 23:03                   ` Evgenii Stepanov
2019-05-22 23:03                   ` Evgenii Stepanov
2019-05-22 23:03                   ` Evgenii Stepanov
2019-05-22 23:03                   ` eugenis
2019-05-22 23:03                   ` Evgenii Stepanov
2019-05-22 23:09                   ` enh
2019-05-22 23:09                     ` enh
2019-05-22 23:09                     ` enh
2019-05-22 23:09                     ` enh
2019-05-22 23:09                     ` enh
2019-05-22 23:09                     ` enh
2019-05-23  7:34                     ` Catalin Marinas
2019-05-23  7:34                       ` Catalin Marinas
2019-05-23  7:34                       ` Catalin Marinas
2019-05-23  7:34                       ` Catalin Marinas
2019-05-23  7:34                       ` catalin.marinas
2019-05-23  7:34                       ` Catalin Marinas
2019-05-23 14:44                 ` Catalin Marinas
2019-05-23 14:44                   ` Catalin Marinas
2019-05-23 14:44                   ` Catalin Marinas
2019-05-23 14:44                   ` Catalin Marinas
2019-05-23 14:44                   ` catalin.marinas
2019-05-23 14:44                   ` Catalin Marinas
2019-05-23 15:44                   ` enh
2019-05-23 15:44                     ` enh
2019-05-23 15:44                     ` enh
2019-05-23 15:44                     ` enh
2019-05-23 15:44                     ` enh
2019-05-23 15:44                     ` enh
2019-05-23 17:00                     ` Catalin Marinas
2019-05-23 17:00                       ` Catalin Marinas
2019-05-23 17:00                       ` Catalin Marinas
2019-05-23 17:00                       ` Catalin Marinas
2019-05-23 17:00                       ` catalin.marinas
2019-05-23 17:00                       ` Catalin Marinas
2019-05-23 16:38                   ` Kees Cook
2019-05-23 16:38                     ` Kees Cook
2019-05-23 16:38                     ` Kees Cook
2019-05-23 16:38                     ` Kees Cook
2019-05-23 16:38                     ` keescook
2019-05-23 16:38                     ` Kees Cook
2019-05-23 17:43                     ` Catalin Marinas
2019-05-23 17:43                       ` Catalin Marinas
2019-05-23 17:43                       ` Catalin Marinas
2019-05-23 17:43                       ` Catalin Marinas
2019-05-23 17:43                       ` catalin.marinas
2019-05-23 17:43                       ` Catalin Marinas
2019-05-23 21:31                       ` Kees Cook
2019-05-23 21:31                         ` Kees Cook
2019-05-23 21:31                         ` Kees Cook
2019-05-23 21:31                         ` Kees Cook
2019-05-23 21:31                         ` keescook
2019-05-23 21:31                         ` Kees Cook
2019-05-24 11:20                         ` Catalin Marinas
2019-05-24 11:20                           ` Catalin Marinas
2019-05-24 11:20                           ` Catalin Marinas
2019-05-24 11:20                           ` Catalin Marinas
2019-05-24 11:20                           ` catalin.marinas
2019-05-24 11:20                           ` Catalin Marinas
2019-05-28 17:02                         ` Catalin Marinas
2019-05-28 17:02                           ` Catalin Marinas
2019-05-28 17:02                           ` Catalin Marinas
2019-05-28 17:02                           ` Catalin Marinas
2019-05-28 17:02                           ` catalin.marinas
2019-05-28 17:02                           ` Catalin Marinas
2019-06-02  5:06                           ` Kees Cook
2019-06-02  5:06                             ` Kees Cook
2019-06-02  5:06                             ` Kees Cook
2019-06-02  5:06                             ` Kees Cook
2019-06-02  5:06                             ` keescook
2019-06-02  5:06                             ` Kees Cook
2019-05-22 19:21             ` Kees Cook
2019-05-22 19:21               ` Kees Cook
2019-05-22 19:21               ` Kees Cook
2019-05-22 19:21               ` Kees Cook
2019-05-22 19:21               ` keescook
2019-05-22 19:21               ` Kees Cook
2019-05-22 20:15               ` enh [this message]
2019-05-22 20:15                 ` enh
2019-05-22 20:15                 ` enh
2019-05-22 20:15                 ` enh
2019-05-22 20:15                 ` enh
2019-05-22 20:15                 ` enh
2019-05-23 15:08               ` Catalin Marinas
2019-05-23 15:08                 ` Catalin Marinas
2019-05-23 15:08                 ` Catalin Marinas
2019-05-23 15:08                 ` Catalin Marinas
2019-05-23 15:08                 ` catalin.marinas
2019-05-23 15:08                 ` Catalin Marinas
2019-05-23 17:51         ` Khalid Aziz
2019-05-23 17:51           ` Khalid Aziz
2019-05-23 17:51           ` Khalid Aziz
2019-05-23 17:51           ` Khalid Aziz
2019-05-23 17:51           ` khalid.aziz
2019-05-23 17:51           ` Khalid Aziz
2019-05-23 20:11           ` Catalin Marinas
2019-05-23 20:11             ` Catalin Marinas
2019-05-23 20:11             ` Catalin Marinas
2019-05-23 20:11             ` Catalin Marinas
2019-05-23 20:11             ` catalin.marinas
2019-05-23 20:11             ` Catalin Marinas
2019-05-23 21:42             ` Khalid Aziz
2019-05-23 21:42               ` Khalid Aziz
2019-05-23 21:42               ` Khalid Aziz
2019-05-23 21:42               ` Khalid Aziz
2019-05-23 21:42               ` khalid.aziz
2019-05-23 21:42               ` Khalid Aziz
2019-05-23 21:49             ` Khalid Aziz
2019-05-23 21:49               ` Khalid Aziz
2019-05-23 21:49               ` Khalid Aziz
2019-05-23 21:49               ` Khalid Aziz
2019-05-23 21:49               ` khalid.aziz
2019-05-23 21:49               ` Khalid Aziz
2019-05-24 10:11               ` Catalin Marinas
2019-05-24 10:11                 ` Catalin Marinas
2019-05-24 10:11                 ` Catalin Marinas
2019-05-24 10:11                 ` Catalin Marinas
2019-05-24 10:11                 ` catalin.marinas
2019-05-24 10:11                 ` Catalin Marinas
2019-05-24 14:25                 ` Khalid Aziz
2019-05-24 14:25                   ` Khalid Aziz
2019-05-24 14:25                   ` Khalid Aziz
2019-05-24 14:25                   ` Khalid Aziz
2019-05-24 14:25                   ` khalid.aziz
2019-05-24 14:25                   ` Khalid Aziz
2019-05-28 14:14                   ` Andrey Konovalov
2019-05-28 14:14                     ` Andrey Konovalov
2019-05-28 14:14                     ` Andrey Konovalov
2019-05-28 14:14                     ` Andrey Konovalov
2019-05-28 14:14                     ` andreyknvl
2019-05-28 14:14                     ` Andrey Konovalov
2019-05-29  6:11                     ` Christoph Hellwig
2019-05-29  6:11                       ` Christoph Hellwig
2019-05-29  6:11                       ` Christoph Hellwig
2019-05-29  6:11                       ` Christoph Hellwig
2019-05-29  6:11                       ` hch
2019-05-29  6:11                       ` Christoph Hellwig
2019-05-29 12:12                       ` Catalin Marinas
2019-05-29 12:12                         ` Catalin Marinas
2019-05-29 12:12                         ` Catalin Marinas
2019-05-29 12:12                         ` Catalin Marinas
2019-05-29 12:12                         ` catalin.marinas
2019-05-29 12:12                         ` Catalin Marinas
2019-05-30 17:15                     ` Catalin Marinas
2019-05-30 17:15                       ` Catalin Marinas
2019-05-30 17:15                       ` Catalin Marinas
2019-05-30 17:15                       ` Catalin Marinas
2019-05-30 17:15                       ` catalin.marinas
2019-05-30 17:15                       ` Catalin Marinas
2019-05-31 14:29                       ` Andrey Konovalov
2019-05-31 14:29                         ` Andrey Konovalov
2019-05-31 14:29                         ` Andrey Konovalov
2019-05-31 14:29                         ` Andrey Konovalov
2019-05-31 14:29                         ` andreyknvl
2019-05-31 14:29                         ` Andrey Konovalov
2019-05-31 16:19                         ` Catalin Marinas
2019-05-31 16:19                           ` Catalin Marinas
2019-05-31 16:19                           ` Catalin Marinas
2019-05-31 16:19                           ` Catalin Marinas
2019-05-31 16:19                           ` catalin.marinas
2019-05-31 16:19                           ` Catalin Marinas
2019-05-31 16:24                           ` Andrey Konovalov
2019-05-31 16:24                             ` Andrey Konovalov
2019-05-31 16:24                             ` Andrey Konovalov
2019-05-31 16:24                             ` Andrey Konovalov
2019-05-31 16:24                             ` andreyknvl
2019-05-31 16:24                             ` Andrey Konovalov
2019-05-31 16:46                             ` Catalin Marinas
2019-05-31 16:46                               ` Catalin Marinas
2019-05-31 16:46                               ` Catalin Marinas
2019-05-31 16:46                               ` Catalin Marinas
2019-05-31 16:46                               ` catalin.marinas
2019-05-31 16:46                               ` Catalin Marinas
2019-05-21 18:48   ` Jason Gunthorpe
2019-05-21 18:48     ` Jason Gunthorpe
2019-05-21 18:48     ` Jason Gunthorpe
2019-05-21 18:48     ` jgg
2019-05-21 18:48     ` Jason Gunthorpe
2019-05-22 13:49     ` Dave Martin
2019-05-22 13:49       ` Dave Martin
2019-05-22 13:49       ` Dave Martin
2019-05-22 13:49       ` Dave.Martin
2019-05-22 13:49       ` Dave Martin
2019-05-23  0:20       ` Jason Gunthorpe
2019-05-23  0:20         ` Jason Gunthorpe
2019-05-23  0:20         ` Jason Gunthorpe
2019-05-23  0:20         ` jgg
2019-05-23  0:20         ` Jason Gunthorpe
2019-05-23 10:42         ` Dave Martin
2019-05-23 10:42           ` Dave Martin
2019-05-23 10:42           ` Dave Martin
2019-05-23 10:42           ` Dave.Martin
2019-05-23 10:42           ` Dave Martin
2019-05-23 16:57           ` Catalin Marinas
2019-05-23 16:57             ` Catalin Marinas
2019-05-23 16:57             ` Catalin Marinas
2019-05-23 16:57             ` catalin.marinas
2019-05-23 16:57             ` Catalin Marinas
2019-05-24 14:23             ` Dave Martin
2019-05-24 14:23               ` Dave Martin
2019-05-24 14:23               ` Dave Martin
2019-05-24 14:23               ` Dave.Martin
2019-05-24 14:23               ` Dave Martin

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='CAJgzZooRCx5MFL8dWuG8VaV=esYBADji7-L49fMeQa6niieWnw@mail.gmail.com' \
    --to=enh@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=andreyknvl@google.com \
    --cc=catalin.marinas@arm.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=eugenis@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=keescook@chromium.org \
    --cc=khalid.aziz@oracle.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=vincenzo.frascino@arm.com \
    --cc=will.deacon@arm.com \
    --cc=yishaih@mellanox.co \
    /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.