29 Mar, 2019

1 commit

  • I do not see any consistency about headers_install of
    and .

    According to my analysis of Linux 5.1-rc1, there are 3 groups:

    [1] Both and are exported

    alpha, arm, hexagon, mips, powerpc, s390, sparc, x86

    [2] is exported, but is not

    arc, arm64, c6x, h8300, ia64, m68k, microblaze, nios2, openrisc,
    parisc, sh, unicore32, xtensa

    [3] Neither nor is exported

    csky, nds32, riscv

    This does not match to the actual KVM support. At least, [2] is
    half-baked.

    Nor do arch maintainers look like they care about this. For example,
    commit 0add53713b1c ("microblaze: Add missing kvm_para.h to Kbuild")
    exported to user-space in order to fix an in-kernel
    build error.

    We have two ways to make this consistent:

    [A] export both and for all
    architectures, irrespective of the KVM support

    [B] Match the header export of and
    to the KVM support

    My first attempt was [A] because the code looks cleaner, but Paolo
    suggested [B].

    So, this commit goes with [B].

    For most architectures, was moved to the kernel-space.
    I changed include/uapi/linux/Kbuild so that it checks generated
    asm/kvm_para.h as well as check-in ones.

    After this commit, there will be two groups:

    [1] Both and are exported

    arm, arm64, mips, powerpc, s390, x86

    [2] Neither nor is exported

    alpha, arc, c6x, csky, h8300, hexagon, ia64, m68k, microblaze,
    nds32, nios2, openrisc, parisc, riscv, sh, sparc, unicore32, xtensa

    Signed-off-by: Masahiro Yamada
    Acked-by: Cornelia Huck
    Signed-off-by: Paolo Bonzini

    Masahiro Yamada
     

17 Mar, 2019

1 commit

  • Currently, every arch/*/include/uapi/asm/Kbuild explicitly includes
    the common Kbuild.asm file. Factor out the duplicated include directives
    to scripts/Makefile.asm-generic so that no architecture would opt out
    of the mandatory-y mechanism.

    um is not forced to include mandatory-y since it is a very exceptional
    case which does not support UAPI.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

13 Mar, 2019

2 commits

  • Add check for the return value of memblock_alloc*() functions and call
    panic() in case of error. The panic message repeats the one used by
    panicing memblock allocators with adjustment of parameters to include
    only relevant ones.

    The replacement was mostly automated with semantic patches like the one
    below with manual massaging of format strings.

    @@
    expression ptr, size, align;
    @@
    ptr = memblock_alloc(size, align);
    + if (!ptr)
    + panic("%s: Failed to allocate %lu bytes align=0x%lx\n", __func__, size, align);

    [anders.roxell@linaro.org: use '%pa' with 'phys_addr_t' type]
    Link: http://lkml.kernel.org/r/20190131161046.21886-1-anders.roxell@linaro.org
    [rppt@linux.ibm.com: fix format strings for panics after memblock_alloc]
    Link: http://lkml.kernel.org/r/1548950940-15145-1-git-send-email-rppt@linux.ibm.com
    [rppt@linux.ibm.com: don't panic if the allocation in sparse_buffer_init fails]
    Link: http://lkml.kernel.org/r/20190131074018.GD28876@rapoport-lnx
    [akpm@linux-foundation.org: fix xtensa printk warning]
    Link: http://lkml.kernel.org/r/1548057848-15136-20-git-send-email-rppt@linux.ibm.com
    Signed-off-by: Mike Rapoport
    Signed-off-by: Anders Roxell
    Reviewed-by: Guo Ren [c-sky]
    Acked-by: Paul Burton [MIPS]
    Acked-by: Heiko Carstens [s390]
    Reviewed-by: Juergen Gross [Xen]
    Reviewed-by: Geert Uytterhoeven [m68k]
    Acked-by: Max Filippov [xtensa]
    Cc: Catalin Marinas
    Cc: Christophe Leroy
    Cc: Christoph Hellwig
    Cc: "David S. Miller"
    Cc: Dennis Zhou
    Cc: Greentime Hu
    Cc: Greg Kroah-Hartman
    Cc: Guan Xuetao
    Cc: Guo Ren
    Cc: Mark Salter
    Cc: Matt Turner
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Petr Mladek
    Cc: Richard Weinberger
    Cc: Rich Felker
    Cc: Rob Herring
    Cc: Rob Herring
    Cc: Russell King
    Cc: Stafford Horne
    Cc: Tony Luck
    Cc: Vineet Gupta
    Cc: Yoshinori Sato
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • memblock_alloc() already clears the allocated memory, no point in doing
    it twice.

    Link: http://lkml.kernel.org/r/1548057848-15136-14-git-send-email-rppt@linux.ibm.com
    Signed-off-by: Mike Rapoport
    Acked-by: Geert Uytterhoeven [m68k]
    Cc: Catalin Marinas
    Cc: Christophe Leroy
    Cc: Christoph Hellwig
    Cc: "David S. Miller"
    Cc: Dennis Zhou
    Cc: Greentime Hu
    Cc: Greg Kroah-Hartman
    Cc: Guan Xuetao
    Cc: Guo Ren
    Cc: Guo Ren [c-sky]
    Cc: Heiko Carstens
    Cc: Juergen Gross [Xen]
    Cc: Mark Salter
    Cc: Matt Turner
    Cc: Max Filippov
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Paul Burton
    Cc: Petr Mladek
    Cc: Richard Weinberger
    Cc: Rich Felker
    Cc: Rob Herring
    Cc: Rob Herring
    Cc: Russell King
    Cc: Stafford Horne
    Cc: Tony Luck
    Cc: Vineet Gupta
    Cc: Yoshinori Sato
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     

08 Mar, 2019

1 commit

  • There are several early memory allocations in arch/ code that use
    memblock_phys_alloc() to allocate memory, convert the returned physical
    address to the virtual address and then set the allocated memory to
    zero.

    Exactly the same behaviour can be achieved simply by calling
    memblock_alloc(): it allocates the memory in the same way as
    memblock_phys_alloc(), then it performs the phys_to_virt() conversion
    and clears the allocated memory.

    Replace the longer sequence with a simpler call to memblock_alloc().

    Link: http://lkml.kernel.org/r/1546248566-14910-6-git-send-email-rppt@linux.ibm.com
    Signed-off-by: Mike Rapoport
    Cc: Arnd Bergmann
    Cc: Benjamin Herrenschmidt
    Cc: Christoph Hellwig
    Cc: "David S. Miller"
    Cc: Greentime Hu
    Cc: Guan Xuetao
    Cc: Heiko Carstens
    Cc: Jonas Bonn
    Cc: Mark Salter
    Cc: Martin Schwidefsky
    Cc: Michael Ellerman
    Cc: Michal Hocko
    Cc: Michal Simek
    Cc: Michal Simek
    Cc: Paul Mackerras
    Cc: Rich Felker
    Cc: Russell King
    Cc: Stafford Horne
    Cc: Stefan Kristiansson
    Cc: Vincent Chen
    Cc: Yoshinori Sato
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     

28 Feb, 2019

1 commit

  • …rnd/playground into timers/2038

    Pull additional syscall ABI cleanup for y2038 from Arnd Bergmann:

    This is a follow-up to the y2038 syscall patches already merged in the tip
    tree. As the final 32-bit RISC-V syscall ABI is still being decided on,
    this is the last chance to make a few corrections to leave out interfaces
    based on 32-bit time_t along with the old off_t and rlimit types.

    The series achieves this in a few steps:

    - A couple of bug fixes for minor regressions I introduced
    in the original series

    - A couple of older patches from Yury Norov that I had never
    merged in the past, these fix up the openat/open_by_handle_at and
    getrlimit/setrlimit syscalls to disallow the old versions of off_t
    and rlimit.

    - Hiding the deprecated system calls behind an #ifdef in
    include/uapi/asm-generic/unistd.h

    - Change arch/riscv to drop all these ABIs.

    Originally, the plan was to also leave these out on C-Sky, but that now
    has a glibc port that uses the older interfaces, so we need to leave
    them in place.

    Thomas Gleixner
     

20 Feb, 2019

1 commit

  • We don't want new architectures to even provide the old 32-bit time_t
    based system calls any more, or define the syscall number macros.

    Add a new __ARCH_WANT_TIME32_SYSCALLS macro that gets enabled for all
    existing 32-bit architectures using the generic system call table,
    so we don't change any current behavior.
    Since this symbol is evaluated in user space as well, we cannot use
    a Kconfig CONFIG_* macro but have to define it in uapi/asm/unistd.h.

    On 64-bit architectures, the same system call numbers mostly refer to
    the system calls we want to keep, as they already pass 64-bit time_t.

    As new architectures no longer provide these, we need new exceptions
    in checksyscalls.sh.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

19 Feb, 2019

2 commits

  • The newer prlimit64 syscall provides all the functionality of getrlimit
    and setrlimit syscalls and adds the pid of target process, so future
    architectures won't need to include getrlimit and setrlimit.

    Therefore drop getrlimit and setrlimit syscalls from the generic syscall
    list unless __ARCH_WANT_SET_GET_RLIMIT is defined by the architecture's
    unistd.h prior to including asm-generic/unistd.h, and adjust all
    architectures using the generic syscall list to define it so that no
    in-tree architectures are affected.

    Cc: Arnd Bergmann
    Cc: linux-arch@vger.kernel.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-hexagon@vger.kernel.org
    Cc: uclinux-h8-devel@lists.sourceforge.jp
    Signed-off-by: Yury Norov
    Acked-by: Arnd Bergmann
    Acked-by: Mark Salter [c6x]
    Acked-by: James Hogan [metag]
    Acked-by: Ley Foon Tan [nios2]
    Acked-by: Stafford Horne [openrisc]
    Acked-by: Will Deacon [arm64]
    Acked-by: Vineet Gupta #arch/arc bits
    Signed-off-by: Yury Norov
    Signed-off-by: Arnd Bergmann

    Yury Norov
     
  • All new 32-bit architectures should have 64-bit userspace off_t type, but
    existing architectures has 32-bit ones.

    To enforce the rule, new config option is added to arch/Kconfig that defaults
    ARCH_32BIT_OFF_T to be disabled for new 32-bit architectures. All existing
    32-bit architectures enable it explicitly.

    New option affects force_o_largefile() behaviour. Namely, if userspace
    off_t is 64-bits long, we have no reason to reject user to open big files.

    Note that even if architectures has only 64-bit off_t in the kernel
    (arc, c6x, h8300, hexagon, nios2, openrisc, and unicore32),
    a libc may use 32-bit off_t, and therefore want to limit the file size
    to 4GB unless specified differently in the open flags.

    Signed-off-by: Yury Norov
    Acked-by: Arnd Bergmann
    Signed-off-by: Yury Norov
    Signed-off-by: Arnd Bergmann

    Yury Norov
     

02 Feb, 2019

1 commit

  • Most architectures do not export shmparam.h to user-space.

    $ find arch -name shmparam.h | sort
    arch/alpha/include/asm/shmparam.h
    arch/arc/include/asm/shmparam.h
    arch/arm64/include/asm/shmparam.h
    arch/arm/include/asm/shmparam.h
    arch/csky/include/asm/shmparam.h
    arch/ia64/include/asm/shmparam.h
    arch/mips/include/asm/shmparam.h
    arch/nds32/include/asm/shmparam.h
    arch/nios2/include/asm/shmparam.h
    arch/parisc/include/asm/shmparam.h
    arch/powerpc/include/asm/shmparam.h
    arch/s390/include/asm/shmparam.h
    arch/sh/include/asm/shmparam.h
    arch/sparc/include/asm/shmparam.h
    arch/x86/include/asm/shmparam.h
    arch/xtensa/include/asm/shmparam.h

    Strangely, some users of the asm-generic wrapper export shmparam.h

    $ git grep 'generic-y += shmparam.h'
    arch/c6x/include/uapi/asm/Kbuild:generic-y += shmparam.h
    arch/h8300/include/uapi/asm/Kbuild:generic-y += shmparam.h
    arch/hexagon/include/uapi/asm/Kbuild:generic-y += shmparam.h
    arch/m68k/include/uapi/asm/Kbuild:generic-y += shmparam.h
    arch/microblaze/include/uapi/asm/Kbuild:generic-y += shmparam.h
    arch/openrisc/include/uapi/asm/Kbuild:generic-y += shmparam.h
    arch/riscv/include/asm/Kbuild:generic-y += shmparam.h
    arch/unicore32/include/uapi/asm/Kbuild:generic-y += shmparam.h

    The newly added riscv correctly creates the asm-generic wrapper
    in the kernel space, but the others (c6x, h8300, hexagon, m68k,
    microblaze, openrisc, unicore32) create the one in the uapi directory.

    Digging into the git history, now I guess fcc8487d477a ("uapi:
    export all headers under uapi directories") was the misconversion.
    Prior to that commit, no architecture exported to shmparam.h
    As its commit description said, that commit exported shmparam.h
    for c6x, h8300, hexagon, m68k, openrisc, unicore32.

    83f0124ad81e ("microblaze: remove asm-generic wrapper headers")
    accidentally exported shmparam.h for microblaze.

    This commit unexports shmparam.h for those architectures.

    There is no more reason to export include/uapi/asm-generic/shmparam.h,
    so it has been moved to include/asm-generic/shmparam.h

    Link: http://lkml.kernel.org/r/1546904307-11124-1-git-send-email-yamada.masahiro@socionext.com
    Signed-off-by: Masahiro Yamada
    Acked-by: Stafford Horne
    Cc: Geert Uytterhoeven
    Cc: Michal Simek
    Cc: Yoshinori Sato
    Cc: Richard Kuo
    Cc: Guan Xuetao
    Cc: Nicolas Dichtel
    Cc: Arnd Bergmann
    Cc: Aurelien Jacquiot
    Cc: Greentime Hu
    Cc: Guo Ren
    Cc: Palmer Dabbelt
    Cc: Stefan Kristiansson
    Cc: Mark Salter
    Cc: Albert Ou
    Cc: Jonas Bonn
    Cc: Vincent Chen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     

07 Jan, 2019

1 commit


06 Jan, 2019

3 commits

  • Now that Kbuild automatically creates asm-generic wrappers for missing
    mandatory headers, it is redundant to list the same headers in
    generic-y and mandatory-y.

    Suggested-by: Sam Ravnborg
    Signed-off-by: Masahiro Yamada
    Acked-by: Sam Ravnborg

    Masahiro Yamada
     
  • These comments are leftovers of commit fcc8487d477a ("uapi: export all
    headers under uapi directories").

    Prior to that commit, exported headers must be explicitly added to
    header-y. Now, all headers under the uapi/ directories are exported.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Merge more updates from Andrew Morton:

    - procfs updates

    - various misc bits

    - lib/ updates

    - epoll updates

    - autofs

    - fatfs

    - a few more MM bits

    * emailed patches from Andrew Morton : (58 commits)
    mm/page_io.c: fix polled swap page in
    checkpatch: add Co-developed-by to signature tags
    docs: fix Co-Developed-by docs
    drivers/base/platform.c: kmemleak ignore a known leak
    fs: don't open code lru_to_page()
    fs/: remove caller signal_pending branch predictions
    mm/: remove caller signal_pending branch predictions
    arch/arc/mm/fault.c: remove caller signal_pending_branch predictions
    kernel/sched/: remove caller signal_pending branch predictions
    kernel/locking/mutex.c: remove caller signal_pending branch predictions
    mm: select HAVE_MOVE_PMD on x86 for faster mremap
    mm: speed up mremap by 20x on large regions
    mm: treewide: remove unused address argument from pte_alloc functions
    initramfs: cleanup incomplete rootfs
    scripts/gdb: fix lx-version string output
    kernel/kcov.c: mark write_comp_data() as notrace
    kernel/sysctl: add panic_print into sysctl
    panic: add options to print system info when panic happens
    bfs: extra sanity checking and static inode bitmap
    exec: separate MM_ANONPAGES and RLIMIT_STACK accounting
    ...

    Linus Torvalds
     

05 Jan, 2019

1 commit

  • When testing in userspace, UBSAN pointed out that shifting into the sign
    bit is undefined behaviour. It doesn't really make sense to ask for the
    highest set bit of a negative value, so just turn the argument type into
    an unsigned int.

    Some architectures (eg ppc) already had it declared as an unsigned int,
    so I don't expect too many problems.

    Link: http://lkml.kernel.org/r/20181105221117.31828-1-willy@infradead.org
    Signed-off-by: Matthew Wilcox
    Acked-by: Thomas Gleixner
    Acked-by: Geert Uytterhoeven
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     

04 Jan, 2019

1 commit

  • Nobody has actually used the type (VERIFY_READ vs VERIFY_WRITE) argument
    of the user address range verification function since we got rid of the
    old racy i386-only code to walk page tables by hand.

    It existed because the original 80386 would not honor the write protect
    bit when in kernel mode, so you had to do COW by hand before doing any
    user access. But we haven't supported that in a long time, and these
    days the 'type' argument is a purely historical artifact.

    A discussion about extending 'user_access_begin()' to do the range
    checking resulted this patch, because there is no way we're going to
    move the old VERIFY_xyz interface to that model. And it's best done at
    the end of the merge window when I've done most of my merges, so let's
    just get this done once and for all.

    This patch was mostly done with a sed-script, with manual fix-ups for
    the cases that weren't of the trivial 'access_ok(VERIFY_xyz' form.

    There were a couple of notable cases:

    - csky still had the old "verify_area()" name as an alias.

    - the iter_iov code had magical hardcoded knowledge of the actual
    values of VERIFY_{READ,WRITE} (not that they mattered, since nothing
    really used it)

    - microblaze used the type argument for a debug printout

    but other than those oddities this should be a total no-op patch.

    I tried to fix up all architectures, did fairly extensive grepping for
    access_ok() uses, and the changes are trivial, but I may have missed
    something. Any missed conversion should be trivially fixable, though.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

20 Dec, 2018

1 commit

  • If we want to map memory from the DMA allocator to userspace it must be
    zeroed at allocation time to prevent stale data leaks. We already do
    this on most common architectures, but some architectures don't do this
    yet, fix them up, either by passing GFP_ZERO when we use the normal page
    allocator or doing a manual memset otherwise.

    Signed-off-by: Christoph Hellwig
    Acked-by: Geert Uytterhoeven [m68k]
    Acked-by: Sam Ravnborg [sparc]

    Christoph Hellwig
     

14 Dec, 2018

1 commit

  • All architectures except for sparc64 use the dma-direct code in some
    form, and even for sparc64 we had the discussion of a direct mapping
    mode a while ago. In preparation for directly calling the direct
    mapping code don't bother having it optionally but always build the
    code in. This is a minor hardship for some powerpc and arm configs
    that don't pull it in yet (although they should in a relase ot two),
    and sparc64 which currently doesn't need it at all, but it will
    reduce the ifdef mess we'd otherwise need significantly.

    Signed-off-by: Christoph Hellwig
    Acked-by: Jesper Dangaard Brouer
    Tested-by: Jesper Dangaard Brouer
    Tested-by: Tony Luck

    Christoph Hellwig
     

01 Nov, 2018

1 commit


31 Oct, 2018

6 commits

  • Move remaining definitions and declarations from include/linux/bootmem.h
    into include/linux/memblock.h and remove the redundant header.

    The includes were replaced with the semantic patch below and then
    semi-automated removal of duplicated '#include

    @@
    @@
    - #include
    + #include

    [sfr@canb.auug.org.au: dma-direct: fix up for the removal of linux/bootmem.h]
    Link: http://lkml.kernel.org/r/20181002185342.133d1680@canb.auug.org.au
    [sfr@canb.auug.org.au: powerpc: fix up for removal of linux/bootmem.h]
    Link: http://lkml.kernel.org/r/20181005161406.73ef8727@canb.auug.org.au
    [sfr@canb.auug.org.au: x86/kaslr, ACPI/NUMA: fix for linux/bootmem.h removal]
    Link: http://lkml.kernel.org/r/20181008190341.5e396491@canb.auug.org.au
    Link: http://lkml.kernel.org/r/1536927045-23536-30-git-send-email-rppt@linux.vnet.ibm.com
    Signed-off-by: Mike Rapoport
    Signed-off-by: Stephen Rothwell
    Acked-by: Michal Hocko
    Cc: Catalin Marinas
    Cc: Chris Zankel
    Cc: "David S. Miller"
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Greg Kroah-Hartman
    Cc: Guan Xuetao
    Cc: Ingo Molnar
    Cc: "James E.J. Bottomley"
    Cc: Jonas Bonn
    Cc: Jonathan Corbet
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Martin Schwidefsky
    Cc: Matt Turner
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Palmer Dabbelt
    Cc: Paul Burton
    Cc: Richard Kuo
    Cc: Richard Weinberger
    Cc: Rich Felker
    Cc: Russell King
    Cc: Serge Semin
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Vineet Gupta
    Cc: Yoshinori Sato
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • The conversion is done using

    sed -i 's@free_all_bootmem@memblock_free_all@' \
    $(git grep -l free_all_bootmem)

    Link: http://lkml.kernel.org/r/1536927045-23536-26-git-send-email-rppt@linux.vnet.ibm.com
    Signed-off-by: Mike Rapoport
    Acked-by: Michal Hocko
    Cc: Catalin Marinas
    Cc: Chris Zankel
    Cc: "David S. Miller"
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Greg Kroah-Hartman
    Cc: Guan Xuetao
    Cc: Ingo Molnar
    Cc: "James E.J. Bottomley"
    Cc: Jonas Bonn
    Cc: Jonathan Corbet
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Martin Schwidefsky
    Cc: Matt Turner
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Palmer Dabbelt
    Cc: Paul Burton
    Cc: Richard Kuo
    Cc: Richard Weinberger
    Cc: Rich Felker
    Cc: Russell King
    Cc: Serge Semin
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Vineet Gupta
    Cc: Yoshinori Sato
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • The alloc_bootmem_pages() function allocates PAGE_SIZE aligned memory.
    memblock_alloc() with alignment set to PAGE_SIZE does exactly the same
    thing.

    The conversion is done using the following semantic patch:

    @@
    expression e;
    @@
    - alloc_bootmem_pages(e)
    + memblock_alloc(e, PAGE_SIZE)

    Link: http://lkml.kernel.org/r/1536927045-23536-20-git-send-email-rppt@linux.vnet.ibm.com
    Signed-off-by: Mike Rapoport
    Acked-by: Michal Hocko
    Cc: Catalin Marinas
    Cc: Chris Zankel
    Cc: "David S. Miller"
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Greg Kroah-Hartman
    Cc: Guan Xuetao
    Cc: Ingo Molnar
    Cc: "James E.J. Bottomley"
    Cc: Jonas Bonn
    Cc: Jonathan Corbet
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Martin Schwidefsky
    Cc: Matt Turner
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Palmer Dabbelt
    Cc: Paul Burton
    Cc: Richard Kuo
    Cc: Richard Weinberger
    Cc: Rich Felker
    Cc: Russell King
    Cc: Serge Semin
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Vineet Gupta
    Cc: Yoshinori Sato
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • Make it explicit that the caller gets a physical address rather than a
    virtual one.

    This will also allow using meblock_alloc prefix for memblock allocations
    returning virtual address, which is done in the following patches.

    The conversion is done using the following semantic patch:

    @@
    expression e1, e2, e3;
    @@
    (
    - memblock_alloc(e1, e2)
    + memblock_phys_alloc(e1, e2)
    |
    - memblock_alloc_nid(e1, e2, e3)
    + memblock_phys_alloc_nid(e1, e2, e3)
    |
    - memblock_alloc_try_nid(e1, e2, e3)
    + memblock_phys_alloc_try_nid(e1, e2, e3)
    )

    Link: http://lkml.kernel.org/r/1536927045-23536-7-git-send-email-rppt@linux.vnet.ibm.com
    Signed-off-by: Mike Rapoport
    Acked-by: Michal Hocko
    Cc: Catalin Marinas
    Cc: Chris Zankel
    Cc: "David S. Miller"
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Greg Kroah-Hartman
    Cc: Guan Xuetao
    Cc: Ingo Molnar
    Cc: "James E.J. Bottomley"
    Cc: Jonas Bonn
    Cc: Jonathan Corbet
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Martin Schwidefsky
    Cc: Matt Turner
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Palmer Dabbelt
    Cc: Paul Burton
    Cc: Richard Kuo
    Cc: Richard Weinberger
    Cc: Rich Felker
    Cc: Russell King
    Cc: Serge Semin
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Vineet Gupta
    Cc: Yoshinori Sato
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • All architecures use memblock for early memory management. There is no need
    for the CONFIG_HAVE_MEMBLOCK configuration option.

    [rppt@linux.vnet.ibm.com: of/fdt: fixup #ifdefs]
    Link: http://lkml.kernel.org/r/20180919103457.GA20545@rapoport-lnx
    [rppt@linux.vnet.ibm.com: csky: fixups after bootmem removal]
    Link: http://lkml.kernel.org/r/20180926112744.GC4628@rapoport-lnx
    [rppt@linux.vnet.ibm.com: remove stale #else and the code it protects]
    Link: http://lkml.kernel.org/r/1538067825-24835-1-git-send-email-rppt@linux.vnet.ibm.com
    Link: http://lkml.kernel.org/r/1536927045-23536-4-git-send-email-rppt@linux.vnet.ibm.com
    Signed-off-by: Mike Rapoport
    Acked-by: Michal Hocko
    Tested-by: Jonathan Cameron
    Cc: Catalin Marinas
    Cc: Chris Zankel
    Cc: "David S. Miller"
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Greg Kroah-Hartman
    Cc: Guan Xuetao
    Cc: Ingo Molnar
    Cc: "James E.J. Bottomley"
    Cc: Jonas Bonn
    Cc: Jonathan Corbet
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Martin Schwidefsky
    Cc: Matt Turner
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Palmer Dabbelt
    Cc: Paul Burton
    Cc: Richard Kuo
    Cc: Richard Weinberger
    Cc: Rich Felker
    Cc: Russell King
    Cc: Serge Semin
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Vineet Gupta
    Cc: Yoshinori Sato
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • Prefer _THIS_IP_ defined in linux/kernel.h.

    Most definitions of current_text_addr were the same as _THIS_IP_, but
    a few archs had inline assembly instead.

    This patch removes the final call site of current_text_addr, making all
    of the definitions dead code.

    [akpm@linux-foundation.org: fix arch/csky/include/asm/processor.h]
    Link: http://lkml.kernel.org/r/20180911182413.180715-1-ndesaulniers@google.com
    Signed-off-by: Nick Desaulniers
    Cc: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Desaulniers
     

29 Oct, 2018

1 commit

  • The c6x is already using memblock and does most of early memory
    reservations with it, so it was only a matter of removing the bootmem
    initialization and handover of the memory from memblock to bootmem.

    Signed-off-by: Mike Rapoport
    Signed-off-by: Mark Salter

    Mike Rapoport
     

27 Oct, 2018

1 commit

  • Pull Devicetree updates from Rob Herring:
    "A bit bigger than normal as I've been busy this cycle.

    There's a few things with dependencies and a few things subsystem
    maintainers didn't pick up, so I'm taking them thru my tree.

    The fixes from Johan didn't get into linux-next, but they've been
    waiting for some time now and they are what's left of what subsystem
    maintainers didn't pick up.

    Summary:

    - Sync dtc with upstream version v1.4.7-14-gc86da84d30e4

    - Work to get rid of direct accesses to struct device_node name and
    type pointers in preparation for removing them. New helpers for
    parsing DT cpu nodes and conversions to use the helpers. printk
    conversions to %pOFn for printing DT node names. Most went thru
    subystem trees, so this is the remainder.

    - Fixes to DT child node lookups to actually be restricted to child
    nodes instead of treewide.

    - Refactoring of dtb targets out of arch code. This makes the support
    more uniform and enables building all dtbs on c6x, microblaze, and
    powerpc.

    - Various DT binding updates for Renesas r8a7744 SoC

    - Vendor prefixes for Facebook, OLPC

    - Restructuring of some ARM binding docs moving some peripheral
    bindings out of board/SoC binding files

    - New "secure-chosen" binding for secure world settings on ARM

    - Dual licensing of 2 DT IRQ binding headers"

    * tag 'devicetree-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (78 commits)
    ARM: dt: relicense two DT binding IRQ headers
    power: supply: twl4030-charger: fix OF sibling-node lookup
    NFC: nfcmrvl_uart: fix OF child-node lookup
    net: stmmac: dwmac-sun8i: fix OF child-node lookup
    net: bcmgenet: fix OF child-node lookup
    drm/msm: fix OF child-node lookup
    drm/mediatek: fix OF sibling-node lookup
    of: Add missing exports of node name compare functions
    dt-bindings: Add OLPC vendor prefix
    dt-bindings: misc: bk4: Add device tree binding for Liebherr's BK4 SPI bus
    dt-bindings: thermal: samsung: Add SPDX license identifier
    dt-bindings: clock: samsung: Add SPDX license identifiers
    dt-bindings: timer: ostm: Add R7S9210 support
    dt-bindings: phy: rcar-gen2: Add r8a7744 support
    dt-bindings: can: rcar_can: Add r8a7744 support
    dt-bindings: timer: renesas, cmt: Document r8a7744 CMT support
    dt-bindings: watchdog: renesas-wdt: Document r8a7744 support
    dt-bindings: thermal: rcar: Add device tree support for r8a7744
    Documentation: dt: Add binding for /secure-chosen/stdout-path
    dt-bindings: arm: zte: Move sysctrl bindings to their own doc
    ...

    Linus Torvalds
     

26 Oct, 2018

1 commit

  • Pull timekeeping updates from Thomas Gleixner:
    "The timers and timekeeping departement provides:

    - Another large y2038 update with further preparations for providing
    the y2038 safe timespecs closer to the syscalls.

    - An overhaul of the SHCMT clocksource driver

    - SPDX license identifier updates

    - Small cleanups and fixes all over the place"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)
    tick/sched : Remove redundant cpu_online() check
    clocksource/drivers/dw_apb: Add reset control
    clocksource: Remove obsolete CLOCKSOURCE_OF_DECLARE
    clocksource/drivers: Unify the names to timer-* format
    clocksource/drivers/sh_cmt: Add R-Car gen3 support
    dt-bindings: timer: renesas: cmt: document R-Car gen3 support
    clocksource/drivers/sh_cmt: Properly line-wrap sh_cmt_of_table[] initializer
    clocksource/drivers/sh_cmt: Fix clocksource width for 32-bit machines
    clocksource/drivers/sh_cmt: Fixup for 64-bit machines
    clocksource/drivers/sh_tmu: Convert to SPDX identifiers
    clocksource/drivers/sh_mtu2: Convert to SPDX identifiers
    clocksource/drivers/sh_cmt: Convert to SPDX identifiers
    clocksource/drivers/renesas-ostm: Convert to SPDX identifiers
    clocksource: Convert to using %pOFn instead of device_node.name
    tick/broadcast: Remove redundant check
    RISC-V: Request newstat syscalls
    y2038: signal: Change rt_sigtimedwait to use __kernel_timespec
    y2038: socket: Change recvmmsg to use __kernel_timespec
    y2038: sched: Change sched_rr_get_interval to use __kernel_timespec
    y2038: utimes: Rework #ifdef guards for compat syscalls
    ...

    Linus Torvalds
     

05 Oct, 2018

1 commit


02 Oct, 2018

3 commits

  • Enable the 'dtbs' target for c6x. This allows building all the dts
    files in arch/c6x/boot/dts/ for enabled platforms or when
    COMPILE_TEST and OF_ALL_DTBS are enabled.

    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: linux-c6x-dev@linux-c6x.org
    Signed-off-by: Rob Herring

    Rob Herring
     
  • There is nothing arch specific about building dtb files other than their
    location under /arch/*/boot/dts/. Keeping each arch aligned is a pain.
    The dependencies and supported targets are all slightly different.
    Also, a cross-compiler for each arch is needed, but really the host
    compiler preprocessor is perfectly fine for building dtbs. Move the
    build rules to a common location and remove the arch specific ones. This
    is done in a single step to avoid warnings about overriding rules.

    The build dependencies had been a mixture of 'scripts' and/or 'prepare'.
    These pull in several dependencies some of which need a target compiler
    (specifically devicetable-offsets.h) and aren't needed to build dtbs.
    All that is really needed is dtc, so adjust the dependencies to only be
    dtc.

    This change enables support 'dtbs_install' on some arches which were
    missing the target.

    Acked-by: Will Deacon
    Acked-by: Paul Burton
    Acked-by: Ley Foon Tan
    Acked-by: Masahiro Yamada
    Cc: Michal Marek
    Cc: Vineet Gupta
    Cc: Russell King
    Cc: Catalin Marinas
    Cc: Yoshinori Sato
    Cc: Michal Simek
    Cc: Ralf Baechle
    Cc: James Hogan
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Michael Ellerman
    Cc: Chris Zankel
    Cc: Max Filippov
    Cc: linux-kbuild@vger.kernel.org
    Cc: linux-snps-arc@lists.infradead.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: uclinux-h8-devel@lists.sourceforge.jp
    Cc: linux-mips@linux-mips.org
    Cc: nios2-dev@lists.rocketboards.org
    Cc: linuxppc-dev@lists.ozlabs.org
    Cc: linux-xtensa@linux-xtensa.org
    Signed-off-by: Rob Herring

    Rob Herring
     
  • Using the common build support for built-in dtb files just requires
    adding a .dtb.o target to obj-y.

    The dtb now needs to be copied when unflattened because an init section
    is used now.

    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: linux-c6x-dev@linux-c6x.org
    Signed-off-by: Rob Herring

    Rob Herring
     

29 Sep, 2018

1 commit

  • Use the for_each_of_cpu_node iterator to iterate over cpu nodes. This
    has the side effect of defaulting to iterating using "cpu" node names
    in preference to the deprecated (for FDT) device_type == "cpu".

    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: linux-c6x-dev@linux-c6x.org
    Signed-off-by: Rob Herring

    Rob Herring
     

20 Sep, 2018

1 commit


29 Aug, 2018

1 commit

  • New architectures should no longer need stat64, which is not y2038
    safe and has been replaced by statx(). This removes the 'select
    __ARCH_WANT_STAT64' statement from asm-generic/unistd.h and instead
    moves it into the respective asm/unistd.h UAPI header files for each
    architecture that uses it today.

    In the generic file, the system call number and entry points are now
    made conditional, so newly added architectures (e.g. riscv32 or csky)
    will never need to carry backwards compatiblity for it.

    arm64 is the only 64-bit architecture using the asm-generic/unistd.h
    file, and it already sets __ARCH_WANT_NEW_STAT in its headers, and I
    use the same #ifdef here: future 64-bit architectures therefore won't
    see newstat or stat64 any more. They don't suffer from the y2038 time_t
    overflow, but for consistency it seems best to also let them use statx().

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

24 Aug, 2018

1 commit

  • Commit a0f97e06a43c ("kbuild: enable 'make CFLAGS=...' to add
    additional options to CC") renamed CFLAGS to KBUILD_CFLAGS.

    Commit 222d394d30e7 ("kbuild: enable 'make AFLAGS=...' to add
    additional options to AS") renamed AFLAGS to KBUILD_AFLAGS.

    Commit 06c5040cdb13 ("kbuild: enable 'make CPPFLAGS=...' to add
    additional options to CPP") renamed CPPFLAGS to KBUILD_CPPFLAGS.

    For some reason, LDFLAGS was not renamed.

    Using a well-known variable like LDFLAGS may result in accidental
    override of the variable.

    Kbuild generally uses KBUILD_ prefixed variables for the internally
    appended options, so here is one more conversion to sanitize the
    naming convention.

    I did not touch Makefiles under tools/ since the tools build system
    is a different world.

    Signed-off-by: Masahiro Yamada
    Acked-by: Kirill A. Shutemov
    Reviewed-by: Palmer Dabbelt

    Masahiro Yamada
     

02 Aug, 2018

3 commits

  • Almost all architectures include it. Add a ARCH_NO_PREEMPT symbol to
    disable preempt support for alpha, hexagon, non-coldfire m68k and
    user mode Linux.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Masahiro Yamada

    Christoph Hellwig
     
  • Move the source of lib/Kconfig.debug and arch/$(ARCH)/Kconfig.debug to
    the top-level Kconfig. For two architectures that means moving their
    arch-specific symbols in that menu into a new arch Kconfig.debug file,
    and for a few more creating a dummy file so that we can include it
    unconditionally.

    Also move the actual 'Kernel hacking' menu to lib/Kconfig.debug, where
    it belongs.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Masahiro Yamada

    Christoph Hellwig
     
  • Instead of duplicating the source statements in every architecture just
    do it once in the toplevel Kconfig file.

    Note that with this the inclusion of arch/$(SRCARCH/Kconfig moves out of
    the top-level Kconfig into arch/Kconfig so that don't violate ordering
    constraits while keeping a sensible menu structure.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Masahiro Yamada

    Christoph Hellwig
     

05 Jun, 2018

1 commit

  • Pull timers and timekeeping updates from Thomas Gleixner:

    - Core infrastucture work for Y2038 to address the COMPAT interfaces:

    + Add a new Y2038 safe __kernel_timespec and use it in the core
    code

    + Introduce config switches which allow to control the various
    compat mechanisms

    + Use the new config switch in the posix timer code to control the
    32bit compat syscall implementation.

    - Prevent bogus selection of CPU local clocksources which causes an
    endless reselection loop

    - Remove the extra kthread in the clocksource code which has no value
    and just adds another level of indirection

    - The usual bunch of trivial updates, cleanups and fixlets all over the
    place

    - More SPDX conversions

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
    clocksource/drivers/mxs_timer: Switch to SPDX identifier
    clocksource/drivers/timer-imx-tpm: Switch to SPDX identifier
    clocksource/drivers/timer-imx-gpt: Switch to SPDX identifier
    clocksource/drivers/timer-imx-gpt: Remove outdated file path
    clocksource/drivers/arc_timer: Add comments about locking while read GFRC
    clocksource/drivers/mips-gic-timer: Add pr_fmt and reword pr_* messages
    clocksource/drivers/sprd: Fix Kconfig dependency
    clocksource: Move inline keyword to the beginning of function declarations
    timer_list: Remove unused function pointer typedef
    timers: Adjust a kernel-doc comment
    tick: Prefer a lower rating device only if it's CPU local device
    clocksource: Remove kthread
    time: Change nanosleep to safe __kernel_* types
    time: Change types to new y2038 safe __kernel_* types
    time: Fix get_timespec64() for y2038 safe compat interfaces
    time: Add new y2038 safe __kernel_timespec
    posix-timers: Make compat syscalls depend on CONFIG_COMPAT_32BIT_TIME
    time: Introduce CONFIG_COMPAT_32BIT_TIME
    time: Introduce CONFIG_64BIT_TIME in architectures
    compat: Enable compat_get/put_timespec64 always
    ...

    Linus Torvalds