28 Feb, 2018

1 commit

  • commit 6ac5a11dc674bc5016ea716e8082fff61f524dc1 upstream.

    Xtensa memory initialization code frees high memory pages without
    checking whether they are in the reserved memory regions or not. That
    results in invalid value of totalram_pages and duplicate page usage by
    CMA and highmem. It produces a bunch of BUGs at startup looking like
    this:

    BUG: Bad page state in process swapper pfn:70800
    page:be60c000 count:0 mapcount:-127 mapping: (null) index:0x1
    flags: 0x80000000()
    raw: 80000000 00000000 00000001 ffffff80 00000000 be60c014 be60c014 0000000a
    page dumped because: nonzero mapcount
    Modules linked in:
    CPU: 0 PID: 1 Comm: swapper Tainted: G B 4.16.0-rc1-00015-g7928b2cbe55b-dirty #23
    Stack:
    bd839d33 00000000 00000018 ba97b64c a106578c bd839d70 be60c000 00000000
    a1378054 bd86a000 00000003 ba97b64c a1066166 bd839da0 be60c000 ffe00000
    a1066b58 bd839dc0 be504000 00000000 000002f4 bd838000 00000000 0000001e
    Call Trace:
    [] bad_page+0xac/0xd0
    [] free_pages_check_bad+0x34/0x4c
    [] __free_pages_ok+0xae/0x14c
    [] __free_pages+0x30/0x64
    [] init_cma_reserved_pageblock+0x35/0x44
    [] cma_init_reserved_areas+0xf4/0x148
    [] do_one_initcall+0x80/0xf8
    [] kernel_init_freeable+0xda/0x13c
    [] kernel_init+0x9/0xd0
    [] ret_from_kernel_thread+0xc/0x18

    Only free high memory pages that are not reserved.

    Cc: stable@vger.kernel.org
    Signed-off-by: Max Filippov
    Signed-off-by: Greg Kroah-Hartman

    Max Filippov
     

17 Feb, 2018

1 commit

  • commit ca47480921587ae30417dd234a9f79af188e3666 upstream.

    Return 0 if the operation was successful, not the userspace memory
    value. Check that userspace value equals passed oldval, not itself.
    Don't update *uval if the value wasn't read from userspace memory.

    This fixes process hang due to infinite loop in futex_lock_pi.
    It also fixes a bunch of glibc tests nptl/tst-mutexpi*.

    Signed-off-by: Max Filippov
    Signed-off-by: Greg Kroah-Hartman

    Max Filippov
     

17 Aug, 2017

3 commits

  • commit 7f81e55c737a8fa82c71f290945d729a4902f8d2 upstream.

    csum_partial and csum_partial_copy_generic are defined unconditionally
    and are available even when CONFIG_NET is disabled. They are used not
    only by the network drivers, but also by scsi and media.
    Don't limit these functions export by CONFIG_NET.

    Signed-off-by: Max Filippov
    Signed-off-by: Greg Kroah-Hartman

    Max Filippov
     
  • commit bc652eb6a0d5cffaea7dc8e8ad488aab2a1bf1ed upstream.

    Functions clear_user_highpage, copy_user_highpage, flush_dcache_page,
    local_flush_cache_range and local_flush_cache_page may be used from
    modules. Export them.

    Signed-off-by: Max Filippov
    Signed-off-by: Greg Kroah-Hartman

    Max Filippov
     
  • commit 6d0f581d1768d3eaba15776e7dd1fdfec10cfe36 upstream.

    Currently building kernel for xtensa core with aliasing WT cache fails
    with the following messages:

    mm/memory.c:2152: undefined reference to `flush_dcache_page'
    mm/memory.c:2332: undefined reference to `local_flush_cache_page'
    mm/memory.c:1919: undefined reference to `local_flush_cache_range'
    mm/memory.c:4179: undefined reference to `copy_to_user_page'
    mm/memory.c:4183: undefined reference to `copy_from_user_page'

    This happens because implementation of these functions is only compiled
    when data cache is WB, which looks wrong: even when data cache doesn't
    need flushing it still needs invalidation. The functions like
    __flush_[invalidate_]dcache_* are correctly defined for both WB and WT
    caches (and even if they weren't that'd still be ok, just slower).

    Fix this by providing the same implementation of the above functions for
    both WB and WT cache.

    Signed-off-by: Max Filippov
    Signed-off-by: Greg Kroah-Hartman

    Max Filippov
     

24 Jun, 2017

1 commit

  • commit 1be7107fbe18eed3e319a6c3e83c78254b693acb upstream.

    Stack guard page is a useful feature to reduce a risk of stack smashing
    into a different mapping. We have been using a single page gap which
    is sufficient to prevent having stack adjacent to a different mapping.
    But this seems to be insufficient in the light of the stack usage in
    userspace. E.g. glibc uses as large as 64kB alloca() in many commonly
    used functions. Others use constructs liks gid_t buffer[NGROUPS_MAX]
    which is 256kB or stack strings with MAX_ARG_STRLEN.

    This will become especially dangerous for suid binaries and the default
    no limit for the stack size limit because those applications can be
    tricked to consume a large portion of the stack and a single glibc call
    could jump over the guard page. These attacks are not theoretical,
    unfortunatelly.

    Make those attacks less probable by increasing the stack guard gap
    to 1MB (on systems with 4k pages; but make it depend on the page size
    because systems with larger base pages might cap stack allocations in
    the PAGE_SIZE units) which should cover larger alloca() and VLA stack
    allocations. It is obviously not a full fix because the problem is
    somehow inherent, but it should reduce attack space a lot.

    One could argue that the gap size should be configurable from userspace,
    but that can be done later when somebody finds that the new 1MB is wrong
    for some special case applications. For now, add a kernel command line
    option (stack_guard_gap) to specify the stack gap size (in page units).

    Implementation wise, first delete all the old code for stack guard page:
    because although we could get away with accounting one extra page in a
    stack vma, accounting a larger gap can break userspace - case in point,
    a program run with "ulimit -S -v 20000" failed when the 1MB gap was
    counted for RLIMIT_AS; similar problems could come with RLIMIT_MLOCK
    and strict non-overcommit mode.

    Instead of keeping gap inside the stack vma, maintain the stack guard
    gap as a gap between vmas: using vm_start_gap() in place of vm_start
    (or vm_end_gap() in place of vm_end if VM_GROWSUP) in just those few
    places which need to respect the gap - mainly arch_get_unmapped_area(),
    and and the vma tree's subtree_gap support for that.

    Original-patch-by: Oleg Nesterov
    Original-patch-by: Michal Hocko
    Signed-off-by: Hugh Dickins
    Acked-by: Michal Hocko
    Tested-by: Helge Deller # parisc
    Signed-off-by: Linus Torvalds
    [wt: backport to 4.11: adjust context]
    [wt: backport to 4.9: adjust context ; kernel doc was not in admin-guide]
    Signed-off-by: Willy Tarreau
    Signed-off-by: Greg Kroah-Hartman

    Hugh Dickins
     

17 Jun, 2017

1 commit

  • commit e5c86679d5e864947a52fb31e45a425dea3e7fa9 upstream.

    Linux IRQ #0 is reserved for error reporting and may not be used.
    Increase NR_IRQS for one additional slot and increase
    irq_domain_add_legacy parameter first_irq value to 1, so that linux
    IRQ #0 is not associated with hardware IRQ #0 in legacy IRQ domains.
    Introduce macro XTENSA_PIC_LINUX_IRQ for static translation of xtensa
    PIC hardware IRQ # to linux IRQ #. Use this macro in XTFPGA platform
    data definitions.

    This fixes inability to use hardware IRQ #0 in configurations that don't
    use device tree and allows for non-identity mapping between linux IRQ #
    and hardware IRQ #.

    Signed-off-by: Max Filippov
    Signed-off-by: Greg Kroah-Hartman

    Max Filippov
     

12 Apr, 2017

1 commit

  • commit 2b83878dd74a7c73bedcb6600663c1c46836e8af upstream.

    When __pa is applied to virtual address in uncached KSEG region the
    result is incorrect. Fix it by checking if the original address is in
    the uncached KSEG and adjusting the result. It looks better than masking
    off bits because pfn_valid would correctly work with new __pa results
    and it may be made working in noMMU case, once we get definition for
    uncached memory view.

    This is required for the dma_common_mmap and DMA debug code to work
    correctly: they both indirectly use __pa with coherent DMA addresses.
    In case of DMA debug the visible effect is false reports that an address
    mapped for DMA is accessed by CPU.

    Tested-by: Boris Brezillon
    Reviewed-by: Boris Brezillon
    Signed-off-by: Max Filippov
    Signed-off-by: Greg Kroah-Hartman

    Max Filippov
     

15 Mar, 2017

1 commit

  • commit 4ab18701c66552944188dbcd0ce0012729baab84 upstream.

    FDT tag parsing is not related to whether BLK_DEV_INITRD is configured
    or not, move it out of the corresponding #ifdef/#endif block.
    This fixes passing external FDT to the kernel configured w/o
    BLK_DEV_INITRD support.

    Signed-off-by: Max Filippov
    Signed-off-by: Greg Kroah-Hartman

    Max Filippov
     

09 Feb, 2017

1 commit

  • commit 4b3e6f2ef3722f1a6a97b6034ed492c1a21fd4ae upstream.

    Commit bf15f86b343ed8 ("xtensa: initialize MMU before jumping to reset
    vector") calls MMU management functions even when CONFIG_MMU is not
    selected. That breaks noMMU build on cores with MMU.

    Don't manage MMU when CONFIG_MMU is not selected.

    Signed-off-by: Max Filippov
    Signed-off-by: Greg Kroah-Hartman

    Max Filippov
     

15 Nov, 2016

1 commit


07 Nov, 2016

1 commit

  • Convert printk(KERN_* to pr_* and printk's without level to pr_cont.
    This fixes torn register dumps, stack dumps, stack traces and timestamps
    in the middle of 'Calibrating CPU frequency' message.
    Also drop unused show_code and drop false comment about show_stack.

    Signed-off-by: Max Filippov

    Max Filippov
     

12 Oct, 2016

1 commit

  • Pull uaccess.h prepwork from Al Viro:
    "Preparations to tree-wide switch to use of linux/uaccess.h (which,
    obviously, will allow to start unifying stuff for real). The last step
    there, ie

    PATT='^[[:blank:]]*#[[:blank:]]*include[[:blank:]]*'
    sed -i -e "s!$PATT!#include !" \
    `git grep -l "$PATT"|grep -v ^include/linux/uaccess.h`

    is not taken here - I would prefer to do it once just before or just
    after -rc1. However, everything should be ready for it"

    * 'work.uaccess2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    remove a stray reference to asm/uaccess.h in docs
    sparc64: separate extable_64.h, switch elf_64.h to it
    score: separate extable.h, switch module.h to it
    mips: separate extable.h, switch module.h to it
    x86: separate extable.h, switch sections.h to it
    remove stray include of asm/uaccess.h from cacheflush.h
    mn10300: remove a bogus processor.h->uaccess.h include
    xtensa: split uaccess.h into C and asm sides
    bonding: quit messing with IOCTL
    kill __kernel_ds_p off
    mn10300: finish verify_area() off
    frv: move HAVE_ARCH_UNMAPPED_AREA to pgtable.h
    exceptions: detritus removal

    Linus Torvalds
     

11 Oct, 2016

1 commit

  • Pull protection keys syscall interface from Thomas Gleixner:
    "This is the final step of Protection Keys support which adds the
    syscalls so user space can actually allocate keys and protect memory
    areas with them. Details and usage examples can be found in the
    documentation.

    The mm side of this has been acked by Mel"

    * 'mm-pkeys-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/pkeys: Update documentation
    x86/mm/pkeys: Do not skip PKRU register if debug registers are not used
    x86/pkeys: Fix pkeys build breakage for some non-x86 arches
    x86/pkeys: Add self-tests
    x86/pkeys: Allow configuration of init_pkru
    x86/pkeys: Default to a restrictive init PKRU
    pkeys: Add details of system call use to Documentation/
    generic syscalls: Wire up memory protection keys syscalls
    x86: Wire up protection keys system calls
    x86/pkeys: Allocation/free syscalls
    x86/pkeys: Make mprotect_key() mask off additional vm_flags
    mm: Implement new pkey_mprotect() system call
    x86/pkeys: Add fault handling for PF_PK page fault bit

    Linus Torvalds
     

08 Oct, 2016

1 commit

  • When doing an nmi backtrace of many cores, most of which are idle, the
    output is a little overwhelming and very uninformative. Suppress
    messages for cpus that are idling when they are interrupted and just
    emit one line, "NMI backtrace for N skipped: idling at pc 0xNNN".

    We do this by grouping all the cpuidle code together into a new
    .cpuidle.text section, and then checking the address of the interrupted
    PC to see if it lies within that section.

    This commit suitably tags x86 and tile idle routines, and only adds in
    the minimal framework for other architectures.

    Link: http://lkml.kernel.org/r/1472487169-14923-5-git-send-email-cmetcalf@mellanox.com
    Signed-off-by: Chris Metcalf
    Acked-by: Peter Zijlstra (Intel)
    Tested-by: Peter Zijlstra (Intel)
    Tested-by: Daniel Thompson [arm]
    Tested-by: Petr Mladek
    Cc: Aaron Tomlin
    Cc: Peter Zijlstra (Intel)
    Cc: "Rafael J. Wysocki"
    Cc: Russell King
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chris Metcalf
     

06 Oct, 2016

1 commit

  • Pull Xtensa updates from Max Filippov:
    "Updates for the xtensa architecture. It is a combined set of patches
    for 4.8 that never got to the mainline and new patches for 4.9.

    - add new kernel memory layouts for MMUv3 cores: with 256MB and 512MB
    KSEG size, starting at physical address other than 0

    - make kernel load address configurable

    - clean up kernel memory layout macros

    - drop sysmem early allocator and switch to memblock

    - enable kmemleak and memory reservation from the device tree

    - wire up new syscalls: userfaultfd, membarrier, mlock2,
    copy_file_range, preadv2 and pwritev2

    - add new platform: Cadence Configurable System Platform (CSP) and
    new core variant for it: xt_lnx

    - rearrange CCOUNT calibration code, make most of it generic

    - improve machine reset code (XTFPGA now reboots reliably with MMUv3
    cores)

    - provide default memmap command line option for configurations
    without device tree support

    - ISS fixes: simdisk is now capable of using highmem pages, panic
    correctly terminates simulator"

    * tag 'xtensa-20161005' of git://github.com/jcmvbkbc/linux-xtensa: (24 commits)
    xtensa: disable MMU initialization option on MMUv2 cores
    xtensa: add default memmap and mmio32native options to defconfigs
    xtensa: add default memmap option to common_defconfig
    xtensa: add default memmap option to iss_defconfig
    xtensa: ISS: allow simdisk to use high memory buffers
    xtensa: ISS: define simc_exit and use it instead of inline asm
    xtensa: xtfpga: group platform_* functions together
    xtensa: rearrange CCOUNT calibration
    xtensa: xtfpga: use clock provider, don't update DT
    xtensa: Tweak xuartps UART driver Rx watermark for Cadence CSP config.
    xtensa: initialize MMU before jumping to reset vector
    xtensa: fix icountlevel setting in cpu_reset
    xtensa: extract common CPU reset code into separate function
    xtensa: Added Cadence CSP kernel configuration for Xtensa
    xtensa: fix default kernel load address
    xtensa: wire up new syscalls
    xtensa: support reserved-memory DT node
    xtensa: drop sysmem and switch to memblock
    xtensa: minimize use of PLATFORM_DEFAULT_MEM_{ADDR,SIZE}
    xtensa: cleanup MMU setup and kernel layout macros
    ...

    Linus Torvalds
     

30 Sep, 2016

1 commit

  • MMU initialization option is currently ignored on MMUv2 cores, but it is
    used in Kconfig to select kernel load and start addresses. This choice
    is not available for MMUv2 cores as they have hardwired TLB entries.
    Disable MMU initialization option for known MMUv2 cores so that they get
    correct kernel load/start address by default.
    This fixes the default allmodconfig build.

    Signed-off-by: Max Filippov

    Max Filippov
     

28 Sep, 2016

2 commits


21 Sep, 2016

8 commits

  • Now that memory initialization doesn't add default memory region
    specify it explicitly in the memmap command line option in case somebody
    wants to boot in non-DT-enabled configuration.

    While at it update earlycon access mode to mmio32native to support both
    LE and BE cores transparently.

    Signed-off-by: Max Filippov

    Max Filippov
     
  • Now that memory initialization doesn't add default memory region specify
    it explicitly in the memmap command line option.

    Save common_defconfig as defconfig so that it doesn't have all option
    settings in it, only those that are different from the Kconfig defaults.

    Signed-off-by: Max Filippov

    Max Filippov
     
  • Now that memory initialization doesn't add default memory region specify
    it explicitly in the memmap command line option.

    Save iss_defconfig as defconfig so that it doesn't have all option
    settings in it, only those that are different from the Kconfig defaults.

    Signed-off-by: Max Filippov

    Max Filippov
     
  • ISS kernel by default has only low memory. But it may be configured to
    support high memory and started in a simulator with more than 128M of
    RAM. Simdisk driver in such configuration can get IO request with a
    high memory page. There may be no TLB entry for that page, only page
    table entry. However simulators don't do pagewalking, so such IO request
    will fail. Touch IO buffer in the buffer read/write loop so that a TLB
    entry is likely there when read or write simcall is invoked.

    Signed-off-by: Max Filippov

    Max Filippov
     
  • A number of ISS platform functions use inline assembly to invoke
    simulator exit, not all correctly. Define simc_exit(exit_code) and use
    it instead of inline assembly.

    Signed-off-by: Max Filippov

    Max Filippov
     
  • Group platform_* functions together and turn two separate #ifdef/#ifndef
    blocks into single #ifdef/#else. No functional changes.

    Signed-off-by: Max Filippov

    Max Filippov
     
  • DT-enabled kernel should have a CPU node connected to a clock. This clock
    is the CCOUNT clock. Use old platform_calibrate_ccount call as a fallback
    when CPU node cannot be found or has no clock and in non-DT-enabled
    configurations.

    Drop no longer needed code that updates CPU clock-frequency property in
    the DT; drop DT-related code from the platform_calibrate_ccount too.

    Move of_clk_init to the top of time_init, so that clocks are initialized
    before CCOUNT calibration is attempted.

    Signed-off-by: Max Filippov

    Max Filippov
     
  • Instead of querying hardcoded FPGA frequency register and then updating
    clock-frequency property in specificly named DT nodes in machine setup
    code register a clock provider that returns fixed-rate clock, configured
    by register specified in DT. This way we have less magic/hardcoded names
    and use more existing common clock framework code.

    Signed-off-by: Max Filippov
    Tested-by: Guenter Roeck

    Max Filippov
     

20 Sep, 2016

1 commit


12 Sep, 2016

3 commits


10 Sep, 2016

2 commits

  • Added defconfig, device tree and Xtensa variant header files for the
    Cadence Configurable System Platform "xt_lnx" processor configuration.

    Signed-off-by: Scott Telford
    Signed-off-by: Max Filippov

    Scott Telford
     
  • Make default kernel load address 0xd0003000 for MMUv2 cores and
    0x60003000 for noMMU cores. Don't initialize MMU inside vmlinux for
    predefined MMUv2 cores (it's noop anyway).

    This fixes the following defconfig build error:
    arch/xtensa/kernel/built-in.o: In function `fast_alloca':
    (.text+0x99a): dangerous relocation: j: cannot encode: _WindowUnderflow12
    arch/xtensa/kernel/built-in.o: In function `fast_alloca':
    (.text+0x99d): dangerous relocation: j: cannot encode: _WindowUnderflow8
    arch/xtensa/kernel/built-in.o: In function `fast_alloca':
    (.text+0x9a0): dangerous relocation: j: cannot encode: _WindowUnderflow4
    arch/xtensa/kernel/built-in.o: In function `window_overflow_restore_a0_fixup':
    (.text+0x23a3): dangerous relocation: j: cannot encode: (.DoubleExceptionVector.text+0x104)
    arch/xtensa/kernel/built-in.o: In function `window_overflow_restore_a0_fixup':
    (.text+0x23c1): dangerous relocation: j: cannot encode: (.DoubleExceptionVector.text+0x104)
    arch/xtensa/kernel/built-in.o: In function `window_overflow_restore_a0_fixup':
    (.text+0x23dd): dangerous relocation: j: cannot encode: (.DoubleExceptionVector.text+0x104)

    With this change all xtensa defconfigs build correctly.

    Reported-by: Guenter Roeck
    Signed-off-by: Max Filippov

    Max Filippov
     

09 Sep, 2016

1 commit

  • This patch adds two new system calls:

    int pkey_alloc(unsigned long flags, unsigned long init_access_rights)
    int pkey_free(int pkey);

    These implement an "allocator" for the protection keys
    themselves, which can be thought of as analogous to the allocator
    that the kernel has for file descriptors. The kernel tracks
    which numbers are in use, and only allows operations on keys that
    are valid. A key which was not obtained by pkey_alloc() may not,
    for instance, be passed to pkey_mprotect().

    These system calls are also very important given the kernel's use
    of pkeys to implement execute-only support. These help ensure
    that userspace can never assume that it has control of a key
    unless it first asks the kernel. The kernel does not promise to
    preserve PKRU (right register) contents except for allocated
    pkeys.

    The 'init_access_rights' argument to pkey_alloc() specifies the
    rights that will be established for the returned pkey. For
    instance:

    pkey = pkey_alloc(flags, PKEY_DENY_WRITE);

    will allocate 'pkey', but also sets the bits in PKRU[1] such that
    writing to 'pkey' is already denied.

    The kernel does not prevent pkey_free() from successfully freeing
    in-use pkeys (those still assigned to a memory range by
    pkey_mprotect()). It would be expensive to implement the checks
    for this, so we instead say, "Just don't do it" since sane
    software will never do it anyway.

    Any piece of userspace calling pkey_alloc() needs to be prepared
    for it to fail. Why? pkey_alloc() returns the same error code
    (ENOSPC) when there are no pkeys and when pkeys are unsupported.
    They can be unsupported for a whole host of reasons, so apps must
    be prepared for this. Also, libraries or LD_PRELOADs might steal
    keys before an application gets access to them.

    This allocation mechanism could be implemented in userspace.
    Even if we did it in userspace, we would still need additional
    user/kernel interfaces to tell userspace which keys are being
    used by the kernel internally (such as for execute-only
    mappings). Having the kernel provide this facility completely
    removes the need for these additional interfaces, or having an
    implementation of this in userspace at all.

    Note that we have to make changes to all of the architectures
    that do not use mman-common.h because we use the new
    PKEY_DENY_ACCESS/WRITE macros in arch-independent code.

    1. PKRU is the Protection Key Rights User register. It is a
    usermode-accessible register that controls whether writes
    and/or access to each individual pkey is allowed or denied.

    Signed-off-by: Dave Hansen
    Acked-by: Mel Gorman
    Cc: linux-arch@vger.kernel.org
    Cc: Dave Hansen
    Cc: arnd@arndb.de
    Cc: linux-api@vger.kernel.org
    Cc: linux-mm@kvack.org
    Cc: luto@kernel.org
    Cc: akpm@linux-foundation.org
    Cc: torvalds@linux-foundation.org
    Link: http://lkml.kernel.org/r/20160729163015.444FE75F@viggo.jf.intel.com
    Signed-off-by: Thomas Gleixner

    Dave Hansen
     

04 Aug, 2016

2 commits

  • The dma-mapping core and the implementations do not change the DMA
    attributes passed by pointer. Thus the pointer can point to const data.
    However the attributes do not have to be a bitfield. Instead unsigned
    long will do fine:

    1. This is just simpler. Both in terms of reading the code and setting
    attributes. Instead of initializing local attributes on the stack
    and passing pointer to it to dma_set_attr(), just set the bits.

    2. It brings safeness and checking for const correctness because the
    attributes are passed by value.

    Semantic patches for this change (at least most of them):

    virtual patch
    virtual context

    @r@
    identifier f, attrs;

    @@
    f(...,
    - struct dma_attrs *attrs
    + unsigned long attrs
    , ...)
    {
    ...
    }

    @@
    identifier r.f;
    @@
    f(...,
    - NULL
    + 0
    )

    and

    // Options: --all-includes
    virtual patch
    virtual context

    @r@
    identifier f, attrs;
    type t;

    @@
    t f(..., struct dma_attrs *attrs);

    @@
    identifier r.f;
    @@
    f(...,
    - NULL
    + 0
    )

    Link: http://lkml.kernel.org/r/1468399300-5399-2-git-send-email-k.kozlowski@samsung.com
    Signed-off-by: Krzysztof Kozlowski
    Acked-by: Vineet Gupta
    Acked-by: Robin Murphy
    Acked-by: Hans-Christian Noren Egtvedt
    Acked-by: Mark Salter [c6x]
    Acked-by: Jesper Nilsson [cris]
    Acked-by: Daniel Vetter [drm]
    Reviewed-by: Bart Van Assche
    Acked-by: Joerg Roedel [iommu]
    Acked-by: Fabien Dessenne [bdisp]
    Reviewed-by: Marek Szyprowski [vb2-core]
    Acked-by: David Vrabel [xen]
    Acked-by: Konrad Rzeszutek Wilk [xen swiotlb]
    Acked-by: Joerg Roedel [iommu]
    Acked-by: Richard Kuo [hexagon]
    Acked-by: Geert Uytterhoeven [m68k]
    Acked-by: Gerald Schaefer [s390]
    Acked-by: Bjorn Andersson
    Acked-by: Hans-Christian Noren Egtvedt [avr32]
    Acked-by: Vineet Gupta [arc]
    Acked-by: Robin Murphy [arm64 and dma-iommu]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Kozlowski
     
  • Xtensa improvements for 4.8:

    - add new kernel memory layouts for MMUv3 cores: with 256MB and 512MB
    KSEG size, starting at physical address other than 0;
    - make kernel load address configurable;
    - clean up kernel memory layout macros;
    - drop sysmem early allocator and switch to memblock;
    - enable kmemleak and memory reservation from the device tree;
    - wire up new syscalls: userfaultfd, membarrier, mlock2, copy_file_range,
    preadv2 and pwritev2.

    Chris Zankel
     

31 Jul, 2016

2 commits

  • Wire up userfaultfd, membarrier, mlock2, copy_file_range, preadv2, pwritev2

    Signed-off-by: Max Filippov

    Max Filippov
     
  • Pull DeviceTree updates from Rob Herring:

    - remove most of_platform_populate() calls in arch code. Now the DT
    core code calls it in the default case and platforms only need to
    call it if they have special needs

    - use pr_fmt on all the DT core print statements

    - CoreSight binding doc improvements to block name descriptions

    - add dt_to_config script which can parse dts files and list
    corresponding kernel config options

    - fix memory leak hit with a PowerMac DT

    - correct a bunch of STMicro compatible strings to use the correct
    vendor prefix

    - fix DA9052 PMIC binding doc to match what is actually used in dts
    files

    * tag 'devicetree-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (35 commits)
    documentation: da9052: Update regulator bindings names to match DA9052/53 DTS expectations
    xtensa: Partially Revert "xtensa: Remove unnecessary of_platform_populate with default match table"
    xtensa: Fix build error due to missing include file
    MIPS: ath79: Add missing include file
    Fix spelling errors in Documentation/devicetree
    ARM: dts: fix STMicroelectronics compatible strings
    powerpc/dts: fix STMicroelectronics compatible strings
    Documentation: dt: i2c: use correct STMicroelectronics vendor prefix
    scripts/dtc: dt_to_config - kernel config options for a devicetree
    of: fdt: mark unflattened tree as detached
    of: overlay: add resolver error prints
    coresight: document binding acronyms
    Documentation/devicetree: document cavium-pip rx-delay/tx-delay properties
    of: use pr_fmt prefix for all console printing
    of/irq: Mark initialised interrupt controllers as populated
    of: fix memory leak related to safe_name()
    Revert "of/platform: export of_default_bus_match_table"
    of: unittest: use of_platform_default_populate() to populate default bus
    memory: omap-gpmc: use of_platform_default_populate() to populate default bus
    bus: uniphier-system-bus: use of_platform_default_populate() to populate default bus
    ...

    Linus Torvalds
     

30 Jul, 2016

1 commit

  • Pull smp hotplug updates from Thomas Gleixner:
    "This is the next part of the hotplug rework.

    - Convert all notifiers with a priority assigned

    - Convert all CPU_STARTING/DYING notifiers

    The final removal of the STARTING/DYING infrastructure will happen
    when the merge window closes.

    Another 700 hundred line of unpenetrable maze gone :)"

    * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (70 commits)
    timers/core: Correct callback order during CPU hot plug
    leds/trigger/cpu: Move from CPU_STARTING to ONLINE level
    powerpc/numa: Convert to hotplug state machine
    arm/perf: Fix hotplug state machine conversion
    irqchip/armada: Avoid unused function warnings
    ARC/time: Convert to hotplug state machine
    clocksource/atlas7: Convert to hotplug state machine
    clocksource/armada-370-xp: Convert to hotplug state machine
    clocksource/exynos_mct: Convert to hotplug state machine
    clocksource/arm_global_timer: Convert to hotplug state machine
    rcu: Convert rcutree to hotplug state machine
    KVM/arm/arm64/vgic-new: Convert to hotplug state machine
    smp/cfd: Convert core to hotplug state machine
    x86/x2apic: Convert to CPU hotplug state machine
    profile: Convert to hotplug state machine
    timers/core: Convert to hotplug state machine
    hrtimer: Convert to hotplug state machine
    x86/tboot: Convert to hotplug state machine
    arm64/armv8 deprecated: Convert to hotplug state machine
    hwtracing/coresight-etm4x: Convert to hotplug state machine
    ...

    Linus Torvalds
     

27 Jul, 2016

1 commit