From: Jason Gunthorpe <jgg@nvidia.com>
To: "Gregory Price (Meta)" <gourry@gourry.net>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
kernel-team@meta.com, leon@kernel.org, akpm@linux-foundation.org,
david@kernel.org, kas@kernel.org, dave.hansen@linux.intel.com,
bp@alien8.de, rppt@kernel.org, stable@vger.kernel.org,
"Lorenzo Stoakes (ARM)" <ljs@kernel.org>
Subject: Re: [PATCH] mm/hmm: reject shadow-stack mappings
Date: Fri, 13 Nov 2026 20:20:27 -0400 [thread overview]
Message-ID: <20261114002027.GE3706007@nvidia.com> (raw)
In-Reply-To: <179460249376.482102.14669935557901467762.b4-reply@b4>
On Fri, Nov 13, 2026 at 03:41:33PM -0500, Gregory Price (Meta) wrote:
> On 2026-11-13 16:03 -0400, Jason Gunthorpe wrote:
> > On Fri, Nov 13, 2026 at 02:55:36PM -0500, Gregory Price (Meta) wrote:
> > > HMM can grant ordinary device write access to a userspace shadow stack.
> > > On x86, pte_write() is true for a shadow-stack PTE, so a populated page
> > > can be returned with HMM_PFN_WRITE without taking a CPU write fault.
> >
> > I'm not sure I understand this? The pte is writable but you don't want
> > only DMA to write to it?
> >
> > Is there something special on x86 that makes the shadow stack pte
> > non-writable by the CPU?
> >
>
> Some of the context is here:
> https://lore.kernel.org/all/20261111-mason-migrate-et-al-fixes-v1-10-3d2454362e8d@kernel.org/
>
> We had a similar issue with migration, but this should handle the DMA
> case as well.
>
> It's "technically writable" but the kernel is supposed to prevent that.
Bah, it's not writable at all. The CPU PTE has write disabled and
someone thought it was a good idea to make pte_write() return true
because the CPU allows writes through a special instruction on this
special PTE? So now all the places like this think its writable, when
it really isn't.
You could also fix this by having something like pte_real_write() or
whatever that doesn't lie about the write bit in the PTE :|
The patch is still fine, in that it matches what everything else does,
but I'd include these details someplace..
Jason
next prev parent reply other threads:[~2026-11-14 0:20 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-13 19:55 [PATCH] mm/hmm: reject shadow-stack mappings Gregory Price (Meta)
2026-11-13 19:57 ` Lorenzo Stoakes (ARM)
2026-11-13 20:15 ` Gregory Price (Meta)
2026-11-13 20:03 ` David Hildenbrand (Arm)
2026-11-13 20:42 ` Gregory Price (Meta)
2026-11-13 21:19 ` David Hildenbrand (Arm)
2026-11-13 20:03 ` Jason Gunthorpe
2026-11-13 20:41 ` Gregory Price (Meta)
2026-11-14 0:20 ` Jason Gunthorpe [this message]
2026-11-14 2:10 ` Andrew Morton
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=20261114002027.GE3706007@nvidia.com \
--to=jgg@nvidia.com \
--cc=akpm@linux-foundation.org \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=david@kernel.org \
--cc=gourry@gourry.net \
--cc=kas@kernel.org \
--cc=kernel-team@meta.com \
--cc=leon@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ljs@kernel.org \
--cc=rppt@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.