linux-stable/arch/sparc/mm
Will Deacon 8e958839e4 sparc32: mm: Restructure sparc32 MMU page-table layout
The "SRMMU" supports 4k pages using a fixed three-level walk with a
256-entry PGD and 64-entry PMD/PTE levels. In order to fill a page
with a 'pgtable_t', the SRMMU code allocates four native PTE tables
into a single PTE allocation and similarly for the PMD level, leading
to an array of 16 physical pointers in a 'pmd_t'

This breaks the generic code which assumes READ_ONCE(*pmd) will be
word sized.

In a manner similar to ef22d8abd8 ("m68k: mm: Restructure Motorola
MMU page-table layout"), this patch implements the native page-table
setup directly. This significantly increases the page-table memory
overhead, but will be addresses in a subsequent patch.

Cc: "David S. Miller" <davem@davemloft.net>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-05-13 15:32:00 -07:00
..
extable.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fault_32.c mm: allow VM_FAULT_RETRY for multiple times 2020-04-02 09:35:30 -07:00
fault_64.c mm: allow VM_FAULT_RETRY for multiple times 2020-04-02 09:35:30 -07:00
highmem.c sparc32: use pgtable-nopud instead of 4level-fixup 2019-12-04 19:44:15 -08:00
hugetlbpage.c sparc64: add support for folded p4d page tables 2020-01-30 11:14:28 +01:00
hypersparc.S sparc32: mm: Restructure sparc32 MMU page-table layout 2020-05-13 15:32:00 -07:00
init_32.c mm: remove quicklist page table caches 2019-09-24 15:54:09 -07:00
init_64.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2020-01-30 07:36:43 -08:00
init_64.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
io-unit.c sparc32: use per-device dma_ops 2020-04-02 18:11:55 -07:00
iommu.c sparc32: use per-device dma_ops 2020-04-02 18:11:55 -07:00
leon_mm.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile sparc64: use the generic get_user_pages_fast code 2019-07-12 11:05:44 -07:00
mm_32.h sparc32: use per-device dma_ops 2020-04-02 18:11:55 -07:00
srmmu.c sparc32: mm: Restructure sparc32 MMU page-table layout 2020-05-13 15:32:00 -07:00
srmmu_access.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
swift.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tlb.c mm: fix races between swapoff and flush dcache 2018-04-05 21:36:26 -07:00
tsb.c sparc64: Add support for ADI (Application Data Integrity) 2018-03-18 07:38:48 -07:00
tsunami.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ultra.S sparc64: Fix regression in non-hypervisor TLB flush xcall 2019-06-02 22:13:40 -07:00
viking.S sparc32: mm: Restructure sparc32 MMU page-table layout 2020-05-13 15:32:00 -07:00