14 Oct, 2015

2 commits


13 Sep, 2015

1 commit

  • Pull CRIS updates from Jesper Nilsson:
    "Mostly removal of old cruft of which we can use a generic version, or
    fixes for code not commonly run in the cris port, but also additions
    to enable some good debug"

    * tag 'cris-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris: (25 commits)
    CRISv10: delete unused lib/dmacopy.c
    CRISv10: delete unused lib/old_checksum.c
    CRIS: fix switch_mm() lockdep splat
    CRISv32: enable LOCKDEP_SUPPORT
    CRIS: add STACKTRACE_SUPPORT
    CRISv32: annotate irq enable in idle loop
    CRISv32: add support for irqflags tracing
    CRIS: UAPI: use generic types.h
    CRIS: UAPI: use generic shmbuf.h
    CRIS: UAPI: use generic msgbuf.h
    CRIS: UAPI: use generic socket.h
    CRIS: UAPI: use generic sembuf.h
    CRIS: UAPI: use generic sockios.h
    CRIS: UAPI: use generic auxvec.h
    CRIS: UAPI: use generic headers via Kbuild
    CRIS: UAPI: fix elf.h export
    CRIS: don't make asm/elf.h depend on asm/user.h
    CRIS: UAPI: fix ptrace.h
    CRISv32: Squash compile warnings for axisflashmap
    CRISv32: Add GPIO driver to the default configs
    ...

    Linus Torvalds
     

12 Sep, 2015

3 commits

  • Merge fourth patch-bomb from Andrew Morton:

    - sys_membarier syscall

    - seq_file interface changes

    - a few misc fixups

    * emailed patches from Andrew Morton :
    revert "ocfs2/dlm: use list_for_each_entry instead of list_for_each"
    mm/early_ioremap: add explicit #include of asm/early_ioremap.h
    fs/seq_file: convert int seq_vprint/seq_printf/etc... returns to void
    selftests: enhance membarrier syscall test
    selftests: add membarrier syscall test
    sys_membarrier(): system-wide memory barrier (generic, x86)
    MODSIGN: fix a compilation warning in extract-cert

    Linus Torvalds
     
  • Newer bitfiles needs the reduced clk even for SMP builds

    Cc: #4.2
    Signed-off-by: Vineet Gupta
    Signed-off-by: Linus Torvalds

    Vineet Gupta
     
  • Here is an implementation of a new system call, sys_membarrier(), which
    executes a memory barrier on all threads running on the system. It is
    implemented by calling synchronize_sched(). It can be used to
    distribute the cost of user-space memory barriers asymmetrically by
    transforming pairs of memory barriers into pairs consisting of
    sys_membarrier() and a compiler barrier. For synchronization primitives
    that distinguish between read-side and write-side (e.g. userspace RCU
    [1], rwlocks), the read-side can be accelerated significantly by moving
    the bulk of the memory barrier overhead to the write-side.

    The existing applications of which I am aware that would be improved by
    this system call are as follows:

    * Through Userspace RCU library (http://urcu.so)
    - DNS server (Knot DNS) https://www.knot-dns.cz/
    - Network sniffer (http://netsniff-ng.org/)
    - Distributed object storage (https://sheepdog.github.io/sheepdog/)
    - User-space tracing (http://lttng.org)
    - Network storage system (https://www.gluster.org/)
    - Virtual routers (https://events.linuxfoundation.org/sites/events/files/slides/DPDK_RCU_0MQ.pdf)
    - Financial software (https://lkml.org/lkml/2015/3/23/189)

    Those projects use RCU in userspace to increase read-side speed and
    scalability compared to locking. Especially in the case of RCU used by
    libraries, sys_membarrier can speed up the read-side by moving the bulk of
    the memory barrier cost to synchronize_rcu().

    * Direct users of sys_membarrier
    - core dotnet garbage collector (https://github.com/dotnet/coreclr/issues/198)

    Microsoft core dotnet GC developers are planning to use the mprotect()
    side-effect of issuing memory barriers through IPIs as a way to implement
    Windows FlushProcessWriteBuffers() on Linux. They are referring to
    sys_membarrier in their github thread, specifically stating that
    sys_membarrier() is what they are looking for.

    To explain the benefit of this scheme, let's introduce two example threads:

    Thread A (non-frequent, e.g. executing liburcu synchronize_rcu())
    Thread B (frequent, e.g. executing liburcu
    rcu_read_lock()/rcu_read_unlock())

    In a scheme where all smp_mb() in thread A are ordering memory accesses
    with respect to smp_mb() present in Thread B, we can change each
    smp_mb() within Thread A into calls to sys_membarrier() and each
    smp_mb() within Thread B into compiler barriers "barrier()".

    Before the change, we had, for each smp_mb() pairs:

    Thread A Thread B
    previous mem accesses previous mem accesses
    smp_mb() smp_mb()
    following mem accesses following mem accesses

    After the change, these pairs become:

    Thread A Thread B
    prev mem accesses prev mem accesses
    sys_membarrier() barrier()
    follow mem accesses follow mem accesses

    As we can see, there are two possible scenarios: either Thread B memory
    accesses do not happen concurrently with Thread A accesses (1), or they
    do (2).

    1) Non-concurrent Thread A vs Thread B accesses:

    Thread A Thread B
    prev mem accesses
    sys_membarrier()
    follow mem accesses
    prev mem accesses
    barrier()
    follow mem accesses

    In this case, thread B accesses will be weakly ordered. This is OK,
    because at that point, thread A is not particularly interested in
    ordering them with respect to its own accesses.

    2) Concurrent Thread A vs Thread B accesses

    Thread A Thread B
    prev mem accesses prev mem accesses
    sys_membarrier() barrier()
    follow mem accesses follow mem accesses

    In this case, thread B accesses, which are ensured to be in program
    order thanks to the compiler barrier, will be "upgraded" to full
    smp_mb() by synchronize_sched().

    * Benchmarks

    On Intel Xeon E5405 (8 cores)
    (one thread is calling sys_membarrier, the other 7 threads are busy
    looping)

    1000 non-expedited sys_membarrier calls in 33s =3D 33 milliseconds/call.

    * User-space user of this system call: Userspace RCU library

    Both the signal-based and the sys_membarrier userspace RCU schemes
    permit us to remove the memory barrier from the userspace RCU
    rcu_read_lock() and rcu_read_unlock() primitives, thus significantly
    accelerating them. These memory barriers are replaced by compiler
    barriers on the read-side, and all matching memory barriers on the
    write-side are turned into an invocation of a memory barrier on all
    active threads in the process. By letting the kernel perform this
    synchronization rather than dumbly sending a signal to every process
    threads (as we currently do), we diminish the number of unnecessary wake
    ups and only issue the memory barriers on active threads. Non-running
    threads do not need to execute such barrier anyway, because these are
    implied by the scheduler context switches.

    Results in liburcu:

    Operations in 10s, 6 readers, 2 writers:

    memory barriers in reader: 1701557485 reads, 2202847 writes
    signal-based scheme: 9830061167 reads, 6700 writes
    sys_membarrier: 9952759104 reads, 425 writes
    sys_membarrier (dyn. check): 7970328887 reads, 425 writes

    The dynamic sys_membarrier availability check adds some overhead to
    the read-side compared to the signal-based scheme, but besides that,
    sys_membarrier slightly outperforms the signal-based scheme. However,
    this non-expedited sys_membarrier implementation has a much slower grace
    period than signal and memory barrier schemes.

    Besides diminishing the number of wake-ups, one major advantage of the
    membarrier system call over the signal-based scheme is that it does not
    need to reserve a signal. This plays much more nicely with libraries,
    and with processes injected into for tracing purposes, for which we
    cannot expect that signals will be unused by the application.

    An expedited version of this system call can be added later on to speed
    up the grace period. Its implementation will likely depend on reading
    the cpu_curr()->mm without holding each CPU's rq lock.

    This patch adds the system call to x86 and to asm-generic.

    [1] http://urcu.so

    membarrier(2) man page:

    MEMBARRIER(2) Linux Programmer's Manual MEMBARRIER(2)

    NAME
    membarrier - issue memory barriers on a set of threads

    SYNOPSIS
    #include

    int membarrier(int cmd, int flags);

    DESCRIPTION
    The cmd argument is one of the following:

    MEMBARRIER_CMD_QUERY
    Query the set of supported commands. It returns a bitmask of
    supported commands.

    MEMBARRIER_CMD_SHARED
    Execute a memory barrier on all threads running on the system.
    Upon return from system call, the caller thread is ensured that
    all running threads have passed through a state where all memory
    accesses to user-space addresses match program order between
    entry to and return from the system call (non-running threads
    are de facto in such a state). This covers threads from all pro=E2=80=90
    cesses running on the system. This command returns 0.

    The flags argument needs to be 0. For future extensions.

    All memory accesses performed in program order from each targeted
    thread is guaranteed to be ordered with respect to sys_membarrier(). If
    we use the semantic "barrier()" to represent a compiler barrier forcing
    memory accesses to be performed in program order across the barrier,
    and smp_mb() to represent explicit memory barriers forcing full memory
    ordering across the barrier, we have the following ordering table for
    each pair of barrier(), sys_membarrier() and smp_mb():

    The pair ordering is detailed as (O: ordered, X: not ordered):

    barrier() smp_mb() sys_membarrier()
    barrier() X X O
    smp_mb() X O O
    sys_membarrier() O O O

    RETURN VALUE
    On success, these system calls return zero. On error, -1 is returned,
    and errno is set appropriately. For a given command, with flags
    argument set to 0, this system call is guaranteed to always return the
    same value until reboot.

    ERRORS
    ENOSYS System call is not implemented.

    EINVAL Invalid arguments.

    Linux 2015-04-15 MEMBARRIER(2)

    Signed-off-by: Mathieu Desnoyers
    Reviewed-by: Paul E. McKenney
    Reviewed-by: Josh Triplett
    Cc: KOSAKI Motohiro
    Cc: Steven Rostedt
    Cc: Nicholas Miell
    Cc: Ingo Molnar
    Cc: Alan Cox
    Cc: Lai Jiangshan
    Cc: Stephen Hemminger
    Cc: Thomas Gleixner
    Cc: Peter Zijlstra
    Cc: David Howells
    Cc: Pranith Kumar
    Cc: Michael Kerrisk
    Cc: Shuah Khan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mathieu Desnoyers
     

11 Sep, 2015

15 commits

  • Merge third patch-bomb from Andrew Morton:

    - even more of the rest of MM

    - lib/ updates

    - checkpatch updates

    - small changes to a few scruffy filesystems

    - kmod fixes/cleanups

    - kexec updates

    - a dma-mapping cleanup series from hch

    * emailed patches from Andrew Morton : (81 commits)
    dma-mapping: consolidate dma_set_mask
    dma-mapping: consolidate dma_supported
    dma-mapping: cosolidate dma_mapping_error
    dma-mapping: consolidate dma_{alloc,free}_noncoherent
    dma-mapping: consolidate dma_{alloc,free}_{attrs,coherent}
    mm: use vma_is_anonymous() in create_huge_pmd() and wp_huge_pmd()
    mm: make sure all file VMAs have ->vm_ops set
    mm, mpx: add "vm_flags_t vm_flags" arg to do_mmap_pgoff()
    mm: mark most vm_operations_struct const
    namei: fix warning while make xmldocs caused by namei.c
    ipc: convert invalid scenarios to use WARN_ON
    zlib_deflate/deftree: remove bi_reverse()
    lib/decompress_unlzma: Do a NULL check for pointer
    lib/decompressors: use real out buf size for gunzip with kernel
    fs/affs: make root lookup from blkdev logical size
    sysctl: fix int -> unsigned long assignments in INT_MIN case
    kexec: export KERNEL_IMAGE_SIZE to vmcoreinfo
    kexec: align crash_notes allocation to make it be inside one physical page
    kexec: remove unnecessary test in kimage_alloc_crash_control_pages()
    kexec: split kexec_load syscall from kexec core code
    ...

    Linus Torvalds
     
  • Pull late ARM SoC updates from Kevin Hilman:
    "This is a collection of a few late fixes and other misc stuff that had
    dependencies on things being merged from other trees.

    The bulk of the changes are for samsung/exynos SoCs for some changes
    that needed a few minor reworks so ended up a bit late. The others
    are mainly for qcom SoCs: a couple fixes and some DTS updates"

    * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (37 commits)
    ARM: multi_v7_defconfig: Enable PBIAS regulator
    soc: qcom: smd: Correct fBLOCKREADINTR handling
    soc: qcom: smd: Use correct remote processor ID
    soc: qcom: smem: Fix errant private access
    ARM: dts: qcom: msm8974-sony-xperia-honami: Use stdout-path
    ARM: dts: qcom: msm8960-cdp: Use stdout-path
    ARM: dts: qcom: msm8660-surf: Use stdout-path
    ARM: dts: qcom: ipq8064-ap148: Use stdout-path
    ARM: dts: qcom: apq8084-mtp: Use stdout-path
    ARM: dts: qcom: apq8084-ifc6540: Use stdout-path
    ARM: dts: qcom: apq8074-dragonboard: Use stdout-path
    ARM: dts: qcom: apq8064-ifc6410: Use stdout-path
    ARM: dts: qcom: apq8064-cm-qs600: Use stdout-path
    ARM: dts: qcom: Label serial nodes for aliasing and stdout-path
    reset: ath79: Fix missing spin_lock_init
    reset: Add (devm_)reset_control_get stub functions
    ARM: EXYNOS: switch to using generic cpufreq driver for exynos4x12
    cpufreq: exynos: Remove unselectable rule for arm-exynos-cpufreq.o
    ARM: dts: add iommu property to JPEG device for exynos4
    ARM: dts: enable SPI1 for exynos4412-odroidu3
    ...

    Linus Torvalds
     
  • Pull more kvm updates from Paolo Bonzini:
    "ARM:
    - Full debug support for arm64
    - Active state switching for timer interrupts
    - Lazy FP/SIMD save/restore for arm64
    - Generic ARMv8 target

    PPC:
    - Book3S: A few bug fixes
    - Book3S: Allow micro-threading on POWER8

    x86:
    - Compiler warnings

    Generic:
    - Adaptive polling for guest halt"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (49 commits)
    kvm: irqchip: fix memory leak
    kvm: move new trace event outside #ifdef CONFIG_KVM_ASYNC_PF
    KVM: trace kvm_halt_poll_ns grow/shrink
    KVM: dynamic halt-polling
    KVM: make halt_poll_ns per-vCPU
    Silence compiler warning in arch/x86/kvm/emulate.c
    kvm: compile process_smi_save_seg_64() only for x86_64
    KVM: x86: avoid uninitialized variable warning
    KVM: PPC: Book3S: Fix typo in top comment about locking
    KVM: PPC: Book3S: Fix size of the PSPB register
    KVM: PPC: Book3S HV: Exit on H_DOORBELL if HOST_IPI is set
    KVM: PPC: Book3S HV: Fix race in starting secondary threads
    KVM: PPC: Book3S: correct width in XER handling
    KVM: PPC: Book3S HV: Fix preempted vcore stolen time calculation
    KVM: PPC: Book3S HV: Fix preempted vcore list locking
    KVM: PPC: Book3S HV: Implement H_CLEAR_REF and H_CLEAR_MOD
    KVM: PPC: Book3S HV: Fix bug in dirty page tracking
    KVM: PPC: Book3S HV: Fix race in reading change bit when removing HPTE
    KVM: PPC: Book3S HV: Implement dynamic micro-threading on POWER8
    KVM: PPC: Book3S HV: Make use of unused threads when running guests
    ...

    Linus Torvalds
     
  • Pull xen terminology fixes from David Vrabel:
    "Use the correct GFN/BFN terms more consistently"

    * tag 'for-linus-4.3-rc0b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen/xenbus: Rename the variable xen_store_mfn to xen_store_gfn
    xen/privcmd: Further s/MFN/GFN/ clean-up
    hvc/xen: Further s/MFN/GFN clean-up
    video/xen-fbfront: Further s/MFN/GFN clean-up
    xen/tmem: Use xen_page_to_gfn rather than pfn_to_gfn
    xen: Use correctly the Xen memory terminologies
    arm/xen: implement correctly pfn_to_mfn
    xen: Make clear that swiotlb and biomerge are dealing with DMA address

    Linus Torvalds
     
  • Pull microblaze update from Michal Simek.

    * 'next' of git://git.monstr.eu/linux-2.6-microblaze:
    elf-em.h: move EM_MICROBLAZE to the common header

    Linus Torvalds
     
  • Pull hexagon updates from Richard Kuo:
    "Just two fixes -- one for a uapi header and one for a timer interface"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel:
    Revert "Hexagon: fix signal.c compile error"
    hexagon/time: Migrate to new 'set-state' interface

    Linus Torvalds
     
  • Almost everyone implements dma_set_mask the same way, although some time
    that's hidden in ->set_dma_mask methods.

    This patch consolidates those into a common implementation that either
    calls ->set_dma_mask if present or otherwise uses the default
    implementation. Some architectures used to only call ->set_dma_mask
    after the initial checks, and those instance have been fixed to do the
    full work. h8300 implemented dma_set_mask bogusly as a no-ops and has
    been fixed.

    Unfortunately some architectures overload unrelated semantics like changing
    the dma_ops into it so we still need to allow for an architecture override
    for now.

    [jcmvbkbc@gmail.com: fix xtensa]
    Signed-off-by: Christoph Hellwig
    Cc: Arnd Bergmann
    Cc: Russell King
    Cc: Catalin Marinas
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Cc: Michal Simek
    Cc: Jonas Bonn
    Cc: Chris Metcalf
    Cc: Guan Xuetao
    Cc: Ralf Baechle
    Cc: Benjamin Herrenschmidt
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Cc: Andy Shevchenko
    Signed-off-by: Max Filippov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Most architectures just call into ->dma_supported, but some also return 1
    if the method is not present, or 0 if no dma ops are present (although
    that should never happeb). Consolidate this more broad version into
    common code.

    Also fix h8300 which inorrectly always returned 0, which would have been
    a problem if it's dma_set_mask implementation wasn't a similarly buggy
    noop.

    As a few architectures have much more elaborate implementations, we
    still allow for arch overrides.

    [jcmvbkbc@gmail.com: fix xtensa]
    Signed-off-by: Christoph Hellwig
    Cc: Arnd Bergmann
    Cc: Russell King
    Cc: Catalin Marinas
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Cc: Michal Simek
    Cc: Jonas Bonn
    Cc: Chris Metcalf
    Cc: Guan Xuetao
    Cc: Ralf Baechle
    Cc: Benjamin Herrenschmidt
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Cc: Andy Shevchenko
    Signed-off-by: Max Filippov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Currently there are three valid implementations of dma_mapping_error:

    (1) call ->mapping_error
    (2) check for a hardcoded error code
    (3) always return 0

    This patch provides a common implementation that calls ->mapping_error
    if present, then checks for DMA_ERROR_CODE if defined or otherwise
    returns 0.

    [jcmvbkbc@gmail.com: fix xtensa]
    Signed-off-by: Christoph Hellwig
    Cc: Arnd Bergmann
    Cc: Russell King
    Cc: Catalin Marinas
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Cc: Michal Simek
    Cc: Jonas Bonn
    Cc: Chris Metcalf
    Cc: Guan Xuetao
    Cc: Ralf Baechle
    Cc: Benjamin Herrenschmidt
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Cc: Andy Shevchenko
    Signed-off-by: Max Filippov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Most architectures do not support non-coherent allocations and either
    define dma_{alloc,free}_noncoherent to their coherent versions or stub
    them out.

    Openrisc uses dma_{alloc,free}_attrs to implement them, and only Mips
    implements them directly.

    This patch moves the Openrisc version to common code, and handles the
    DMA_ATTR_NON_CONSISTENT case in the mips dma_map_ops instance.

    Note that actual non-coherent allocations require a dma_cache_sync
    implementation, so if non-coherent allocations didn't work on
    an architecture before this patch they still won't work after it.

    [jcmvbkbc@gmail.com: fix xtensa]
    Signed-off-by: Christoph Hellwig
    Cc: Arnd Bergmann
    Cc: Russell King
    Cc: Catalin Marinas
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Cc: Michal Simek
    Cc: Jonas Bonn
    Cc: Chris Metcalf
    Cc: Guan Xuetao
    Cc: Ralf Baechle
    Cc: Benjamin Herrenschmidt
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Cc: Andy Shevchenko
    Signed-off-by: Max Filippov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Since 2009 we have a nice asm-generic header implementing lots of DMA API
    functions for architectures using struct dma_map_ops, but unfortunately
    it's still missing a lot of APIs that all architectures still have to
    duplicate.

    This series consolidates the remaining functions, although we still need
    arch opt outs for two of them as a few architectures have very
    non-standard implementations.

    This patch (of 5):

    The coherent DMA allocator works the same over all architectures supporting
    dma_map operations.

    This patch consolidates them and converges the minor differences:

    - the debug_dma helpers are now called from all architectures, including
    those that were previously missing them
    - dma_alloc_from_coherent and dma_release_from_coherent are now always
    called from the generic alloc/free routines instead of the ops
    dma-mapping-common.h always includes dma-coherent.h to get the defintions
    for them, or the stubs if the architecture doesn't support this feature
    - checks for ->alloc / ->free presence are removed. There is only one
    magic instead of dma_map_ops without them (mic_dma_ops) and that one
    is x86 only anyway.

    Besides that only x86 needs special treatment to replace a default devices
    if none is passed and tweak the gfp_flags. An optional arch hook is provided
    for that.

    [linux@roeck-us.net: fix build]
    [jcmvbkbc@gmail.com: fix xtensa]
    Signed-off-by: Christoph Hellwig
    Cc: Arnd Bergmann
    Cc: Russell King
    Cc: Catalin Marinas
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Cc: Michal Simek
    Cc: Jonas Bonn
    Cc: Chris Metcalf
    Cc: Guan Xuetao
    Cc: Ralf Baechle
    Cc: Benjamin Herrenschmidt
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Cc: Andy Shevchenko
    Signed-off-by: Guenter Roeck
    Signed-off-by: Max Filippov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Add the additional "vm_flags_t vm_flags" argument to do_mmap_pgoff(),
    rename it to do_mmap(), and re-introduce do_mmap_pgoff() as a simple
    wrapper on top of do_mmap(). Perhaps we should update the callers of
    do_mmap_pgoff() and kill it later.

    This way mpx_mmap() can simply call do_mmap(vm_flags => VM_MPX) and do not
    play with vm internals.

    After this change mmap_region() has a single user outside of mmap.c,
    arch/tile/mm/elf.c:arch_setup_additional_pages(). It would be nice to
    change arch/tile/ and unexport mmap_region().

    [kirill@shutemov.name: fix build]
    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Oleg Nesterov
    Acked-by: Dave Hansen
    Tested-by: Dave Hansen
    Signed-off-by: Kirill A. Shutemov
    Cc: "H. Peter Anvin"
    Cc: Andy Lutomirski
    Cc: Ingo Molnar
    Cc: Minchan Kim
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • With two exceptions (drm/qxl and drm/radeon) all vm_operations_struct
    structs should be constant.

    Signed-off-by: Kirill A. Shutemov
    Reviewed-by: Oleg Nesterov
    Cc: "H. Peter Anvin"
    Cc: Andy Lutomirski
    Cc: Dave Hansen
    Cc: Ingo Molnar
    Cc: Minchan Kim
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • When loading x86 64bit kernel above 4GiB with patched grub2, got kernel
    gunzip error.

    | early console in decompress_kernel
    | decompress_kernel:
    | input: [0x807f2143b4-0x807ff61aee]
    | output: [0x807cc00000-0x807f3ea29b] 0x027ea29c: output_len
    | boot via startup_64
    | KASLR using RDTSC...
    | new output: [0x46fe000000-0x470138cfff] 0x0338d000: output_run_size
    | decompress: [0x46fe000000-0x47007ea29b]
    Cc: Alexandre Courbot
    Cc: Jon Medhurst
    Cc: Stephen Warren
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yinghai Lu
     
  • There are two kexec load syscalls, kexec_load another and kexec_file_load.
    kexec_file_load has been splited as kernel/kexec_file.c. In this patch I
    split kexec_load syscall code to kernel/kexec.c.

    And add a new kconfig option KEXEC_CORE, so we can disable kexec_load and
    use kexec_file_load only, or vice verse.

    The original requirement is from Ted Ts'o, he want kexec kernel signature
    being checked with CONFIG_KEXEC_VERIFY_SIG enabled. But kexec-tools use
    kexec_load syscall can bypass the checking.

    Vivek Goyal proposed to create a common kconfig option so user can compile
    in only one syscall for loading kexec kernel. KEXEC/KEXEC_FILE selects
    KEXEC_CORE so that old config files still work.

    Because there's general code need CONFIG_KEXEC_CORE, so I updated all the
    architecture Kconfig with a new option KEXEC_CORE, and let KEXEC selects
    KEXEC_CORE in arch Kconfig. Also updated general kernel code with to
    kexec_load syscall.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Dave Young
    Cc: Eric W. Biederman
    Cc: Vivek Goyal
    Cc: Petr Tesarik
    Cc: Theodore Ts'o
    Cc: Josh Boyer
    Cc: David Howells
    Cc: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Young
     

10 Sep, 2015

19 commits

  • The linux/audit.h header uses EM_MICROBLAZE in order to define
    AUDIT_ARCH_MICROBLAZE, but it's only available in the microblaze
    asm headers. Move it to the common elf-em.h header so that the
    define can be used on non-microblaze systems. Otherwise we get
    build errors that EM_MICROBLAZE isn't defined when we try to use
    the AUDIT_ARCH_MICROBLAZE symbol.

    Signed-off-by: Mike Frysinger
    Signed-off-by: Michal Simek

    Mike Frysinger
     
  • Qualcomm ARM Based Device Tree Updates for v4.3-rc2

    * Add labels for serial nodes to be used for aliasing and stdout-path
    * Add stdout-path for APQ8064 Compulab QS600
    * Add stdout-path for APQ8064 Inforce 6410
    * Add stdout-path for APQ8074 Dragonboard
    * Add stdout-path for APQ8084 Inforce 6540
    * Add stdout-path for APQ8084 MTP
    * Add stdout-path for IPQ8064 AP148
    * Add stdout-path for MSM8660 Surf
    * Add stdout-path for MSM8960 CDP
    * Add stdout-path for MSM8974 Xperia Honami

    * tag 'qcom-dt-for-4.3-rc2' of git://codeaurora.org/quic/kernel/agross-msm: (24 commits)
    ARM: dts: qcom: msm8974-sony-xperia-honami: Use stdout-path
    ARM: dts: qcom: msm8960-cdp: Use stdout-path
    ARM: dts: qcom: msm8660-surf: Use stdout-path
    ARM: dts: qcom: ipq8064-ap148: Use stdout-path
    ARM: dts: qcom: apq8084-mtp: Use stdout-path
    ARM: dts: qcom: apq8084-ifc6540: Use stdout-path
    ARM: dts: qcom: apq8074-dragonboard: Use stdout-path
    ARM: dts: qcom: apq8064-ifc6410: Use stdout-path
    ARM: dts: qcom: apq8064-cm-qs600: Use stdout-path
    ARM: dts: qcom: Label serial nodes for aliasing and stdout-path
    ARM: dts: qs600: Add real regulators to sdcc
    ARM: dts: ifc6410: add real regulators for sdcc nodes.
    ARM: dts: apq8064: remove temporary fixed regulator for mmc
    ARM: dts: apq8064: fix missing gsbi cell-index
    ARM: dts: apq8064: Add DT support for GSBI6 and for UART pin mux
    ARM: dts: apq8064: add pm8921 mpp support
    ARM: dts: apq8064: Add pm8921 mfd and its gpio node
    ARM: dts: msm8974: Add smem reservation and node
    ARM: dts: msm8974: Add tcsr mutex node
    ARM: dts: qcom: Add ks8851 node for wired ethernet
    ...

    Kevin Hilman
     
  • * next/defconfig: (45 commits)
    ARM: multi_v7_defconfig: Enable PBIAS regulator
    ARM: add TC2 PM support to multi_v7_defconfig
    ARM: tegra: Update multi_v7_defconfig
    ARM: tegra: Update default configuration
    ARM: at91/defconfig: at91_dt: remove ARM_AT91_ETHER
    ARM: at91/defconfig: at91_dt: enable DRM hlcdc support
    ARM: at91: at91_dt_defconfig: enable ISI and ov2640 support
    ARM: multi_v7_defconfig: Enable Allwinner P2WI, PWM, DMA_SUN6I, cryptodev
    ARM: sunxi_defconfig: Enable DMA_SUN6I, P2WI, PWM, cryptodev, EXTCON, FHANDLE
    ARM: shmobile: Enable fixed voltage regulator in shmobile_defconfig
    ARM: multi_v7_defconfig: Select MX6UL and MX7D
    ARM: prima2_defconfig: enable build for hwspinlock
    ARM: prima2_defconfig: enable build for RTC
    ARM: prima2_defconfig: enable build for misc input
    ARM: prima2_defconfig: enable build for SiRFSoC SDHC host
    ARM: prima2_defconfig: fix the outdated defconfig
    ARM: imx_v6_v7_defconfig: Select CONFIG_IKCONFIG_PROC
    ARM: defconfig: orion5x: add DT support
    ARM: qcom_defconfig: Enable options for KS8851 ethernet
    ARM: multi_v7_defconfig: Enable support for PWM Regulators
    ...

    Kevin Hilman
     
  • PBIAS regulator is required for MMC module in OMAP2, OMAP3, OMAP4,
    OMAP5 and DRA7 SoCs. Enable it here.

    Signed-off-by: Kishon Vijay Abraham I
    Signed-off-by: Kevin Hilman

    Kishon Vijay Abraham I
     
  • * drivers/reset:
    reset: ath79: Fix missing spin_lock_init
    reset: Add (devm_)reset_control_get stub functions
    reset: reset-zynq: Adding support for Xilinx Zynq reset controller.
    docs: dts: Added documentation for Xilinx Zynq Reset Controller bindings.
    MIPS: ath79: Add the reset controller to the AR9132 dtsi
    reset: Add a driver for the reset controller on the AR71XX/AR9XXX
    devicetree: Add bindings for the ATH79 reset controller
    reset: socfpga: Update reset-socfpga to read the altr,modrst-offset property
    doc: dt: add documentation for lpc1850-rgu reset driver
    reset: add driver for lpc18xx rgu
    reset: sti: constify of_device_id array
    ARM: STi: DT: Move reset controller constants into common location
    MAINTAINERS: add include/dt-bindings/reset path to reset controller entry

    Kevin Hilman
     
  • Use stdout-path so that we don't have to put the console on the
    kernel command line.

    Cc: Tim Bird
    Cc: Bjorn Andersson
    Signed-off-by: Stephen Boyd

    Stephen Boyd
     
  • Use stdout-path so that we don't have to put the console on the
    kernel command line.

    Signed-off-by: Stephen Boyd

    Stephen Boyd
     
  • Use stdout-path so that we don't have to put the console on the
    kernel command line.

    Signed-off-by: Stephen Boyd

    Stephen Boyd
     
  • Use stdout-path so that we don't have to put the console on the
    kernel command line.

    Cc: Mathieu Olivari
    Signed-off-by: Stephen Boyd

    Stephen Boyd
     
  • Use stdout-path so that we don't have to put the console on the
    kernel command line.

    Signed-off-by: Stephen Boyd

    Stephen Boyd
     
  • Use stdout-path so that we don't have to put the console on the
    kernel command line.

    Signed-off-by: Stephen Boyd

    Stephen Boyd
     
  • Use stdout-path so that we don't have to put the console on the
    kernel command line.

    Signed-off-by: Stephen Boyd

    Stephen Boyd
     
  • Use stdout-path so that we don't have to put the console on the
    kernel command line.

    Signed-off-by: Stephen Boyd

    Stephen Boyd
     
  • Use stdout-path so that we don't have to put the console on the
    kernel command line.

    Cc: Mike Rapoport
    Cc: Igor Grinberg
    Signed-off-by: Stephen Boyd

    Stephen Boyd
     
  • Add a label to the serial nodes that are being used for the
    console.

    Signed-off-by: Stephen Boyd

    Stephen Boyd
     
  • Qualcomm ARM Based Device Tree Updates for v4.3

    * Switch to use pinctrl compatible for GPIOs
    * Add RPM regulators for MSM8960
    * Add SPI Ethernet support on MSM8960 CDP
    * Add SMEM support along with dependencies
    * Add PM8921 support for GPIO and MPP
    * Fix GSBI cell index
    * Switch to use real regulators on APQ8064 w/ SDCC

    Andy Gross
     
  • Pull metag updates from James Hogan:
    "Metag architecture changes for v4.3.

    Just a couple of changes for v4.3-rc1. A preparatory IRQ patch to
    prepare for moving irq_data struct members, and a tweak to
    Documentation/features since Meta2 could support THP"

    * tag 'metag-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag:
    Documentation/features/vm: Meta2 is capable of THP
    metag/irq: Use access helper irq_data_get_affinity_mask()

    Linus Torvalds
     
  • Pull nios2 updates from Ley Foon Tan:

    - add defconfig and device tree for max 10 support
    - migrate to new 'set-state' interface for timer
    - fix unaligned handler
    - MAINTAINERS: update nios2 git repo

    * tag 'nios2-v4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2:
    nios2: add Max10 defconfig
    nios2: Add Max10 device tree
    MAINTAINERS: update nios2 git repo
    nios2: remove unused statistic counters
    nios2: fixed variable imm16 to s16
    nios2/time: Migrate to new 'set-state' interface

    Linus Torvalds
     
  • This reverts commit f3f601c1d2728f02544cfd143eaa82e5398b3e9b.

    UAPI headers cannot use "uapi/" in their paths by design -- when they're
    installed, they do not have the uapi/ prefix. Otherwise doing so breaks
    userland badly.

    Signed-off-by: Mike Frysinger
    Signed-off-by: Richard Kuo

    Mike Frysinger