Re: [PATCH 04/12] m68k: nommu: use pgtable-nopud instead of 4level-fixup

From: Greg Ungerer
Date: Thu Oct 24 2019 - 00:09:12 EST


Hi Mike,

On 23/10/19 7:28 pm, Mike Rapoport wrote:
From: Mike Rapoport <rppt@xxxxxxxxxxxxx>

The generic nommu implementation of page table manipulation takes care of
folding of the upper levels and does not require fixups.

Simply replace of include/asm-generic/4level-fixup.h with
include/asm-generic/pgtable-nopud.h.

Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxx>
---
arch/m68k/include/asm/pgtable_no.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/m68k/include/asm/pgtable_no.h b/arch/m68k/include/asm/pgtable_no.h
index c18165b..ccc4568 100644
--- a/arch/m68k/include/asm/pgtable_no.h
+++ b/arch/m68k/include/asm/pgtable_no.h
@@ -2,7 +2,7 @@
#ifndef _M68KNOMMU_PGTABLE_H
#define _M68KNOMMU_PGTABLE_H
-#include <asm-generic/4level-fixup.h>
+#include <asm-generic/pgtable-nopud.h>
/*
* (C) Copyright 2000-2002, Greg Ungerer <gerg@xxxxxxxxxxxx>

This fails to compile for me (targeting m5208evb_defconfig):

CC init/main.o
In file included from ./arch/m68k/include/asm/pgtable_no.h:56:0,
from ./arch/m68k/include/asm/pgtable.h:3,
from ./include/linux/mm.h:99,
from ./include/linux/ring_buffer.h:5,
from ./include/linux/trace_events.h:6,
from ./include/trace/syscall.h:7,
from ./include/linux/syscalls.h:85,
from init/main.c:21:
./include/asm-generic/pgtable.h:738:34: error: unknown type name âpmd_tâ
static inline int pmd_soft_dirty(pmd_t pmd)
^
./include/asm-generic/pgtable.h:748:15: error: unknown type name âpmd_tâ
static inline pmd_t pmd_mksoft_dirty(pmd_t pmd)
^
./include/asm-generic/pgtable.h:748:38: error: unknown type name âpmd_tâ
static inline pmd_t pmd_mksoft_dirty(pmd_t pmd)
^
./include/asm-generic/pgtable.h:758:15: error: unknown type name âpmd_tâ
static inline pmd_t pmd_clear_soft_dirty(pmd_t pmd)
^
./include/asm-generic/pgtable.h:758:42: error: unknown type name âpmd_tâ
static inline pmd_t pmd_clear_soft_dirty(pmd_t pmd)
^
./include/asm-generic/pgtable.h:778:15: error: unknown type name âpmd_tâ
static inline pmd_t pmd_swp_mksoft_dirty(pmd_t pmd)
^
./include/asm-generic/pgtable.h:778:42: error: unknown type name âpmd_tâ
static inline pmd_t pmd_swp_mksoft_dirty(pmd_t pmd)
^
./include/asm-generic/pgtable.h:783:38: error: unknown type name âpmd_tâ
static inline int pmd_swp_soft_dirty(pmd_t pmd)
^
./include/asm-generic/pgtable.h:788:15: error: unknown type name âpmd_tâ
static inline pmd_t pmd_swp_clear_soft_dirty(pmd_t pmd)
^
./include/asm-generic/pgtable.h:788:46: error: unknown type name âpmd_tâ
static inline pmd_t pmd_swp_clear_soft_dirty(pmd_t pmd)
^
./include/asm-generic/pgtable.h:1071:32: error: unknown type name âpmd_tâ
static inline int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
^
./include/asm-generic/pgtable.h:1083:34: error: unknown type name âpmd_tâ
static inline int pmd_clear_huge(pmd_t *pmd)
^
./include/asm-generic/pgtable.h:1095:37: error: unknown type name âpmd_tâ
static inline int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
^
In file included from ./include/linux/ring_buffer.h:5:0,
from ./include/linux/trace_events.h:6,
from ./include/trace/syscall.h:7,
from ./include/linux/syscalls.h:85,
from init/main.c:21:
./include/linux/mm.h:423:2: error: unknown type name âpmd_tâ
pmd_t *pmd; /* Pointer to pmd entry matching
^
./include/linux/mm.h:568:30: error: unknown type name âpmd_tâ
static inline int pmd_devmap(pmd_t pmd)
^
In file included from ./include/linux/mm.h:587:0,
from ./include/linux/ring_buffer.h:5,
from ./include/linux/trace_events.h:6,
from ./include/trace/syscall.h:7,
from ./include/linux/syscalls.h:85,
from init/main.c:21:
./include/linux/huge_mm.h:12:5: error: unknown type name âpmd_tâ
pmd_t *dst_pmd, pmd_t *src_pmd, unsigned long addr,
^
./include/linux/huge_mm.h:12:21: error: unknown type name âpmd_tâ
pmd_t *dst_pmd, pmd_t *src_pmd, unsigned long addr,
^
./include/linux/huge_mm.h:14:57: error: unknown type name âpmd_tâ
extern void huge_pmd_set_accessed(struct vm_fault *vmf, pmd_t orig_pmd);
^
./include/linux/huge_mm.h:27:61: error: unknown type name âpmd_tâ
extern vm_fault_t do_huge_pmd_wp_page(struct vm_fault *vmf, pmd_t orig_pmd);
^
./include/linux/huge_mm.h:30:8: error: unknown type name âpmd_tâ
pmd_t *pmd,
^
./include/linux/huge_mm.h:34:4: error: unknown type name âpmd_tâ
pmd_t *pmd, unsigned long addr, unsigned long next);
^
./include/linux/huge_mm.h:37:4: error: unknown type name âpmd_tâ
pmd_t *pmd, unsigned long addr);
^
./include/linux/huge_mm.h:41:57: error: unknown type name âpmd_tâ
extern int mincore_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd,
^
./include/linux/huge_mm.h:46:5: error: unknown type name âpmd_tâ
pmd_t *old_pmd, pmd_t *new_pmd);
^
./include/linux/huge_mm.h:46:21: error: unknown type name âpmd_tâ
pmd_t *old_pmd, pmd_t *new_pmd);
^
./include/linux/huge_mm.h:47:56: error: unknown type name âpmd_tâ
extern int change_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd,
^
./include/linux/huge_mm.h:336:65: error: unknown type name âpmd_tâ
static inline void __split_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd,
^
./include/linux/huge_mm.h:356:31: error: unknown type name âpmd_tâ
static inline int is_swap_pmd(pmd_t pmd)
^
./include/linux/huge_mm.h:360:47: error: unknown type name âpmd_tâ
static inline spinlock_t *pmd_trans_huge_lock(pmd_t *pmd,
^
./include/linux/huge_mm.h:372:3: error: unknown type name âpmd_tâ
pmd_t orig_pmd)
^
./include/linux/huge_mm.h:393:22: error: unknown type name âpmd_tâ
unsigned long addr, pmd_t *pmd, int flags, struct dev_pagemap **pgmap)
^
In file included from ./include/linux/ring_buffer.h:5:0,
from ./include/linux/trace_events.h:6,
from ./include/trace/syscall.h:7,
from ./include/linux/syscalls.h:85,
from init/main.c:21:
./include/linux/mm.h:1447:5: error: unknown type name âpmd_tâ
pmd_t pmd);
^
./include/linux/mm.h:1464:21: error: unknown type name âpmd_tâ
pte_t **ptepp, pmd_t **pmdpp, spinlock_t **ptlp);
^
./include/linux/mm.h:1850:39: error: unknown type name âpmd_tâ
int __pte_alloc(struct mm_struct *mm, pmd_t *pmd);
^
./include/linux/mm.h:1851:24: error: unknown type name âpmd_tâ
int __pte_alloc_kernel(pmd_t *pmd);
^
./include/linux/mm.h:1937:61: error: unknown type name âpmd_tâ
static inline spinlock_t *pte_lockptr(struct mm_struct *mm, pmd_t *pmd)
^
./include/linux/mm.h:2028:61: error: unknown type name âpmd_tâ
static inline spinlock_t *pmd_lockptr(struct mm_struct *mm, pmd_t *pmd)
^
./include/linux/mm.h:2040:58: error: unknown type name âpmd_tâ
static inline spinlock_t *pmd_lock(struct mm_struct *mm, pmd_t *pmd)
^
In file included from ./include/linux/ring_buffer.h:5:0,
from ./include/linux/trace_events.h:6,
from ./include/trace/syscall.h:7,
from ./include/linux/syscalls.h:85,
from init/main.c:21:
./include/linux/mm.h:2755:1: error: unknown type name âpmd_tâ
pmd_t *vmemmap_pmd_populate(pud_t *pud, unsigned long addr, int node);
^
./include/linux/mm.h:2756:29: error: unknown type name âpmd_tâ
pte_t *vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, int node);
^
scripts/Makefile.build:265: recipe for target 'init/main.o' failed
make[1]: *** [init/main.o] Error 1
Makefile:1649: recipe for target 'init' failed
make: *** [init] Error 2

Regards
Greg