13 Jan, 2021

1 commit

  • [ Upstream commit 87dbc209ea04645fd2351981f09eff5d23f8e2e9 ]

    Make mandatory in include/asm-generic/Kbuild and
    remove all arch/*/include/asm/local64.h arch-specific files since they
    only #include .

    This fixes build errors on arch/c6x/ and arch/nios2/ for
    block/blk-iocost.c.

    Build-tested on 21 of 25 arch-es. (tools problems on the others)

    Yes, we could even rename to
    and change all #includes to use
    instead.

    Link: https://lkml.kernel.org/r/20201227024446.17018-1-rdunlap@infradead.org
    Signed-off-by: Randy Dunlap
    Suggested-by: Christoph Hellwig
    Reviewed-by: Masahiro Yamada
    Cc: Jens Axboe
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: Peter Zijlstra
    Cc: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Sasha Levin

    Randy Dunlap
     

26 Aug, 2020

1 commit

  • Cc: Nick Hu
    Cc: Greentime Hu
    Cc: Vincent Chen
    Reported-by: kernel test robot
    Signed-off-by: Peter Zijlstra (Intel)
    Reviewed-by: Steven Rostedt (VMware)
    Reviewed-by: Thomas Gleixner
    Acked-by: Rafael J. Wysocki
    Tested-by: Marco Elver
    Link: https://lkml.kernel.org/r/20200821085348.604899379@infradead.org

    Peter Zijlstra
     

13 Aug, 2020

1 commit

  • segment_eq is only used to implement uaccess_kernel. Just open code
    uaccess_kernel in the arch uaccess headers and remove one layer of
    indirection.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Acked-by: Linus Torvalds
    Acked-by: Greentime Hu
    Acked-by: Geert Uytterhoeven
    Cc: Nick Hu
    Cc: Vincent Chen
    Cc: Paul Walmsley
    Cc: Palmer Dabbelt
    Link: http://lkml.kernel.org/r/20200710135706.537715-5-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

10 Jun, 2020

4 commits

  • 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
    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
    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Cc: Arnd Bergmann
    Cc: Borislav Petkov
    Cc: Brian Cain
    Cc: Catalin Marinas
    Cc: Chris Zankel
    Cc: "David S. Miller"
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Greg Ungerer
    Cc: Guan Xuetao
    Cc: Guo Ren
    Cc: Heiko Carstens
    Cc: Helge Deller
    Cc: Ingo Molnar
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Matthew Wilcox
    Cc: Matt Turner
    Cc: Max Filippov
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Nick Hu
    Cc: Paul Walmsley
    Cc: Richard Weinberger
    Cc: Rich Felker
    Cc: Russell King
    Cc: Stafford Horne
    Cc: Thomas Bogendoerfer
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Vincent Chen
    Cc: Vineet Gupta
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Link: http://lkml.kernel.org/r/20200514170327.31389-10-rppt@kernel.org
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • The powerpc 32-bit implementation of pgtable has nice shortcuts for
    accessing kernel PMD and PTE for a given virtual address. Make these
    helpers available for all architectures.

    [rppt@linux.ibm.com: microblaze: fix page table traversal in setup_rt_frame()]
    Link: http://lkml.kernel.org/r/20200518191511.GD1118872@kernel.org
    [akpm@linux-foundation.org: s/pmd_ptr_k/pmd_off_k/ in various powerpc places]

    Signed-off-by: Mike Rapoport
    Signed-off-by: Andrew Morton
    Cc: Arnd Bergmann
    Cc: Borislav Petkov
    Cc: Brian Cain
    Cc: Catalin Marinas
    Cc: Chris Zankel
    Cc: "David S. Miller"
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Greg Ungerer
    Cc: Guan Xuetao
    Cc: Guo Ren
    Cc: Heiko Carstens
    Cc: Helge Deller
    Cc: Ingo Molnar
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Matthew Wilcox
    Cc: Matt Turner
    Cc: Max Filippov
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Nick Hu
    Cc: Paul Walmsley
    Cc: Richard Weinberger
    Cc: Rich Felker
    Cc: Russell King
    Cc: Stafford Horne
    Cc: Thomas Bogendoerfer
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Vincent Chen
    Cc: Vineet Gupta
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Link: http://lkml.kernel.org/r/20200514170327.31389-9-rppt@kernel.org
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • The replacement of with made the include
    of the latter in the middle of asm includes. Fix this up with the aid of
    the below script and manual adjustments here and there.

    import sys
    import re

    if len(sys.argv) is not 3:
    print "USAGE: %s " % (sys.argv[0])
    sys.exit(1)

    hdr_to_move="#include " % sys.argv[2]
    moved = False
    in_hdrs = False

    with open(sys.argv[1], "r") as f:
    lines = f.readlines()
    for _line in lines:
    line = _line.rstrip('
    ')
    if line == hdr_to_move:
    continue
    if line.startswith("#include
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Greg Ungerer
    Cc: Guan Xuetao
    Cc: Guo Ren
    Cc: Heiko Carstens
    Cc: Helge Deller
    Cc: Ingo Molnar
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Matthew Wilcox
    Cc: Matt Turner
    Cc: Max Filippov
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Nick Hu
    Cc: Paul Walmsley
    Cc: Richard Weinberger
    Cc: Rich Felker
    Cc: Russell King
    Cc: Stafford Horne
    Cc: Thomas Bogendoerfer
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Vincent Chen
    Cc: Vineet Gupta
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Link: http://lkml.kernel.org/r/20200514170327.31389-4-rppt@kernel.org
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • The include/linux/pgtable.h is going to be the home of generic page table
    manipulation functions.

    Start with moving asm-generic/pgtable.h to include/linux/pgtable.h and
    make the latter include asm/pgtable.h.

    Signed-off-by: Mike Rapoport
    Signed-off-by: Andrew Morton
    Cc: Arnd Bergmann
    Cc: Borislav Petkov
    Cc: Brian Cain
    Cc: Catalin Marinas
    Cc: Chris Zankel
    Cc: "David S. Miller"
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Greg Ungerer
    Cc: Guan Xuetao
    Cc: Guo Ren
    Cc: Heiko Carstens
    Cc: Helge Deller
    Cc: Ingo Molnar
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Matthew Wilcox
    Cc: Matt Turner
    Cc: Max Filippov
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Nick Hu
    Cc: Paul Walmsley
    Cc: Richard Weinberger
    Cc: Rich Felker
    Cc: Russell King
    Cc: Stafford Horne
    Cc: Thomas Bogendoerfer
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Vincent Chen
    Cc: Vineet Gupta
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Link: http://lkml.kernel.org/r/20200514170327.31389-3-rppt@kernel.org
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     

09 Jun, 2020

1 commit

  • The function currently known as flush_icache_user_range only operates on
    a single page. Rename it to flush_icache_user_page as we'll need the
    name flush_icache_user_range for something else soon.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Acked-by: Geert Uytterhoeven
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Matt Turner
    Cc: Tony Luck
    Cc: Fenghua Yu
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Vincent Chen
    Cc: Jonas Bonn
    Cc: Stefan Kristiansson
    Cc: Stafford Horne
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Michael Ellerman
    Cc: Paul Walmsley
    Cc: Palmer Dabbelt
    Cc: Albert Ou
    Cc: Arnd Bergmann
    Cc: Peter Zijlstra
    Cc: Ingo Molnar
    Cc: Arnaldo Carvalho de Melo
    Cc: Mark Rutland
    Cc: Alexander Shishkin
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/r/20200515143646.3857579-20-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

05 Jun, 2020

6 commits

  • Most architectures define kmap_prot to be PAGE_KERNEL.

    Let sparc and xtensa define there own and define PAGE_KERNEL as the
    default if not overridden.

    [akpm@linux-foundation.org: coding style fixes]
    Suggested-by: Christoph Hellwig
    Signed-off-by: Ira Weiny
    Signed-off-by: Andrew Morton
    Cc: Al Viro
    Cc: Andy Lutomirski
    Cc: Benjamin Herrenschmidt
    Cc: Borislav Petkov
    Cc: Christian König
    Cc: Chris Zankel
    Cc: Daniel Vetter
    Cc: Dan Williams
    Cc: Dave Hansen
    Cc: "David S. Miller"
    Cc: Helge Deller
    Cc: "H. Peter Anvin"
    Cc: Ingo Molnar
    Cc: "James E.J. Bottomley"
    Cc: Max Filippov
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Thomas Bogendoerfer
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20200507150004.1423069-16-ira.weiny@intel.com
    Signed-off-by: Linus Torvalds

    Ira Weiny
     
  • kmap_atomic_to_page() has no callers and is only defined on 1 arch and
    declared on another. Remove it.

    Suggested-by: Al Viro
    Signed-off-by: Ira Weiny
    Signed-off-by: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Benjamin Herrenschmidt
    Cc: Borislav Petkov
    Cc: Christian König
    Cc: Christoph Hellwig
    Cc: Chris Zankel
    Cc: Daniel Vetter
    Cc: Dan Williams
    Cc: Dave Hansen
    Cc: "David S. Miller"
    Cc: Helge Deller
    Cc: "H. Peter Anvin"
    Cc: Ingo Molnar
    Cc: "James E.J. Bottomley"
    Cc: Max Filippov
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Thomas Bogendoerfer
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20200507150004.1423069-13-ira.weiny@intel.com
    Signed-off-by: Linus Torvalds

    Ira Weiny
     
  • Every single architecture (including !CONFIG_HIGHMEM) calls...

    pagefault_enable();
    preempt_enable();

    ... before returning from __kunmap_atomic(). Lift this code into the
    kunmap_atomic() macro.

    While we are at it rename __kunmap_atomic() to kunmap_atomic_high() to
    be consistent.

    [ira.weiny@intel.com: don't enable pagefault/preempt twice]
    Link: http://lkml.kernel.org/r/20200518184843.3029640-1-ira.weiny@intel.com
    [akpm@linux-foundation.org: coding style fixes]
    Signed-off-by: Ira Weiny
    Signed-off-by: Andrew Morton
    Reviewed-by: Christoph Hellwig
    Cc: Al Viro
    Cc: Andy Lutomirski
    Cc: Benjamin Herrenschmidt
    Cc: Borislav Petkov
    Cc: Christian König
    Cc: Chris Zankel
    Cc: Daniel Vetter
    Cc: Dan Williams
    Cc: Dave Hansen
    Cc: "David S. Miller"
    Cc: Helge Deller
    Cc: "H. Peter Anvin"
    Cc: Ingo Molnar
    Cc: "James E.J. Bottomley"
    Cc: Max Filippov
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Thomas Bogendoerfer
    Cc: Thomas Gleixner
    Cc: Guenter Roeck
    Link: http://lkml.kernel.org/r/20200507150004.1423069-8-ira.weiny@intel.com
    Signed-off-by: Linus Torvalds

    Ira Weiny
     
  • Every arch has the same code to ensure atomic operations and a check for
    !HIGHMEM page.

    Remove the duplicate code by defining a core kmap_atomic() which only
    calls the arch specific kmap_atomic_high() when the page is high memory.

    [akpm@linux-foundation.org: coding style fixes]
    Signed-off-by: Ira Weiny
    Signed-off-by: Andrew Morton
    Reviewed-by: Christoph Hellwig
    Cc: Al Viro
    Cc: Andy Lutomirski
    Cc: Benjamin Herrenschmidt
    Cc: Borislav Petkov
    Cc: Christian König
    Cc: Chris Zankel
    Cc: Daniel Vetter
    Cc: Dan Williams
    Cc: Dave Hansen
    Cc: "David S. Miller"
    Cc: Helge Deller
    Cc: "H. Peter Anvin"
    Cc: Ingo Molnar
    Cc: "James E.J. Bottomley"
    Cc: Max Filippov
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Thomas Bogendoerfer
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20200507150004.1423069-7-ira.weiny@intel.com
    Signed-off-by: Linus Torvalds

    Ira Weiny
     
  • All architectures do exactly the same thing for kunmap(); remove all the
    duplicate definitions and lift the call to the core.

    This also has the benefit of changing kmap_unmap() on a number of
    architectures to be an inline call rather than an actual function.

    [akpm@linux-foundation.org: fix CONFIG_HIGHMEM=n build on various architectures]
    Signed-off-by: Ira Weiny
    Signed-off-by: Andrew Morton
    Reviewed-by: Christoph Hellwig
    Cc: Al Viro
    Cc: Andy Lutomirski
    Cc: Benjamin Herrenschmidt
    Cc: Borislav Petkov
    Cc: Christian König
    Cc: Chris Zankel
    Cc: Daniel Vetter
    Cc: Dan Williams
    Cc: Dave Hansen
    Cc: "David S. Miller"
    Cc: Helge Deller
    Cc: "H. Peter Anvin"
    Cc: Ingo Molnar
    Cc: "James E.J. Bottomley"
    Cc: Max Filippov
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Thomas Bogendoerfer
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20200507150004.1423069-5-ira.weiny@intel.com
    Signed-off-by: Linus Torvalds

    Ira Weiny
     
  • The kmap code for all the architectures is almost 100% identical.

    Lift the common code to the core. Use ARCH_HAS_KMAP_FLUSH_TLB to indicate
    if an arch defines kmap_flush_tlb() and call if if needed.

    This also has the benefit of changing kmap() on a number of architectures
    to be an inline call rather than an actual function.

    Signed-off-by: Ira Weiny
    Signed-off-by: Andrew Morton
    Reviewed-by: Christoph Hellwig
    Cc: Al Viro
    Cc: Andy Lutomirski
    Cc: Benjamin Herrenschmidt
    Cc: Borislav Petkov
    Cc: Christian König
    Cc: Chris Zankel
    Cc: Daniel Vetter
    Cc: Dan Williams
    Cc: Dave Hansen
    Cc: "David S. Miller"
    Cc: Helge Deller
    Cc: "H. Peter Anvin"
    Cc: Ingo Molnar
    Cc: "James E.J. Bottomley"
    Cc: Max Filippov
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Thomas Bogendoerfer
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20200507150004.1423069-4-ira.weiny@intel.com
    Signed-off-by: Linus Torvalds

    Ira Weiny
     

23 Apr, 2020

1 commit

  • As the bug report [1] pointed out, must be included
    after .

    I believe we should not impose any include order restriction. We often
    sort include directives alphabetically, but it is just coding style
    convention. Technically, we can include header files in any order by
    making every header self-contained.

    Currently, arch-specific MODULE_ARCH_VERMAGIC is defined in
    , which is not included from .

    Hence, the straight-forward fix-up would be as follows:

    |--- a/include/linux/vermagic.h
    |+++ b/include/linux/vermagic.h
    |@@ -1,5 +1,6 @@
    | /* SPDX-License-Identifier: GPL-2.0 */
    | #include
    |+#include
    |
    | /* Simply sanity version stamp for modules. */
    | #ifdef CONFIG_SMP

    This works enough, but for further cleanups, I split MODULE_ARCH_VERMAGIC
    definitions into .

    With this, and will be orthogonal,
    and the location of MODULE_ARCH_VERMAGIC definitions will be consistent.

    For arc and ia64, MODULE_PROC_FAMILY is only used for defining
    MODULE_ARCH_VERMAGIC. I squashed it.

    For hexagon, nds32, and xtensa, I removed entirely
    because they contained nothing but MODULE_ARCH_VERMAGIC definition.
    Kbuild will automatically generate at build-time,
    wrapping .

    [1] https://lore.kernel.org/lkml/20200411155623.GA22175@zn.tnic

    Reported-by: Borislav Petkov
    Signed-off-by: Masahiro Yamada
    Acked-by: Jessica Yu

    Masahiro Yamada
     

11 Apr, 2020

2 commits

  • Currently there are many platforms that dont enable ARCH_HAS_PTE_SPECIAL
    but required to define quite similar fallback stubs for special page
    table entry helpers such as pte_special() and pte_mkspecial(), as they
    get build in generic MM without a config check. This creates two
    generic fallback stub definitions for these helpers, eliminating much
    code duplication.

    mips platform has a special case where pte_special() and pte_mkspecial()
    visibility is wider than what ARCH_HAS_PTE_SPECIAL enablement requires.
    This restricts those symbol visibility in order to avoid redefinitions
    which is now exposed through this new generic stubs and subsequent build
    failure. arm platform set_pte_at() definition needs to be moved into a
    C file just to prevent a build failure.

    [anshuman.khandual@arm.com: use defined(CONFIG_ARCH_HAS_PTE_SPECIAL) in mips per Thomas]
    Link: http://lkml.kernel.org/r/1583851924-21603-1-git-send-email-anshuman.khandual@arm.com
    Signed-off-by: Anshuman Khandual
    Signed-off-by: Andrew Morton
    Acked-by: Guo Ren [csky]
    Acked-by: Geert Uytterhoeven [m68k]
    Acked-by: Stafford Horne [openrisc]
    Acked-by: Helge Deller [parisc]
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Matt Turner
    Cc: Russell King
    Cc: Brian Cain
    Cc: Tony Luck
    Cc: Fenghua Yu
    Cc: Sam Creasey
    Cc: Michal Simek
    Cc: Ralf Baechle
    Cc: Paul Burton
    Cc: Nick Hu
    Cc: Greentime Hu
    Cc: Vincent Chen
    Cc: Ley Foon Tan
    Cc: Jonas Bonn
    Cc: Stefan Kristiansson
    Cc: "James E.J. Bottomley"
    Cc: "David S. Miller"
    Cc: Jeff Dike
    Cc: Richard Weinberger
    Cc: Anton Ivanov
    Cc: Guan Xuetao
    Cc: Chris Zankel
    Cc: Max Filippov
    Cc: Thomas Bogendoerfer
    Link: http://lkml.kernel.org/r/1583802551-15406-1-git-send-email-anshuman.khandual@arm.com
    Signed-off-by: Linus Torvalds

    Anshuman Khandual
     
  • There are many platforms with exact same value for VM_DATA_DEFAULT_FLAGS
    This creates a default value for VM_DATA_DEFAULT_FLAGS in line with the
    existing VM_STACK_DEFAULT_FLAGS. While here, also define some more
    macros with standard VMA access flag combinations that are used
    frequently across many platforms. Apart from simplification, this
    reduces code duplication as well.

    Signed-off-by: Anshuman Khandual
    Signed-off-by: Andrew Morton
    Reviewed-by: Vlastimil Babka
    Acked-by: Geert Uytterhoeven
    Cc: Richard Henderson
    Cc: Vineet Gupta
    Cc: Russell King
    Cc: Catalin Marinas
    Cc: Mark Salter
    Cc: Guo Ren
    Cc: Yoshinori Sato
    Cc: Brian Cain
    Cc: Tony Luck
    Cc: Michal Simek
    Cc: Ralf Baechle
    Cc: Paul Burton
    Cc: Nick Hu
    Cc: Ley Foon Tan
    Cc: Jonas Bonn
    Cc: "James E.J. Bottomley"
    Cc: Michael Ellerman
    Cc: Paul Walmsley
    Cc: Heiko Carstens
    Cc: Rich Felker
    Cc: "David S. Miller"
    Cc: Guan Xuetao
    Cc: Thomas Gleixner
    Cc: Jeff Dike
    Cc: Chris Zankel
    Link: http://lkml.kernel.org/r/1583391014-8170-2-git-send-email-anshuman.khandual@arm.com
    Signed-off-by: Linus Torvalds

    Anshuman Khandual
     

03 Apr, 2020

1 commit

  • Change a header to mandatory-y if both of the following are met:

    [1] At least one architecture (except um) specifies it as generic-y in
    arch/*/include/asm/Kbuild

    [2] Every architecture (except um) either has its own implementation
    (arch/*/include/asm/*.h) or specifies it as generic-y in
    arch/*/include/asm/Kbuild

    This commit was generated by the following shell script.

    ----------------------------------->8-----------------------------------

    arches=$(cd arch; ls -1 | sed -e '/Kconfig/d' -e '/um/d')

    tmpfile=$(mktemp)

    grep "^mandatory-y +=" include/asm-generic/Kbuild > $tmpfile

    find arch -path 'arch/*/include/asm/Kbuild' |
    xargs sed -n 's/^generic-y += \(.*\)/\1/p' | sort -u |
    while read header
    do
    mandatory=yes

    for arch in $arches
    do
    if ! grep -q "generic-y += $header" arch/$arch/include/asm/Kbuild &&
    ! [ -f arch/$arch/include/asm/$header ]; then
    mandatory=no
    break
    fi
    done

    if [ "$mandatory" = yes ]; then
    echo "mandatory-y += $header" >> $tmpfile

    for arch in $arches
    do
    sed -i "/generic-y += $header/d" arch/$arch/include/asm/Kbuild
    done
    fi

    done

    sed -i '/^mandatory-y +=/d' include/asm-generic/Kbuild

    LANG=C sort $tmpfile >> include/asm-generic/Kbuild

    ----------------------------------->8-----------------------------------

    One obvious benefit is the diff stat:

    25 files changed, 52 insertions(+), 557 deletions(-)

    It is tedious to list generic-y for each arch that needs it.

    So, mandatory-y works like a fallback default (by just wrapping
    asm-generic one) when arch does not have a specific header
    implementation.

    See the following commits:

    def3f7cefe4e81c296090e1722a76551142c227c
    a1b39bae16a62ce4aae02d958224f19316d98b24

    It is tedious to convert headers one by one, so I processed by a shell
    script.

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Andrew Morton
    Cc: Michal Simek
    Cc: Christoph Hellwig
    Cc: Arnd Bergmann
    Link: http://lkml.kernel.org/r/20200210175452.5030-1-masahiroy@kernel.org
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     

28 Mar, 2020

2 commits


21 Mar, 2020

1 commit

  • The defconfig compiles without linux/mm.h. With mm.h included the
    include chain leands to:
    | CC kernel/locking/percpu-rwsem.o
    | In file included from include/linux/huge_mm.h:8,
    | from include/linux/mm.h:567,
    | from arch/nds32/include/asm/uaccess.h:,
    | from include/linux/uaccess.h:11,
    | from include/linux/sched/task.h:11,
    | from include/linux/sched/signal.h:9,
    | from include/linux/rcuwait.h:6,
    | from include/linux/percpu-rwsem.h:8,
    | from kernel/locking/percpu-rwsem.c:6:
    | include/linux/fs.h:1422:29: error: array type has incomplete element type 'struct percpu_rw_semaphore'
    | 1422 | struct percpu_rw_semaphore rw_sem[SB_FREEZE_LEVELS];

    once rcuwait.h includes linux/sched/signal.h.

    Remove the linux/mm.h include.

    Reported-by: kbuild test robot
    Signed-off-by: Sebastian Andrzej Siewior
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Peter Zijlstra (Intel)
    Link: https://lkml.kernel.org/r/20200321113241.339289758@linutronix.de

    Sebastian Andrzej Siewior
     

20 Jan, 2020

1 commit


30 Dec, 2019

2 commits

  • The commit 7c2763c42326 ("nds32: use pgtable-nopmd instead of
    4level-fixup") missed the pmd_off_k() macro which caused the following
    build error:

    CC arch/nds32/mm/highmem.o
    In file included from arch/nds32/include/asm/page.h:57,
    from include/linux/mm_types_task.h:16,
    from include/linux/mm_types.h:5,
    from include/linux/mmzone.h:21,
    from include/linux/gfp.h:6,
    from include/linux/xarray.h:14,
    from include/linux/radix-tree.h:18,
    from include/linux/fs.h:15,
    from include/linux/highmem.h:5,
    from arch/nds32/mm/highmem.c:5:
    arch/nds32/mm/highmem.c: In function 'kmap_atomic':
    arch/nds32/include/asm/pgtable.h:360:44: error: passing argument 1 of 'pmd_offset' from incompatible pointer type [-Werror=incompatible-pointer-types]
    #define pgd_offset(mm, address) ((mm)->pgd + pgd_index(address))
    ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
    arch/nds32/include/asm/memory.h:33:29: note: in definition of macro '__phys_to_virt'
    #define __phys_to_virt(x) ((x) - PHYS_OFFSET + PAGE_OFFSET)
    ^
    arch/nds32/include/asm/pgtable.h:193:55: note: in expansion of macro '__va'
    #define pmd_page_kernel(pmd) ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK))
    ^~~~
    include/asm-generic/pgtable-nop4d.h:41:24: note: in expansion of macro 'pgd_val'
    #define p4d_val(x) (pgd_val((x).pgd))
    ^~~~~~~
    include/asm-generic/pgtable-nopud.h:50:24: note: in expansion of macro 'p4d_val'
    #define pud_val(x) (p4d_val((x).p4d))
    ^~~~~~~
    include/asm-generic/pgtable-nopmd.h:49:24: note: in expansion of macro 'pud_val'
    #define pmd_val(x) (pud_val((x).pud))
    ^~~~~~~
    arch/nds32/include/asm/pgtable.h:193:60: note: in expansion of macro 'pmd_val'
    #define pmd_page_kernel(pmd) ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK))
    ^~~~~~~
    arch/nds32/include/asm/pgtable.h:190:56: note: in expansion of macro 'pmd_page_kernel'
    #define pte_offset_kernel(dir, address) ((pte_t *)pmd_page_kernel(*(dir)) + pte_index(address))
    ^~~~~~~~~~~~~~~
    arch/nds32/mm/highmem.c:52:9: note: in expansion of macro 'pte_offset_kernel'
    ptep = pte_offset_kernel(pmd_off_k(vaddr), vaddr);
    ^~~~~~~~~~~~~~~~~
    arch/nds32/include/asm/pgtable.h:362:33: note: in expansion of macro 'pgd_offset'
    #define pgd_offset_k(addr) pgd_offset(&init_mm, addr)
    ^~~~~~~~~~
    arch/nds32/include/asm/pgtable.h:198:39: note: in expansion of macro 'pgd_offset_k'
    #define pmd_off_k(address) pmd_offset(pgd_offset_k(address), address)
    ^~~~~~~~~~~~
    arch/nds32/mm/highmem.c:52:27: note: in expansion of macro 'pmd_off_k'
    ptep = pte_offset_kernel(pmd_off_k(vaddr), vaddr);
    ^~~~~~~~~
    In file included from arch/nds32/include/asm/pgtable.h:7,
    from include/linux/mm.h:99,
    from include/linux/highmem.h:8,
    from arch/nds32/mm/highmem.c:5:
    include/asm-generic/pgtable-nopmd.h:44:42: note: expected 'pud_t *' {aka 'struct *'} but argument is of type 'pgd_t *' {aka 'long unsigned int *'}
    static inline pmd_t * pmd_offset(pud_t * pud, unsigned long address)
    ~~~~~~~~^~~
    In file included from arch/nds32/include/asm/page.h:57,
    from include/linux/mm_types_task.h:16,
    from include/linux/mm_types.h:5,
    from include/linux/mmzone.h:21,
    from include/linux/gfp.h:6,
    from include/linux/xarray.h:14,
    from include/linux/radix-tree.h:18,
    from include/linux/fs.h:15,
    from include/linux/highmem.h:5,
    from arch/nds32/mm/highmem.c:5:

    Updating the pmd_off_k() macro to use the correct page table unfolding
    fixes the issue.

    Fixes: 7c2763c42326 ("nds32: use pgtable-nopmd instead of 4level-fixup")
    Link: https://lore.kernel.org/lkml/201912212139.yptX8CsV%25lkp@intel.com/
    Reported-by: kbuild test robot
    Signed-off-by: Mike Rapoport
    Reviewed-by: Greentime Hu
    Signed-off-by: Arnd Bergmann

    Mike Rapoport
     
  • The commit c296d4dc13ae ("asm-generic: fix a compilation warning") changed
    asm-generic/cachflush.h to use static inlines instead of macros and as a
    result the nds32 build with CONFIG_CPU_CACHE_ALIASING=n fails:

    CC init/main.o
    In file included from arch/nds32/include/asm/cacheflush.h:43,
    from include/linux/highmem.h:12,
    from include/linux/pagemap.h:11,
    from include/linux/blkdev.h:16,
    from include/linux/blk-cgroup.h:23,
    from include/linux/writeback.h:14,
    from init/main.c:44:
    include/asm-generic/cacheflush.h:50:20: error: static declaration of 'flush_icache_range' follows non-static declaration
    static inline void flush_icache_range(unsigned long start, unsigned long end)
    ^~~~~~~~~~~~~~~~~~
    In file included from include/linux/highmem.h:12,
    from include/linux/pagemap.h:11,
    from include/linux/blkdev.h:16,
    from include/linux/blk-cgroup.h:23,
    from include/linux/writeback.h:14,
    from init/main.c:44:
    arch/nds32/include/asm/cacheflush.h:11:6: note: previous declaration of 'flush_icache_range' was here
    void flush_icache_range(unsigned long start, unsigned long end);
    ^~~~~~~~~~~~~~~~~~

    Surround the inline functions in asm-generic/cacheflush.h by ifdef's so
    that architectures could override them and add the required overrides to
    nds32.

    Fixes: c296d4dc13ae ("asm-generic: fix a compilation warning")
    Link: https://lore.kernel.org/lkml/201912212139.yptX8CsV%25lkp@intel.com/
    Reported-by: kbuild test robot
    Signed-off-by: Mike Rapoport
    Reviewed-by: Greentime Hu
    Signed-off-by: Arnd Bergmann

    Mike Rapoport
     

10 Dec, 2019

1 commit


05 Dec, 2019

1 commit

  • nds32 has only two-level page tables and can use pgtable-nopmd and
    folding of the upper layers.

    Replace usage of include/asm-generic/4level-fixup.h and explicit
    definition of __PAGETABLE_PMD_FOLDED in nds32 with
    include/asm-generic/pgtable-nopmd.h and adjust page table manipulation
    macros and functions accordingly.

    Link: http://lkml.kernel.org/r/1572938135-31886-8-git-send-email-rppt@kernel.org
    Signed-off-by: Mike Rapoport
    Cc: Anatoly Pugachev
    Cc: Anton Ivanov
    Cc: Arnd Bergmann
    Cc: "David S. Miller"
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Greg Ungerer
    Cc: Helge Deller
    Cc: "James E.J. Bottomley"
    Cc: Jeff Dike
    Cc: "Kirill A. Shutemov"
    Cc: Mark Salter
    Cc: Matt Turner
    Cc: Michal Simek
    Cc: Peter Rosin
    Cc: Richard Weinberger
    Cc: Rolf Eike Beer
    Cc: Russell King
    Cc: Russell King
    Cc: Sam Creasey
    Cc: Vincent Chen
    Cc: Vineet Gupta
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     

12 Nov, 2019

2 commits

  • Use the generic ioremap_prot and iounmap helpers.

    Note that the io.h include in pgtable.h had to be removed to not create
    an include loop. As far as I can tell there was no need for it to
    start with.

    Signed-off-by: Christoph Hellwig
    Acked-by: Greentime Hu

    Christoph Hellwig
     
  • All MMU-enabled ports have a non-trivial ioremap and should thus provide
    the prototype for their implementation instead of providing a generic
    one unless a different symbol is not defined. Note that this only
    affects sparc32 nds32 as all others do provide their own version.

    Also update the kerneldoc comments in asm-generic/io.h to explain the
    situation around the default ioremap* implementations correctly.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Arnd Bergmann

    Christoph Hellwig
     

25 Sep, 2019

2 commits

  • Both pgtable_cache_init() and pgd_cache_init() are used to initialize kmem
    cache for page table allocations on several architectures that do not use
    PAGE_SIZE tables for one or more levels of the page table hierarchy.

    Most architectures do not implement these functions and use __weak default
    NOP implementation of pgd_cache_init(). Since there is no such default
    for pgtable_cache_init(), its empty stub is duplicated among most
    architectures.

    Rename the definitions of pgd_cache_init() to pgtable_cache_init() and
    drop empty stubs of pgtable_cache_init().

    Link: http://lkml.kernel.org/r/1566457046-22637-1-git-send-email-rppt@linux.ibm.com
    Signed-off-by: Mike Rapoport
    Acked-by: Will Deacon [arm64]
    Acked-by: Thomas Gleixner [x86]
    Cc: Catalin Marinas
    Cc: Ingo Molnar
    Cc: Borislav Petkov
    Cc: Matthew Wilcox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • Patch series "mm: remove quicklist page table caches".

    A while ago Nicholas proposed to remove quicklist page table caches [1].

    I've rebased his patch on the curren upstream and switched ia64 and sh to
    use generic versions of PTE allocation.

    [1] https://lore.kernel.org/linux-mm/20190711030339.20892-1-npiggin@gmail.com

    This patch (of 3):

    Remove page table allocator "quicklists". These have been around for a
    long time, but have not got much traction in the last decade and are only
    used on ia64 and sh architectures.

    The numbers in the initial commit look interesting but probably don't
    apply anymore. If anybody wants to resurrect this it's in the git
    history, but it's unhelpful to have this code and divergent allocator
    behaviour for minor archs.

    Also it might be better to instead make more general improvements to page
    allocator if this is still so slow.

    Link: http://lkml.kernel.org/r/1565250728-21721-2-git-send-email-rppt@linux.ibm.com
    Signed-off-by: Nicholas Piggin
    Signed-off-by: Mike Rapoport
    Cc: Tony Luck
    Cc: Yoshinori Sato
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nicholas Piggin
     

25 Jul, 2019

1 commit

  • UAPI headers licensed under GPL are supposed to have exception
    "WITH Linux-syscall-note" so that they can be included into non-GPL
    user space application code.

    The exception note is missing in some UAPI headers.

    Some of them slipped in by the treewide conversion commit b24413180f56
    ("License cleanup: add SPDX GPL-2.0 license identifier to files with
    no license"). Just run:

    $ git show --oneline b24413180f56 -- arch/x86/include/uapi/asm/

    I believe they are not intentional, and should be fixed too.

    This patch was generated by the following script:

    git grep -l --not -e Linux-syscall-note --and -e SPDX-License-Identifier \
    -- :arch/*/include/uapi/asm/*.h :include/uapi/ :^*/Kbuild |
    while read file
    do
    sed -i -e '/[[:space:]]OR[[:space:]]/s/\(GPL-[^[:space:]]*\)/(\1 WITH Linux-syscall-note)/g' \
    -e '/[[:space:]]or[[:space:]]/s/\(GPL-[^[:space:]]*\)/(\1 WITH Linux-syscall-note)/g' \
    -e '/[[:space:]]OR[[:space:]]/!{/[[:space:]]or[[:space:]]/!s/\(GPL-[^[:space:]]*\)/\1 WITH Linux-syscall-note/g}' $file
    done

    After this patch is applied, there are 5 UAPI headers that do not contain
    "WITH Linux-syscall-note". They are kept untouched since this exception
    applies only to GPL variants.

    $ git grep --not -e Linux-syscall-note --and -e SPDX-License-Identifier \
    -- :arch/*/include/uapi/asm/*.h :include/uapi/ :^*/Kbuild
    include/uapi/drm/panfrost_drm.h:/* SPDX-License-Identifier: MIT */
    include/uapi/linux/batman_adv.h:/* SPDX-License-Identifier: MIT */
    include/uapi/linux/qemu_fw_cfg.h:/* SPDX-License-Identifier: BSD-3-Clause */
    include/uapi/linux/vbox_err.h:/* SPDX-License-Identifier: MIT */
    include/uapi/linux/virtio_iommu.h:/* SPDX-License-Identifier: BSD-3-Clause */

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Masahiro Yamada
     

17 Jul, 2019

1 commit

  • PTRACE_GET_SYSCALL_INFO is a generic ptrace API that lets ptracer obtain
    details of the syscall the tracee is blocked in.

    There are two reasons for a special syscall-related ptrace request.

    Firstly, with the current ptrace API there are cases when ptracer cannot
    retrieve necessary information about syscalls. Some examples include:

    * The notorious int-0x80-from-64-bit-task issue. See [1] for details.
    In short, if a 64-bit task performs a syscall through int 0x80, its
    tracer has no reliable means to find out that the syscall was, in
    fact, a compat syscall, and misidentifies it.

    * Syscall-enter-stop and syscall-exit-stop look the same for the
    tracer. Common practice is to keep track of the sequence of
    ptrace-stops in order not to mix the two syscall-stops up. But it is
    not as simple as it looks; for example, strace had a (just recently
    fixed) long-standing bug where attaching strace to a tracee that is
    performing the execve system call led to the tracer identifying the
    following syscall-exit-stop as syscall-enter-stop, which messed up
    all the state tracking.

    * Since the introduction of commit 84d77d3f06e7 ("ptrace: Don't allow
    accessing an undumpable mm"), both PTRACE_PEEKDATA and
    process_vm_readv become unavailable when the process dumpable flag is
    cleared. On such architectures as ia64 this results in all syscall
    arguments being unavailable for the tracer.

    Secondly, ptracers also have to support a lot of arch-specific code for
    obtaining information about the tracee. For some architectures, this
    requires a ptrace(PTRACE_PEEKUSER, ...) invocation for every syscall
    argument and return value.

    PTRACE_GET_SYSCALL_INFO returns the following structure:

    struct ptrace_syscall_info {
    __u8 op; /* PTRACE_SYSCALL_INFO_* */
    __u32 arch __attribute__((__aligned__(sizeof(__u32))));
    __u64 instruction_pointer;
    __u64 stack_pointer;
    union {
    struct {
    __u64 nr;
    __u64 args[6];
    } entry;
    struct {
    __s64 rval;
    __u8 is_error;
    } exit;
    struct {
    __u64 nr;
    __u64 args[6];
    __u32 ret_data;
    } seccomp;
    };
    };

    The structure was chosen according to [2], except for the following
    changes:

    * seccomp substructure was added as a superset of entry substructure

    * the type of nr field was changed from int to __u64 because syscall
    numbers are, as a practical matter, 64 bits

    * stack_pointer field was added along with instruction_pointer field
    since it is readily available and can save the tracer from extra
    PTRACE_GETREGS/PTRACE_GETREGSET calls

    * arch is always initialized to aid with tracing system calls such as
    execve()

    * instruction_pointer and stack_pointer are always initialized so they
    could be easily obtained for non-syscall stops

    * a boolean is_error field was added along with rval field, this way
    the tracer can more reliably distinguish a return value from an error
    value

    strace has been ported to PTRACE_GET_SYSCALL_INFO. Starting with
    release 4.26, strace uses PTRACE_GET_SYSCALL_INFO API as the preferred
    mechanism of obtaining syscall information.

    [1] https://lore.kernel.org/lkml/CA+55aFzcSVmdDj9Lh_gdbz1OzHyEm6ZrGPBDAJnywm2LF_eVyg@mail.gmail.com/
    [2] https://lore.kernel.org/lkml/CAObL_7GM0n80N7J_DFw_eQyfLyzq+sf4y2AvsCCV88Tb3AwEHA@mail.gmail.com/

    This patch (of 7):

    All syscall_get_*() and syscall_set_*() functions must be defined as
    static inline as on all other architectures, otherwise asm/syscall.h
    cannot be included in more than one compilation unit.

    This bug has to be fixed in order to extend the generic
    ptrace API with PTRACE_GET_SYSCALL_INFO request.

    Link: http://lkml.kernel.org/r/20190510152749.GA28558@altlinux.org
    Fixes: 1932fbe36e02 ("nds32: System calls handling")
    Signed-off-by: Dmitry V. Levin
    Reported-by: kbuild test robot
    Acked-by: Greentime Hu
    Cc: Vincent Chen
    Cc: Elvira Khabirova
    Cc: Eugene Syromyatnikov
    Cc: Oleg Nesterov
    Cc: Andy Lutomirski
    Cc: Benjamin Herrenschmidt
    Cc: Helge Deller [parisc]
    Cc: James E.J. Bottomley
    Cc: James Hogan
    Cc: Kees Cook
    Cc: Michael Ellerman
    Cc: Paul Burton
    Cc: Paul Mackerras
    Cc: Ralf Baechle
    Cc: Richard Kuo
    Cc: Shuah Khan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dmitry V. Levin
     

13 Jul, 2019

1 commit

  • The nds32 implementation of pte_alloc_one_kernel() differs from the
    generic in the use of __GFP_RETRY_MAYFAIL flag, which is removed after the
    conversion.

    The nds32 version of pte_alloc_one() missed the call to
    pgtable_page_ctor() and also used __GFP_RETRY_MAYFAIL. Switching it to
    use generic __pte_alloc_one() for the PTE page allocation ensures that
    page table constructor is run and the user page tables are allocated with
    __GFP_ACCOUNT.

    The conversion to the generic version of pte_free_kernel() removes the
    NULL check for pte.

    The pte_free() version on nds32 is identical to the generic one and can be
    simply dropped.

    Link: http://lkml.kernel.org/r/1557296232-15361-10-git-send-email-rppt@linux.ibm.com
    Signed-off-by: Mike Rapoport
    Cc: Albert Ou
    Cc: Anshuman Khandual
    Cc: Anton Ivanov
    Cc: Arnd Bergmann
    Cc: Catalin Marinas
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Guan Xuetao
    Cc: Guo Ren
    Cc: Guo Ren
    Cc: Helge Deller
    Cc: Ley Foon Tan
    Cc: Matthew Wilcox
    Cc: Matt Turner
    Cc: Michael Ellerman
    Cc: Michal Hocko
    Cc: Palmer Dabbelt
    Cc: Paul Burton
    Cc: Ralf Baechle
    Cc: Richard Kuo
    Cc: Richard Weinberger
    Cc: Russell King
    Cc: Sam Creasey
    Cc: Vincent Chen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     

04 Jun, 2019

1 commit


31 May, 2019

3 commits

  • The existing floating point emulations is only available for floating
    instruction that possibly issue denormalized input and underflow
    exceptions. These existing FPU emulations are not sufficient when IEx
    Trap is enabled because some floating point instructions only issue inexact
    exception. This patch adds the emulations of such floating point
    instructions.

    Signed-off-by: Vincent Chen
    Acked-by: Greentime Hu
    Signed-off-by: Greentime Hu

    Vincent Chen
     
  • In order for kernel to capture each denormalized output, the UDF
    trapping enable bit is always raised in $fpcsr. Because underflow case will
    issue not an underflow exception but also an inexact exception, it causes
    that the IEX, IEX cumulative exception, flag in $fpcsr to be raised in each
    denormalized output handling. To make the emulation transparent to the
    user, the emulator needs to clear the IEX flag in $fpcsr if the result is a
    denormalized number. However, if the IEX flag has been raised before this
    floating point emulation, this cleanup may be incorrect. To avoid the IEX
    flags in $fpcsr be raised in each denormalized output handling, the IEX
    trap shall be always enabled.

    Signed-off-by: Vincent Chen
    Acked-by: Greentime Hu
    Signed-off-by: Greentime Hu

    Vincent Chen
     
  • Add SPDX license identifiers to all Make/Kconfig files which:

    - Have no license information of any form

    These files fall under the project license, GPL v2 only. The resulting SPDX
    license identifier is:

    GPL-2.0

    Reported-by: Masahiro Yamada
    Signed-off-by: Greg Kroah-Hartman
    Reviewed-by: Kate Stewart
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

18 May, 2019

2 commits

  • These generic-y defines do not have the corresponding generic header
    in include/asm-generic/, so they are definitely invalid.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Pull nds32 updates from Greentime Hu:

    - Clean up codes and Makefile

    - Fix a vDSO bug

    - Remove useless functions/header files

    - Update git repo path in MAINTAINERS

    * tag 'nds32-for-linus-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux:
    nds32: Fix vDSO clock_getres()
    MAINTAINERS: update nds32 git repo path
    nds32: don't export low-level cache flushing routines
    arch: nds32: Kconfig: pedantic formatting
    nds32: fix semicolon code style issue
    nds32: vdso: drop unnecessary cc-ldoption
    nds32: remove unused generic-y += cmpxchg-local.h
    nds32: Use the correct style for SPDX License Identifier
    nds32: remove __virt_to_bus and __bus_to_virt
    nds32: vdso: fix and clean-up Makefile
    nds32: add vmlinux.lds and vdso.so to .gitignore
    nds32: ex-exit: Remove unneeded need_resched() loop
    nds32/io: Remove useless definition of mmiowb()
    nds32: Removed unused thread flag TIF_USEDFPU

    Linus Torvalds
     

17 May, 2019

1 commit

  • Pull nommu generic uaccess updates from Arnd Bergmann:
    "asm-generic: kill and improve nommu generic uaccess helpers

    Christoph Hellwig writes:

    This is a series doing two somewhat interwinded things. It improves
    the asm-generic nommu uaccess helper to optionally be entirely
    generic and not require any arch helpers for the actual uaccess.
    For the generic uaccess.h to actually be generically useful I also
    had to kill off the mess we made of , which really
    shouldn't exist on most architectures"

    * tag 'asm-generic-nommu' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
    asm-generic: optimize generic uaccess for 8-byte loads and stores
    asm-generic: provide entirely generic nommu uaccess
    arch: mostly remove
    asm-generic: don't include from

    Linus Torvalds