linux/arch/x86/include/asm
Mike Rapoport 974b9b2c68 mm: consolidate pte_index() and pte_offset_*() definitions
All architectures define pte_index() as

	(address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)

and all architectures define pte_offset_kernel() as an entry in the array
of PTEs indexed by the pte_index().

For the most architectures the pte_offset_kernel() implementation relies
on the availability of pmd_page_vaddr() that converts a PMD entry value to
the virtual address of the page containing PTEs array.

Let's move x86 definitions of the PTE accessors to the generic place in
<linux/pgtable.h> and then simply drop the respective definitions from the
other architectures.

The architectures that didn't provide pmd_page_vaddr() are updated to have
that defined.

The generic implementation of pte_offset_kernel() can be overridden by an
architecture and alpha makes use of this because it has special ordering
requirements for its version of pte_offset_kernel().

[rppt@linux.ibm.com: v2]
  Link: http://lkml.kernel.org/r/20200514170327.31389-11-rppt@kernel.org
[rppt@linux.ibm.com: update]
  Link: http://lkml.kernel.org/r/20200514170327.31389-12-rppt@kernel.org
[rppt@linux.ibm.com: update]
  Link: http://lkml.kernel.org/r/20200514170327.31389-13-rppt@kernel.org
[akpm@linux-foundation.org: fix x86 warning]
[sfr@canb.auug.org.au: fix powerpc build]
  Link: http://lkml.kernel.org/r/20200607153443.GB738695@linux.ibm.com

Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Cain <bcain@codeaurora.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Chris Zankel <chris@zankel.net>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Greentime Hu <green.hu@gmail.com>
Cc: Greg Ungerer <gerg@linux-m68k.org>
Cc: Guan Xuetao <gxt@pku.edu.cn>
Cc: Guo Ren <guoren@kernel.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Ley Foon Tan <ley.foon.tan@intel.com>
Cc: Mark Salter <msalter@redhat.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Matt Turner <mattst88@gmail.com>
Cc: Max Filippov <jcmvbkbc@gmail.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Nick Hu <nickhu@andestech.com>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Richard Weinberger <richard@nod.at>
Cc: Rich Felker <dalias@libc.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Stafford Horne <shorne@gmail.com>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Vincent Chen <deanbo422@gmail.com>
Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: Will Deacon <will@kernel.org>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Link: http://lkml.kernel.org/r/20200514170327.31389-10-rppt@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-06-09 09:39:14 -07:00
..
crypto
e820
fpu x86/fpu: Introduce copy_supervisor_to_kernel() 2020-05-16 11:24:14 +02:00
numachip
trace
uv Misc changes: 2020-06-05 11:18:53 -07:00
vdso
xen mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
acenv.h
acpi.h
acrn.h
agp.h mm: introduce include/linux/pgtable.h 2020-06-09 09:39:13 -07:00
alternative-asm.h
alternative.h
amd_nb.h
apb_timer.h x86/apb_timer: Drop unused declaration and macro 2020-05-27 13:12:49 +02:00
apic.h
apicdef.h
apm.h
arch_hweight.h
archrandom.h x86/cpu: Use RDRAND and RDSEED mnemonics in archrandom.h 2020-05-18 19:50:47 +02:00
asm-offsets.h
asm-prototypes.h mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
asm.h
atomic.h
atomic64_32.h
atomic64_64.h
audit.h x86/audit: Fix a -Wmissing-prototypes warning for ia32_classify_syscall() 2020-05-19 18:03:07 +02:00
barrier.h
bios_ebda.h
bitops.h x86: bitops: fix build regression 2020-05-23 10:26:31 -07:00
boot.h
bootparam_utils.h
bug.h
bugs.h
cache.h
cacheflush.h asm-generic: don't include <linux/mm.h> in cacheflush.h 2020-06-08 11:05:57 -07:00
cacheinfo.h
ce4100.h
checksum.h x86: switch 32bit csum_and_copy_to_user() to user_access_{begin,end}() 2020-05-29 16:11:48 -04:00
checksum_32.h x86: switch 32bit csum_and_copy_to_user() to user_access_{begin,end}() 2020-05-29 16:11:48 -04:00
checksum_64.h x86: switch 32bit csum_and_copy_to_user() to user_access_{begin,end}() 2020-05-29 16:11:48 -04:00
clocksource.h
cmdline.h
cmpxchg.h
cmpxchg_32.h
cmpxchg_64.h
compat.h
cpu.h
cpu_device_id.h
cpu_entry_area.h
cpufeature.h
cpufeatures.h
cpuidle_haltpoll.h
cpumask.h
crash.h
current.h
debugreg.h
delay.h
desc.h
desc_defs.h
device.h x86: Hide the archdata.iommu field behind generic IOMMU_API 2020-05-27 16:44:05 +02:00
disabled-features.h
div64.h
dma-mapping.h
dma.h x86/dma: Fix max PFN arithmetic overflow on 32 bit systems 2020-05-28 20:21:32 +02:00
dmi.h
doublefault.h
dwarf2.h
edac.h
efi.h mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
elf.h
emergency-restart.h
emulate_prefix.h
entry_arch.h
espfix.h
exec.h
extable.h
fb.h
fixmap.h kmap: consolidate kmap_prot definitions 2020-06-04 19:06:22 -07:00
floppy.h
frame.h
fsgsbase.h
ftrace.h
futex.h
gart.h
GEN-for-each-reg.h
genapic.h
geode.h
hardirq.h
highmem.h arch/kmap: define kmap_atomic_prot() for all arch's 2020-06-04 19:06:22 -07:00
hpet.h
hugetlb.h mm/hugetlb: define a generic fallback for arch_clear_hugepage_flags() 2020-06-03 20:09:46 -07:00
hw_breakpoint.h
hw_irq.h
hyperv-tlfs.h ARM: 2020-06-03 15:13:47 -07:00
hypervisor.h
i8259.h
ia32.h
ia32_unistd.h
imr.h
inat.h
inat_types.h
init.h
insn-eval.h
insn.h
inst.h
intel-family.h
intel-mid.h
intel_ds.h
intel_mid_vrtc.h
intel_pconfig.h
intel_pt.h
intel_punit_ipc.h
intel_scu_ipc.h
intel_scu_ipc_legacy.h
intel_telemetry.h
invpcid.h
io.h
io_apic.h
io_bitmap.h x86/ioperm: Prevent a memory leak when fork fails 2020-05-28 21:36:20 +02:00
iomap.h mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
iommu.h
iommu_table.h
iosf_mbi.h
irq.h
irq_regs.h
irq_remapping.h
irq_vectors.h
irq_work.h
irqdomain.h
irqflags.h
ist.h
jailhouse_para.h
jump_label.h
kasan.h
kaslr.h x86/mm: simplify init_trampoline() and surrounding logic 2020-06-09 09:39:13 -07:00
kbdleds.h
Kbuild
kdebug.h
kexec-bzimage64.h
kexec.h
kgdb.h
kmap_types.h
kprobes.h
kvm_host.h ARM: 2020-06-03 15:13:47 -07:00
kvm_page_track.h
kvm_para.h KVM: x86: extend struct kvm_vcpu_pv_apf_data with token info 2020-06-01 04:26:06 -04:00
kvm_vcpu_regs.h
kvmclock.h
linkage.h
livepatch.h
local.h
local64.h
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h
mce.h
mcsafe_test.h
mem_encrypt.h
memtype.h
microcode.h
microcode_amd.h
microcode_intel.h
misc.h
mmconfig.h
mmu.h x86/mpx: remove MPX from arch/x86 2020-01-23 10:41:20 -08:00
mmu_context.h
mmx.h
mmzone.h
mmzone_32.h x86/mm: Drop deprecated DISCONTIGMEM support for 32-bit 2020-05-28 18:34:30 +02:00
mmzone_64.h
module.h
mpspec.h
mpspec_def.h
mshyperv.h
msi.h
msidef.h
msr-index.h perf/x86/rapl: Add AMD Fam17h RAPL support 2020-05-28 07:58:56 +02:00
msr-trace.h
msr.h
mtrr.h
mwait.h
nmi.h
nops.h
nospec-branch.h
numa.h
numa_32.h
olpc.h
olpc_ofw.h
orc_lookup.h
orc_types.h
page.h
page_32.h
page_32_types.h
page_64.h
page_64_types.h
page_types.h
paravirt.h
paravirt_types.h
parport.h
pci-direct.h
pci-functions.h
pci.h
pci_x86.h
percpu.h
perf_event.h
perf_event_p4.h
pgalloc.h
pgtable-2level.h
pgtable-2level_types.h x86/mm/32: implement arch_sync_kernel_mappings() 2020-06-02 10:59:11 -07:00
pgtable-3level.h
pgtable-3level_types.h x86/mm/32: implement arch_sync_kernel_mappings() 2020-06-02 10:59:11 -07:00
pgtable-invert.h
pgtable.h mm: consolidate pte_index() and pte_offset_*() definitions 2020-06-09 09:39:14 -07:00
pgtable_32.h mm: consolidate pte_index() and pte_offset_*() definitions 2020-06-09 09:39:14 -07:00
pgtable_32_areas.h
pgtable_32_types.h
pgtable_64.h mm: consolidate pte_index() and pte_offset_*() definitions 2020-06-09 09:39:14 -07:00
pgtable_64_types.h x86/mm/64: implement arch_sync_kernel_mappings() 2020-06-02 10:59:11 -07:00
pgtable_areas.h
pgtable_types.h Misc changes: 2020-06-05 11:18:53 -07:00
pkeys.h
platform_sst_audio.h
pm-trace.h
posix_types.h
preempt.h
probe_roms.h
processor-cyrix.h
processor-flags.h
processor.h There are a lot of objtool changes in this cycle, all across the map: 2020-06-01 13:13:00 -07:00
prom.h
proto.h
pti.h
ptrace.h
purgatory.h
pvclock-abi.h
pvclock.h
qrwlock.h
qspinlock.h
qspinlock_paravirt.h
realmode.h
reboot.h
reboot_fixups.h
required-features.h
resctrl.h
rmwcc.h
seccomp.h
sections.h
segment.h
serial.h
set_memory.h
setup.h x86/mm: simplify init_trampoline() and surrounding logic 2020-06-09 09:39:13 -07:00
setup_arch.h
shmparam.h
sigcontext.h
sigframe.h
sighandling.h
signal.h
simd.h
smap.h
smp.h
sparsemem.h
spec-ctrl.h
special_insns.h
spinlock.h
spinlock_types.h x86/spinlock: Remove obsolete ticket spinlock macros and types 2020-05-28 21:18:40 +02:00
sta2x11.h
stackprotector.h
stacktrace.h x86: add missing const qualifiers for log_lvl 2020-06-09 09:39:12 -07:00
string.h
string_32.h
string_64.h
suspend.h
suspend_32.h
suspend_64.h
svm.h KVM: nSVM: remove trailing padding for struct vmcb_control_area 2020-06-01 04:25:59 -04:00
swiotlb.h
switch_to.h x86/mm: remove vmalloc faulting 2020-06-02 10:59:12 -07:00
sync_bitops.h
sync_core.h
syscall.h
syscall_wrapper.h
syscalls.h
sysfb.h
text-patching.h
thread_info.h
time.h
timer.h
timex.h
tlb.h
tlbbatch.h
tlbflush.h
topology.h
trace_clock.h
traps.h arm64 updates for 5.8 2020-06-01 15:18:27 -07:00
tsc.h
uaccess.h
uaccess_32.h
uaccess_64.h
umip.h
unaligned.h
unistd.h
unwind.h
unwind_hints.h
uprobes.h
user.h
user32.h
user_32.h
user_64.h
vdso.h
vermagic.h
vga.h
vgtod.h
virtext.h
vm86.h
vmalloc.h
vmware.h
vmx.h
vmxfeatures.h
vsyscall.h
vvar.h
word-at-a-time.h
x86_init.h x86/kvm: Handle async page faults directly through do_page_fault() 2020-05-19 15:53:57 +02:00
xor.h
xor_32.h
xor_64.h
xor_avx.h