Re: [PATCH v2 1/1] s390/mm: Fix handling of _PAGE_UNUSED pte bit
From: Heiko Carstens
Date: Tue Jun 16 2026 - 07:07:02 EST
On Mon, Jun 15, 2026 at 02:09:39PM +0200, Gerald Schaefer wrote:
> On Mon, 15 Jun 2026 13:50:00 +0200
> Heiko Carstens <hca@xxxxxxxxxxxxx> wrote:
> > > set_pte() is also used for things that are not ptes, and in those cases
> > > we probably don't want to touch that bit, although technically it is
> > > currently unused for present large pmds and puds.
> >
> > I can only see huge_pte_clear() for this.
> >
> > If that's the only user I'd rather add a BUG_ON() there instead of starting to
> > sprinkle the logic around. This _will_ break sooner or later.
>
> There is also __set_huge_pte_at(), and there it could also be called for
> swap PMDs/PUDs, where bit 56 is used. But they would not be present, and
> ATM we use the same present bit for PTEs and PMDs/PUDs, so it should work.
>
> Still feels a bit shaky, but in general I agree that it would be better
> to have this logic in a single place, like set_pte().
Yes, let's do that please.
> Also wonder now why we use set_pte() an not set_pmd() / set_pud() for the
> hugetlbfs "fake" PTEs. I think at least in s390 code we could switch to
> the pmd/pud variants, and then be safe against modifications from set_pte().
I guess that would be nice cleanup. Could you provide a patch for
that, please?