lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240305043750.93762-1-peterx@redhat.com>
Date: Tue,  5 Mar 2024 12:37:40 +0800
From: peterx@...hat.com
To: linux-mm@...ck.org,
	linux-kernel@...r.kernel.org
Cc: Christophe Leroy <christophe.leroy@...roup.eu>,
	x86@...nel.org,
	"Kirill A . Shutemov" <kirill@...temov.name>,
	Jason Gunthorpe <jgg@...dia.com>,
	Yang Shi <shy828301@...il.com>,
	peterx@...hat.com,
	Andrew Morton <akpm@...ux-foundation.org>,
	linuxppc-dev@...ts.ozlabs.org,
	Muchun Song <muchun.song@...ux.dev>
Subject: [PATCH v3 00/10] mm/treewide: Replace pXd_large() with pXd_leaf()

From: Peter Xu <peterx@...hat.com>

[based on latest akpm/mm-unstable, commit b38c34939fe4]

v3:
- Added three patches
  - mm/treewide: Align up pXd_leaf() retval across archs
    Per request from Jason to further cleanup the retvals
  - mm/kasan: Use pXd_leaf() in shadow_mapped()
    Something I spot when saw a pXd_large() comment block, put it as a
    separate patch to cleanup.
  - mm/x86: Replace pgd_large() with pgd_leaf()
    Overlooked we even have pgd_leaf() defined for x86, added one more
    patch for it.  Now I'm pretty sure p?d_large() all gone for good.
- Collected R-bs / A-bs

v2: https://lore.kernel.org/r/20240229084258.599774-1-peterx@redhat.com
v1: https://lore.kernel.org/r/20240228085350.520953-1-peterx@redhat.com

These two APIs are mostly always the same.  It's confusing to have both of
them.  Merge them into one.  Here I used pXd_leaf() only because pXd_leaf()
is a global API which is always defined, while pXd_large() is not.

We have yet one more API that is similar which is pXd_huge(), but that's
even trickier, so let's do it step by step.

Some special cares are taken for ppc and x86, they're done as separate
cleanups first.  Only lightly tested on x86.

Please have a look, thanks.

Peter Xu (10):
  mm/ppc: Define pXd_large() with pXd_leaf()
  mm/ppc: Replace pXd_is_leaf() with pXd_leaf()
  mm/x86: Replace p4d_large() with p4d_leaf()
  mm/x86: Replace pgd_large() with pgd_leaf()
  mm/x86: Drop two unnecessary pud_leaf() definitions
  mm/kasan: Use pXd_leaf() in shadow_mapped()
  mm/treewide: Replace pmd_large() with pmd_leaf()
  mm/treewide: Replace pud_large() with pud_leaf()
  mm/treewide: Drop pXd_large()
  mm/treewide: Align up pXd_leaf() retval across archs

 arch/arm/include/asm/pgtable-2level.h        |  1 -
 arch/arm/include/asm/pgtable-3level.h        |  1 -
 arch/arm/mm/dump.c                           |  4 +--
 arch/loongarch/kvm/mmu.c                     |  2 +-
 arch/powerpc/include/asm/book3s/64/pgtable.h | 26 ++++--------------
 arch/powerpc/include/asm/pgtable.h           | 28 --------------------
 arch/powerpc/kvm/book3s_64_mmu_radix.c       | 12 ++++-----
 arch/powerpc/mm/book3s64/pgtable.c           |  4 +--
 arch/powerpc/mm/book3s64/radix_pgtable.c     | 16 +++++------
 arch/powerpc/mm/pgtable.c                    |  6 ++---
 arch/powerpc/mm/pgtable_64.c                 |  8 +++---
 arch/powerpc/xmon/xmon.c                     |  6 ++---
 arch/riscv/include/asm/pgtable-64.h          |  2 +-
 arch/riscv/include/asm/pgtable.h             |  2 +-
 arch/s390/boot/vmem.c                        |  4 +--
 arch/s390/include/asm/pgtable.h              | 20 +++++++-------
 arch/s390/mm/gmap.c                          | 14 +++++-----
 arch/s390/mm/hugetlbpage.c                   |  6 ++---
 arch/s390/mm/pageattr.c                      |  4 +--
 arch/s390/mm/pgtable.c                       |  8 +++---
 arch/s390/mm/vmem.c                          | 12 ++++-----
 arch/sparc/include/asm/pgtable_64.h          |  8 +++---
 arch/sparc/mm/init_64.c                      |  6 ++---
 arch/x86/boot/compressed/ident_map_64.c      |  2 +-
 arch/x86/include/asm/pgtable.h               | 24 +++++++----------
 arch/x86/kvm/mmu/mmu.c                       |  6 ++---
 arch/x86/mm/fault.c                          | 16 +++++------
 arch/x86/mm/ident_map.c                      |  2 +-
 arch/x86/mm/init_32.c                        |  2 +-
 arch/x86/mm/init_64.c                        | 14 +++++-----
 arch/x86/mm/kasan_init_64.c                  |  4 +--
 arch/x86/mm/mem_encrypt_identity.c           |  6 ++---
 arch/x86/mm/pat/set_memory.c                 | 14 +++++-----
 arch/x86/mm/pgtable.c                        |  4 +--
 arch/x86/mm/pti.c                            | 10 +++----
 arch/x86/power/hibernate.c                   |  6 ++---
 arch/x86/xen/mmu_pv.c                        | 10 +++----
 drivers/misc/sgi-gru/grufault.c              |  2 +-
 include/asm-generic/pgtable-nopmd.h          |  1 -
 include/linux/pgtable.h                      |  8 +++---
 mm/kasan/shadow.c                            | 11 ++------
 41 files changed, 141 insertions(+), 201 deletions(-)

-- 
2.44.0


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ