• Peter Xu's avatar
    mm/arm64: support large pfn mappings · 3e509c9b
    Peter Xu authored
    Support huge pfnmaps by using bit 56 (PTE_SPECIAL) for "special" on
    pmds/puds.  Provide the pmd/pud helpers to set/get special bit.
    
    There's one more thing missing for arm64 which is the pxx_pgprot() for
    pmd/pud.  Add them too, which is mostly the same as the pte version by
    dropping the pfn field.  These helpers are essential to be used in the new
    follow_pfnmap*() API to report valid pgprot_t results.
    
    Note that arm64 doesn't yet support huge PUD yet, but it's still
    straightforward to provide the pud helpers that we need altogether.  Only
    PMD helpers will make an immediate benefit until arm64 will support huge
    PUDs first in general (e.g.  in THPs).
    
    Link: https://lkml.kernel.org/r/20240826204353.2228736-19-peterx@redhat.comSigned-off-by: default avatarPeter Xu <peterx@redhat.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: Alexander Gordeev <agordeev@linux.ibm.com>
    Cc: Alex Williamson <alex.williamson@redhat.com>
    Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Christian Borntraeger <borntraeger@linux.ibm.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Gavin Shan <gshan@redhat.com>
    Cc: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
    Cc: Heiko Carstens <hca@linux.ibm.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jason Gunthorpe <jgg@nvidia.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Niklas Schnelle <schnelle@linux.ibm.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Ryan Roberts <ryan.roberts@arm.com>
    Cc: Sean Christopherson <seanjc@google.com>
    Cc: Sven Schnelle <svens@linux.ibm.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Cc: Zi Yan <ziy@nvidia.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    3e509c9b
Kconfig 82.4 KB