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
Mike Rapoport
e19f97ed67
um: add support for folded p4d page tables
...
The UML port uses 4 and 5 level fixups to support higher level page
table directories in the generic VM code.
Implement primitives necessary for the 4th level folding, add walks of
p4d level where appropriate and drop usage of __ARCH_USE_5LEVEL_HACK.
Link: http://lkml.kernel.org/r/1572938135-31886-13-git-send-email-rppt@kernel.org
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com >
Cc: Anatoly Pugachev <matorola@gmail.com >
Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com >
Cc: Arnd Bergmann <arnd@arndb.de >
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: Helge Deller <deller@gmx.de >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: "Kirill A. Shutemov" <kirill@shutemov.name >
Cc: Mark Salter <msalter@redhat.com >
Cc: Matt Turner <mattst88@gmail.com >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Peter Rosin <peda@axentia.se >
Cc: Richard Weinberger <richard@nod.at >
Cc: Rolf Eike Beer <eike-kernel@sf-tec.de >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Russell King <rmk+kernel@armlinux.org.uk >
Cc: Sam Creasey <sammy@sammy.net >
Cc: Vincent Chen <deanbo422@gmail.com >
Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2019-12-04 19:44:15 -08:00
Alex Dewar
f2f4bf5aab
um: Add SPDX headers for files in arch/um/include
...
Convert files to use SPDX header. All files are licensed under the GPLv2.
Signed-off-by: Alex Dewar <alex.dewar@gmx.co.uk >
Signed-off-by: Richard Weinberger <richard@nod.at >
2019-09-15 21:37:17 +02:00
Kirill A. Shutemov
9849a5697d
arch, mm: convert all architectures to use 5level-fixup.h
...
If an architecture uses 4level-fixup.h we don't need to do anything as
it includes 5level-fixup.h.
If an architecture uses pgtable-nop*d.h, define __ARCH_USE_5LEVEL_HACK
before inclusion of the header. It makes asm-generic code to use
5level-fixup.h.
If an architecture has 4-level paging or folds levels on its own,
include 5level-fixup.h directly.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Acked-by: Michal Hocko <mhocko@suse.com >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2017-03-09 11:48:47 -08:00
Dan Williams
16da306849
um: kill pfn_t
...
The core has developed a need for a "pfn_t" type [1]. Convert the usage
of pfn_t by usermode-linux to an unsigned long, and update pfn_to_phys()
to drop its expectation of a typed pfn.
[1]: https://lists.01.org/pipermail/linux-nvdimm/2015-September/002199.html
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Richard Weinberger <richard@nod.at >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2016-01-15 17:56:32 -08:00
Kirill A. Shutemov
d016bf7ece
mm: make FIRST_USER_ADDRESS unsigned long on all archs
...
LKP has triggered a compiler warning after my recent patch "mm: account
pmd page tables to the process":
mm/mmap.c: In function 'exit_mmap':
>> mm/mmap.c:2857:2: warning: right shift count >= width of type [enabled by default]
The code:
> 2857 WARN_ON(mm_nr_pmds(mm) >
2858 round_up(FIRST_USER_ADDRESS, PUD_SIZE) >> PUD_SHIFT);
In this, on tile, we have FIRST_USER_ADDRESS defined as 0. round_up() has
the same type -- int. PUD_SHIFT.
I think the best way to fix it is to define FIRST_USER_ADDRESS as unsigned
long. On every arch for consistency.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Reported-by: Wu Fengguang <fengguang.wu@intel.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2015-02-11 17:06:03 -08:00
Kirill A. Shutemov
3513006a56
um: drop _PAGE_FILE and pte_file()-related helpers
...
We've replaced remap_file_pages(2) implementation with emulation. Nobody
creates non-linear mapping anymore.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Richard Weinberger <richard@nod.at >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2015-02-10 14:30:33 -08:00
H. Peter Anvin
bf676945cb
um, x86: Cast to (u64 *) inside set_64bit()
...
After tightening up the types passed to set_64bit(), the cast to
(phys_t *) triggers a warning apparently because phys_t is defined as
"unsigned long" when building on 64 bits; however, u64 is defined as
"unsigned long long". This is, however, a explicit cast inside a
size-specific call, so just make the cast explicitly (u64 *).
Signed-off-by: H. Peter Anvin <hpa@zytor.com >
Cc: Jeff Dike <jdike@addtoit.com >
LKML-Reference: <tip-69309a05907546fb686b251d4ab041c26afe1e1d@git.kernel.org >
2010-08-03 07:00:16 -07:00
WANG Cong
65bd6a9bc7
uml: remove useless comments
...
These comments are useless now, remove them.
Signed-off-by: WANG Cong <xiyou.wangcong@gmail.com >
Cc: Jeff Dike <jdike@addtoit.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2009-04-01 08:59:17 -07:00
Al Viro
8ede0bdb63
x86, um: initial part of asm-um move
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
Signed-off-by: H. Peter Anvin <hpa@zytor.com >
2008-10-22 22:55:19 -07:00