03 Aug, 2016

22 commits

  • Commit 53dad6d3a8e5 ("ipc: fix race with LSMs") updated ipc_rcu_putref()
    to receive rcu freeing function but used generic ipc_rcu_free() instead
    of msg_rcu_free() which does security cleaning.

    Running LTP msgsnd06 with kmemleak gives the following:

    cat /sys/kernel/debug/kmemleak

    unreferenced object 0xffff88003c0a11f8 (size 8):
    comm "msgsnd06", pid 1645, jiffies 4294672526 (age 6.549s)
    hex dump (first 8 bytes):
    1b 00 00 00 01 00 00 00 ........
    backtrace:
    kmemleak_alloc+0x23/0x40
    kmem_cache_alloc_trace+0xe1/0x180
    selinux_msg_queue_alloc_security+0x3f/0xd0
    security_msg_queue_alloc+0x2e/0x40
    newque+0x4e/0x150
    ipcget+0x159/0x1b0
    SyS_msgget+0x39/0x40
    entry_SYSCALL_64_fastpath+0x13/0x8f

    Manfred Spraul suggested to fix sem.c as well and Davidlohr Bueso to
    only use ipc_rcu_free in case of security allocation failure in newary()

    Fixes: 53dad6d3a8e ("ipc: fix race with LSMs")
    Link: http://lkml.kernel.org/r/1470083552-22966-1-git-send-email-fabf@skynet.be
    Signed-off-by: Fabian Frederick
    Cc: Davidlohr Bueso
    Cc: Manfred Spraul
    Cc: [3.12+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • We must call shrink_slab() for each memory cgroup on both global and
    memcg reclaim in shrink_node_memcg(). Commit d71df22b55099 accidentally
    changed that so that now shrink_slab() is only called with memcg != NULL
    on memcg reclaim. As a result, memcg-aware shrinkers (including
    dentry/inode) are never invoked on global reclaim. Fix that.

    Fixes: b2e18757f2c9 ("mm, vmscan: begin reclaiming pages on a per-node basis")
    Link: http://lkml.kernel.org/r/1470056590-7177-1-git-send-email-vdavydov@virtuozzo.com
    Signed-off-by: Vladimir Davydov
    Acked-by: Johannes Weiner
    Acked-by: Michal Hocko
    Cc: Mel Gorman
    Cc: Hillf Danton
    Cc: Vlastimil Babka
    Cc: Joonsoo Kim
    Cc: Minchan Kim
    Cc: Rik van Riel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Davydov
     
  • Radix trees may be used not only for storing page cache pages, so
    unconditionally accounting radix tree nodes to the current memory cgroup
    is bad: if a radix tree node is used for storing data shared among
    different cgroups we risk pinning dead memory cgroups forever.

    So let's only account radix tree nodes if it was explicitly requested by
    passing __GFP_ACCOUNT to INIT_RADIX_TREE. Currently, we only want to
    account page cache entries, so mark mapping->page_tree so.

    Fixes: 58e698af4c63 ("radix-tree: account radix_tree_node to memory cgroup")
    Link: http://lkml.kernel.org/r/1470057188-7864-1-git-send-email-vdavydov@virtuozzo.com
    Signed-off-by: Vladimir Davydov
    Acked-by: Johannes Weiner
    Acked-by: Michal Hocko
    Cc: [4.6+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Davydov
     
  • If the total amount of memory assigned to quarantine is less than the
    amount of memory assigned to per-cpu quarantines, |new_quarantine_size|
    may overflow. Instead, set it to zero.

    [akpm@linux-foundation.org: cleanup: use WARN_ONCE return value]
    Link: http://lkml.kernel.org/r/1470063563-96266-1-git-send-email-glider@google.com
    Fixes: 55834c59098d ("mm: kasan: initial memory quarantine implementation")
    Signed-off-by: Alexander Potapenko
    Reported-by: Dmitry Vyukov
    Cc: Andrey Ryabinin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Potapenko
     
  • Currently we just dump stack in case of double free bug.
    Let's dump all info about the object that we have.

    [aryabinin@virtuozzo.com: change double free message per Alexander]
    Link: http://lkml.kernel.org/r/1470153654-30160-1-git-send-email-aryabinin@virtuozzo.com
    Link: http://lkml.kernel.org/r/1470062715-14077-6-git-send-email-aryabinin@virtuozzo.com
    Signed-off-by: Andrey Ryabinin
    Cc: Alexander Potapenko
    Cc: Dmitry Vyukov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Ryabinin
     
  • The state of object currently tracked in two places - shadow memory, and
    the ->state field in struct kasan_alloc_meta. We can get rid of the
    latter. The will save us a little bit of memory. Also, this allow us
    to move free stack into struct kasan_alloc_meta, without increasing
    memory consumption. So now we should always know when the last time the
    object was freed. This may be useful for long delayed use-after-free
    bugs.

    As a side effect this fixes following UBSAN warning:
    UBSAN: Undefined behaviour in mm/kasan/quarantine.c:102:13
    member access within misaligned address ffff88000d1efebc for type 'struct qlist_node'
    which requires 8 byte alignment

    Link: http://lkml.kernel.org/r/1470062715-14077-5-git-send-email-aryabinin@virtuozzo.com
    Reported-by: kernel test robot
    Signed-off-by: Andrey Ryabinin
    Cc: Alexander Potapenko
    Cc: Dmitry Vyukov
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: David Rientjes
    Cc: Joonsoo Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Ryabinin
     
  • Size of slab object already stored in cache->object_size.

    Note, that kmalloc() internally rounds up size of allocation, so
    object_size may be not equal to alloc_size, but, usually we don't need
    to know the exact size of allocated object. In case if we need that
    information, we still can figure it out from the report. The dump of
    shadow memory allows to identify the end of allocated memory, and
    thereby the exact allocation size.

    Link: http://lkml.kernel.org/r/1470062715-14077-4-git-send-email-aryabinin@virtuozzo.com
    Signed-off-by: Andrey Ryabinin
    Cc: Alexander Potapenko
    Cc: Dmitry Vyukov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Ryabinin
     
  • SLUB doesn't require disabled interrupts to call ___cache_free().

    Link: http://lkml.kernel.org/r/1470062715-14077-3-git-send-email-aryabinin@virtuozzo.com
    Signed-off-by: Andrey Ryabinin
    Acked-by: Alexander Potapenko
    Cc: Dmitry Vyukov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Ryabinin
     
  • Currently we call quarantine_reduce() for ___GFP_KSWAPD_RECLAIM (implied
    by __GFP_RECLAIM) allocation. So, basically we call it on almost every
    allocation. quarantine_reduce() sometimes is heavy operation, and
    calling it with disabled interrupts may trigger hard LOCKUP:

    NMI watchdog: Watchdog detected hard LOCKUP on cpu 2irq event stamp: 1411258
    Call Trace:
    dump_stack+0x68/0x96
    watchdog_overflow_callback+0x15b/0x190
    __perf_event_overflow+0x1b1/0x540
    perf_event_overflow+0x14/0x20
    intel_pmu_handle_irq+0x36a/0xad0
    perf_event_nmi_handler+0x2c/0x50
    nmi_handle+0x128/0x480
    default_do_nmi+0xb2/0x210
    do_nmi+0x1aa/0x220
    end_repeat_nmi+0x1a/0x1e
    <> __kernel_text_address+0x86/0xb0
    print_context_stack+0x7b/0x100
    dump_trace+0x12b/0x350
    save_stack_trace+0x2b/0x50
    set_track+0x83/0x140
    free_debug_processing+0x1aa/0x420
    __slab_free+0x1d6/0x2e0
    ___cache_free+0xb6/0xd0
    qlist_free_all+0x83/0x100
    quarantine_reduce+0x177/0x1b0
    kasan_kmalloc+0xf3/0x100

    Reduce the quarantine_reduce iff direct reclaim is allowed.

    Fixes: 55834c59098d("mm: kasan: initial memory quarantine implementation")
    Link: http://lkml.kernel.org/r/1470062715-14077-2-git-send-email-aryabinin@virtuozzo.com
    Signed-off-by: Andrey Ryabinin
    Reported-by: Dave Jones
    Acked-by: Alexander Potapenko
    Cc: Dmitry Vyukov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Ryabinin
     
  • Once an object is put into quarantine, we no longer own it, i.e. object
    could leave the quarantine and be reallocated. So having set_track()
    call after the quarantine_put() may corrupt slab objects.

    BUG kmalloc-4096 (Not tainted): Poison overwritten
    -----------------------------------------------------------------------------
    Disabling lock debugging due to kernel taint
    INFO: 0xffff8804540de850-0xffff8804540de857. First byte 0xb5 instead of 0x6b
    ...
    INFO: Freed in qlist_free_all+0x42/0x100 age=75 cpu=3 pid=24492
    __slab_free+0x1d6/0x2e0
    ___cache_free+0xb6/0xd0
    qlist_free_all+0x83/0x100
    quarantine_reduce+0x177/0x1b0
    kasan_kmalloc+0xf3/0x100
    kasan_slab_alloc+0x12/0x20
    kmem_cache_alloc+0x109/0x3e0
    mmap_region+0x53e/0xe40
    do_mmap+0x70f/0xa50
    vm_mmap_pgoff+0x147/0x1b0
    SyS_mmap_pgoff+0x2c7/0x5b0
    SyS_mmap+0x1b/0x30
    do_syscall_64+0x1a0/0x4e0
    return_from_SYSCALL_64+0x0/0x7a
    INFO: Slab 0xffffea0011503600 objects=7 used=7 fp=0x (null) flags=0x8000000000004080
    INFO: Object 0xffff8804540de848 @offset=26696 fp=0xffff8804540dc588
    Redzone ffff8804540de840: bb bb bb bb bb bb bb bb ........
    Object ffff8804540de848: 6b 6b 6b 6b 6b 6b 6b 6b b5 52 00 00 f2 01 60 cc kkkkkkkk.R....`.

    Similarly, poisoning after the quarantine_put() leads to false positive
    use-after-free reports:

    BUG: KASAN: use-after-free in anon_vma_interval_tree_insert+0x304/0x430 at addr ffff880405c540a0
    Read of size 8 by task trinity-c0/3036
    CPU: 0 PID: 3036 Comm: trinity-c0 Not tainted 4.7.0-think+ #9
    Call Trace:
    dump_stack+0x68/0x96
    kasan_report_error+0x222/0x600
    __asan_report_load8_noabort+0x61/0x70
    anon_vma_interval_tree_insert+0x304/0x430
    anon_vma_chain_link+0x91/0xd0
    anon_vma_clone+0x136/0x3f0
    anon_vma_fork+0x81/0x4c0
    copy_process.part.47+0x2c43/0x5b20
    _do_fork+0x16d/0xbd0
    SyS_clone+0x19/0x20
    do_syscall_64+0x1a0/0x4e0
    entry_SYSCALL64_slow_path+0x25/0x25

    Fix this by putting an object in the quarantine after all other
    operations.

    Fixes: 80a9201a5965 ("mm, kasan: switch SLUB to stackdepot, enable memory quarantine for SLUB")
    Link: http://lkml.kernel.org/r/1470062715-14077-1-git-send-email-aryabinin@virtuozzo.com
    Signed-off-by: Andrey Ryabinin
    Reported-by: Dave Jones
    Reported-by: Vegard Nossum
    Reported-by: Sasha Levin
    Acked-by: Alexander Potapenko
    Cc: Dmitry Vyukov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Ryabinin
     
  • We've had a report about soft lockups caused by lock bouncing in the
    soft reclaim path:

    BUG: soft lockup - CPU#0 stuck for 22s! [kav4proxy-kavic:3128]
    RIP: 0010:[] [] _raw_spin_lock+0x18/0x20
    Call Trace:
    mem_cgroup_soft_limit_reclaim+0x25a/0x280
    shrink_zones+0xed/0x200
    do_try_to_free_pages+0x74/0x320
    try_to_free_pages+0x112/0x180
    __alloc_pages_slowpath+0x3ff/0x820
    __alloc_pages_nodemask+0x1e9/0x200
    alloc_pages_vma+0xe1/0x290
    do_wp_page+0x19f/0x840
    handle_pte_fault+0x1cd/0x230
    do_page_fault+0x1fd/0x4c0
    page_fault+0x25/0x30

    There are no memcgs created so there cannot be any in the soft limit
    excess obviously:

    [...]
    memory 0 1 1

    so all this just seems to be mem_cgroup_largest_soft_limit_node trying
    to get spin_lock_irq(&mctz->lock) just to find out that the soft limit
    excess tree is empty. This is just pointless wasting of cycles and
    cache line bouncing during heavy parallel reclaim on large machines.
    The particular machine wasn't very healthy and most probably suffering
    from a memory leak which just caused the memory reclaim to trash
    heavily. But bouncing on the lock certainly didn't help...

    Fix this by optimistic lockless check and bail out early if the tree is
    empty. This is theoretically racy but that shouldn't matter all that
    much. First of all soft limit is a best effort feature and it is slowly
    getting deprecated and its usage should be really scarce. Bouncing on a
    lock without a good reason is surely much bigger problem, especially on
    large CPU machines.

    Link: http://lkml.kernel.org/r/1470073277-1056-1-git-send-email-mhocko@kernel.org
    Signed-off-by: Michal Hocko
    Acked-by: Vladimir Davydov
    Acked-by: Johannes Weiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     
  • Zhong Jiang has reported a BUG_ON from huge_pte_alloc hitting when he
    runs his database load with memory online and offline running in
    parallel. The reason is that huge_pmd_share might detect a shared pmd
    which is currently migrated and so it has migration pte which is
    !pte_huge.

    There doesn't seem to be any easy way to prevent from the race and in
    fact seeing the migration swap entry is not harmful. Both callers of
    huge_pte_alloc are prepared to handle them. copy_hugetlb_page_range
    will copy the swap entry and make it COW if needed. hugetlb_fault will
    back off and so the page fault is retries if the page is still under
    migration and waits for its completion in hugetlb_fault.

    That means that the BUG_ON is wrong and we should update it. Let's
    simply check that all present ptes are pte_huge instead.

    Link: http://lkml.kernel.org/r/20160721074340.GA26398@dhcp22.suse.cz
    Signed-off-by: Michal Hocko
    Reported-by: zhongjiang
    Acked-by: Naoya Horiguchi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     
  • In powerpc servers with large memory(32TB), we watched several soft
    lockups for hugepage under stress tests.

    The call traces are as follows:
    1.
    get_page_from_freelist+0x2d8/0xd50
    __alloc_pages_nodemask+0x180/0xc20
    alloc_fresh_huge_page+0xb0/0x190
    set_max_huge_pages+0x164/0x3b0

    2.
    prep_new_huge_page+0x5c/0x100
    alloc_fresh_huge_page+0xc8/0x190
    set_max_huge_pages+0x164/0x3b0

    This patch fixes such soft lockups. It is safe to call cond_resched()
    there because it is out of spin_lock/unlock section.

    Link: http://lkml.kernel.org/r/1469674442-14848-1-git-send-email-hejianet@gmail.com
    Signed-off-by: Jia He
    Reviewed-by: Naoya Horiguchi
    Acked-by: Michal Hocko
    Acked-by: Dave Hansen
    Cc: Mike Kravetz
    Cc: "Kirill A. Shutemov"
    Cc: Paul Gortmaker
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jia He
     
  • Apparently, the tools/testing version dates to a few flags ago, and
    we've sprouted 4 new ones since. Keep in sync with the value in the
    main tree...

    Link: http://lkml.kernel.org/r/23400.1469702675@turing-police.cc.vt.edu
    Signed-off-by: Valdis Kletnieks
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Valdis Kletnieks
     
  • Every swap-in anonymous page starts from inactive lru list's head. It
    should be activated unconditionally when VM decide to reclaim because
    page table entry for the page always usually has marked accessed bit.
    Thus, their window size for getting a new referece is 2 * NR_inactive +
    NR_active while others is NR_inactive + NR_active.

    It's not fair that it has more chance to be referenced compared to other
    newly allocated page which starts from active lru list's head.

    Johannes:

    : The page can still have a valid copy on the swap device, so prefering to
    : reclaim that page over a fresh one could make sense. But as you point
    : out, having it start inactive instead of active actually ends up giving it
    : *more* LRU time, and that seems to be without justification.

    Rik:

    : The reason newly read in swap cache pages start on the inactive list is
    : that we do some amount of read-around, and do not know which pages will
    : get used.
    :
    : However, immediately activating the ones that DO get used, like your patch
    : does, is the right thing to do.

    Link: http://lkml.kernel.org/r/1469762740-17860-1-git-send-email-minchan@kernel.org
    Signed-off-by: Minchan Kim
    Acked-by: Johannes Weiner
    Acked-by: Rik van Riel
    Cc: Nadav Amit
    Cc: Mel Gorman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Minchan Kim
     
  • I ran into this:

    BUG: sleeping function called from invalid context at mm/page_alloc.c:3784
    in_atomic(): 0, irqs_disabled(): 0, pid: 1434, name: trinity-c1
    2 locks held by trinity-c1/1434:
    #0: (&mm->mmap_sem){......}, at: [] __do_page_fault+0x1ce/0x8f0
    #1: (rcu_read_lock){......}, at: [] filemap_map_pages+0xd6/0xdd0

    CPU: 0 PID: 1434 Comm: trinity-c1 Not tainted 4.7.0+ #58
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014
    Call Trace:
    dump_stack+0x65/0x84
    panic+0x185/0x2dd
    ___might_sleep+0x51c/0x600
    __might_sleep+0x90/0x1a0
    __alloc_pages_nodemask+0x5b1/0x2160
    alloc_pages_current+0xcc/0x370
    pte_alloc_one+0x12/0x90
    __pte_alloc+0x1d/0x200
    alloc_set_pte+0xe3e/0x14a0
    filemap_map_pages+0x42b/0xdd0
    handle_mm_fault+0x17d5/0x28b0
    __do_page_fault+0x310/0x8f0
    trace_do_page_fault+0x18d/0x310
    do_async_page_fault+0x27/0xa0
    async_page_fault+0x28/0x30

    The important bits from the above is that filemap_map_pages() is calling
    into the page allocator while holding rcu_read_lock (sleeping is not
    allowed inside RCU read-side critical sections).

    According to Kirill Shutemov, the prefaulting code in do_fault_around()
    is supposed to take care of this, but missing error handling means that
    the allocation failure can go unnoticed.

    We don't need to return VM_FAULT_OOM (or any other error) here, since we
    can just let the normal fault path try again.

    Fixes: 7267ec008b5c ("mm: postpone page table allocation until we have page to map")
    Link: http://lkml.kernel.org/r/1469708107-11868-1-git-send-email-vegard.nossum@oracle.com
    Signed-off-by: Vegard Nossum
    Acked-by: Kirill A. Shutemov
    Cc: "Hillf Danton"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vegard Nossum
     
  • We found a dlm-blocked situation caused by continuous breakdown of
    recovery masters described below. To solve this problem, we should
    purge recovery lock once detecting recovery master goes down.

    N3 N2 N1(reco master)
    go down
    pick up recovery lock and
    begin recoverying for N2

    go down

    pick up recovery
    lock failed, then
    purge it:
    dlm_purge_lockres
    ->DROPPING_REF is set

    send deref to N1 failed,
    recovery lock is not purged

    find N1 go down, begin
    recoverying for N1, but
    blocked in dlm_do_recovery
    as DROPPING_REF is set:
    dlm_do_recovery
    ->dlm_pick_recovery_master
    ->dlmlock
    ->dlm_get_lock_resource
    ->__dlm_wait_on_lockres_flags(tmpres,
    DLM_LOCK_RES_DROPPING_REF);

    Fixes: 8c0343968163 ("ocfs2/dlm: clear DROPPING_REF flag when the master goes down")
    Link: http://lkml.kernel.org/r/578453AF.8030404@huawei.com
    Signed-off-by: Jun Piao
    Reviewed-by: Joseph Qi
    Reviewed-by: Jiufei Xue
    Reviewed-by: Mark Fasheh
    Cc: Joel Becker
    Cc: Junxiao Bi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    piaojun
     
  • We found a BUG situation that lockres is migrated during deref described
    below. To solve the BUG, we could purge lockres directly when other
    node says I did not have a ref. Additionally, we'd better purge lockres
    if master goes down, as no one will response deref done.

    Node 1 Node 2(old master) Node3(new master)
    dlm_purge_lockres
    send deref to N2

    leave domain
    migrate lockres to N3
    finish migration
    send do assert
    master to N1

    receive do assert msg
    form N3, but can not
    find lockres because
    DROPPING_REF is set,
    so the owner is still
    N2.

    receive deref from N1
    and response -EINVAL
    because lockres is migrated

    BUG when receive -EINVAL
    in dlm_drop_lockres_ref

    Fixes: 842b90b62461d ("ocfs2/dlm: return in progress if master can not clear the refmap bit right now")

    Link: http://lkml.kernel.org/r/57845103.3070406@huawei.com
    Signed-off-by: Jun Piao
    Reviewed-by: Joseph Qi
    Reviewed-by: Jiufei Xue
    Reviewed-by: Mark Fasheh
    Cc: Joel Becker
    Cc: Junxiao Bi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    piaojun
     
  • …eref_lockres_done_handler

    We found a BUG situation in which DLM_LOCK_RES_DROPPING_REF is cleared
    unexpected that described below. To solve the bug, we disable the
    BUG_ON and purge lockres in dlm_do_local_recovery_cleanup.

    Node 1 Node 2(master)
    dlm_purge_lockres
    dlm_deref_lockres_handler

    DLM_LOCK_RES_SETREF_INPROG is set
    response DLM_DEREF_RESPONSE_INPROG

    receive DLM_DEREF_RESPONSE_INPROG
    stop puring in dlm_purge_lockres
    and wait for DLM_DEREF_RESPONSE_DONE

    dispatch dlm_deref_lockres_worker
    response DLM_DEREF_RESPONSE_DONE

    receive DLM_DEREF_RESPONSE_DONE and
    prepare to purge lockres

    Node 2 goes down

    find Node2 down and do local
    clean up for Node2:
    dlm_do_local_recovery_cleanup
    -> clear DLM_LOCK_RES_DROPPING_REF

    when purging lockres, BUG_ON happens
    because DLM_LOCK_RES_DROPPING_REF is clear:
    dlm_deref_lockres_done_handler
    ->BUG_ON(!(res->state & DLM_LOCK_RES_DROPPING_REF));

    [akpm@linux-foundation.org: fix duplicated write to `ret']
    Fixes: 60d663cb5273 ("ocfs2/dlm: add DEREF_DONE message")
    Link: http://lkml.kernel.org/r/57845055.9080702@huawei.com
    Signed-off-by: Jun Piao <piaojun@huawei.com>
    Reviewed-by: Joseph Qi <joseph.qi@huawei.com>
    Reviewed-by: Jiufei Xue <xuejiufei@huawei.com>
    Reviewed-by: Mark Fasheh <mfasheh@suse.de>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

    piaojun
     
  • The testcase "mmaptruncate" in ocfs2 test suite always fails with ENOSPC
    error on small volume (say less than 10G). This testcase repeatedly
    performs "extend" and "truncate" on a file. Continuously, it truncates
    the file to 1/2 of the size, and then extends to 100% of the size. The
    main bitmap will quickly run out of space because the "truncate" code
    prevent truncate log from being flushed by
    ocfs2_schedule_truncate_log_flush(osb, 1), while truncate log may have
    cached lots of clusters.

    So retry to allocate after flushing truncate log when ENOSPC is
    returned. And we cannot reuse the deleted blocks before the transaction
    committed. Fortunately, we already have a function to do this -
    ocfs2_try_to_free_truncate_log(). Just need to remove the "static"
    modifier and put it into the right place.

    The "unlock"/"lock" code isn't elegant, but there seems to be no better
    option.

    [zren@suse.com: locking fix]
    Link: http://lkml.kernel.org/r/1468031546-4797-1-git-send-email-zren@suse.com
    Link: http://lkml.kernel.org/r/1466586469-5541-1-git-send-email-zren@suse.com
    Signed-off-by: Eric Ren
    Reviewed-by: Gang He
    Reviewed-by: Joseph Qi
    Reviewed-by: Mark Fasheh
    Cc: Joel Becker
    Cc: Junxiao Bi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Ren
     
  • We encountered a bug from the customer, the user did a fsck.ocfs2 on the
    file system and exited unusually, the lockspace (with LVB size = 32) was
    left in the kernel space, next, the user mounted this file system, the
    kernel module did not create a new lockspace (LVB size = 64) via calling
    dlm_new_lockspace() function in mounting stage, just used the existing
    lockspace, created by the user space tool, this would lead the user was
    not able to mount this file system from the other nodes, with the error
    message like:

    dlm: 032F5......: config mismatch: 64,0 nodeid 177127961: 32,0
    (mount.ocfs2,26981,46):ocfs2_dlm_init:2995 ERROR: status = -71
    ocfs2_mount_volume:1881 ERROR: status = -71
    ocfs2_fill_super:1236 ERROR: status = -71

    The user found it very difficult to find the root cause, then, we
    brought out this patch to relieve such problem.

    First, we add one more flag in calling dlm_new_lockspace() function, to
    make sure the lockspace is created by kernel module itself, and this
    change will not affect the backward compatibility.

    Second, the obvious error message is reported in the kernel log, let the
    user be more easy to find the root cause.

    This patch will be used to insure the dlm lockspace is created by kernel
    module when mounting a ocfs2 file system. There are two ways to create
    a lockspace, from user space and kernel space, but the same name
    lockspaces probably have different lvblen lengths/flags.

    To avoid this mix using, we add one more flag DLM_LSFL_NEWEXCL, it will
    make sure the dlm lockspace is created by kernel module when mounting.
    Secondly, if a user space program (ocfs2-tools) is running on a file
    system, the user tries to mount this file system in the cluster, DLM
    module will return a -EEXIST or -EPROTO errno, we should give the user a
    obvious error message, then, the user can let that user space tool exit
    before mounting the file system again.

    Link: http://lkml.kernel.org/r/1463731940-13044-2-git-send-email-ghe@suse.com
    Signed-off-by: Gang He
    Reviewed-by: Goldwyn Rodrigues
    Reviewed-by: Mark Fasheh
    Cc: Joel Becker
    Cc: Junxiao Bi
    Cc: Joseph Qi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Gang He
     
  • Pull more s390 updates from Martin Schwidefsky:

    - some cleanup for the hugetlbfs pte/pmd conversion functions

    - the code to check for the minimum CPU type is converted from
    assembler to C and an informational message is added in case the CPU
    is not new enough to run the kernel

    - bug fixes

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/ftrace/jprobes: Fix conflict between jprobes and function graph tracing
    s390: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
    s390/zcrypt: fix possible memory leak in ap_module_init()
    s390/numa: only set possible nodes within node_possible_map
    s390/als: fix compile with gcov enabled
    s390/facilities: do not generate DWORDS define anymore
    s390/als: print missing facilities on facility mismatch
    s390/als: print machine type on facility mismatch
    s390/als: convert architecture level set code to C
    s390/sclp: move uninitialized data to data section
    s390/zcrypt: Fix zcrypt suspend/resume behavior
    s390/cio: fix premature wakeup during chp configure
    s390/cio: convert cfg_lock mutex to spinlock
    s390/mm: clean up pte/pmd encoding

    Linus Torvalds
     

02 Aug, 2016

16 commits

  • Merge drm updates from Dave Airlie:
    "This is the main drm pull request for 4.8.

    I'm down with a cold at the moment so hopefully this isn't in too bad
    a state, I finished pulling stuff last week mostly (nouveau fixes just
    went in today), so only this message should be influenced by illness.
    Apologies to anyone who's major feature I missed :-)

    Core:
    Lockless GEM BO freeing
    Non-blocking atomic work
    Documentation changes (rst/sphinx)
    Prep for new fencing changes
    Simple display helpers
    Master/auth changes
    Register/unregister rework
    Loads of trivial patches/fixes.

    New stuff:
    ARM Mali display driver (not the 3D chip)
    sii902x RGB->HDMI bridge

    Panel:
    Support for new panels
    Improved backlight support

    Bridge:
    Convert ADV7511 to bridge driver
    ADV7533 support
    TC358767 (DSI/DPI to eDP) encoder chip support

    i915:
    BXT support enabled by default
    GVT-g infrastructure
    GuC command submission and fixes
    BXT workarounds
    SKL/BKL workarounds
    Demidlayering device registration
    Thundering herd fixes
    Missing pci ids
    Atomic updates

    amdgpu/radeon:
    ATPX improvements for better dGPU power control on PX systems
    New power features for CZ/BR/ST
    Pipelined BO moves and evictions in TTM
    GPU scheduler improvements
    GPU reset improvements
    Overclocking on dGPUs with amdgpu
    Polaris powermanagement enabled

    nouveau:
    GK20A/GM20B volt and clock improvements.
    Initial support for GP100/GP104 GPUs, GP104 will not yet support
    acceleration due to NVIDIA having not released firmware for them as of yet.

    exynos:
    Exynos5433 SoC with IOMMU support.

    vc4:
    Shader validation for branching

    imx-drm:
    Atomic mode setting conversion
    Reworked DMFC FIFO allocation
    External bridge support

    analogix-dp:
    RK3399 eDP support
    Lots of fixes.

    rockchip:
    Lots of small fixes.

    msm:
    DT bindings cleanups
    Shrinker and madvise support
    ASoC HDMI codec support

    tegra:
    Host1x driver cleanups
    SOR reworking for DP support
    Runtime PM support

    omapdrm:
    PLL enhancements
    Header refactoring
    Gamma table support

    arcgpu:
    Simulator support

    virtio-gpu:
    Atomic modesetting fixes.

    rcar-du:
    Misc fixes.

    mediatek:
    MT8173 HDMI support

    sti:
    ASOC HDMI codec support
    Minor fixes

    fsl-dcu:
    Suspend/resume support
    Bridge support

    amdkfd:
    Minor fixes.

    etnaviv:
    Enable GPU clock gating

    hisilicon:
    Vblank and other fixes"

    * tag 'drm-for-v4.8' of git://people.freedesktop.org/~airlied/linux: (1575 commits)
    drm/nouveau/gr/nv3x: fix instobj write offsets in gr setup
    drm/nouveau/acpi: fix lockup with PCIe runtime PM
    drm/nouveau/acpi: check for function 0x1B before using it
    drm/nouveau/acpi: return supported DSM functions
    drm/nouveau/acpi: ensure matching ACPI handle and supported functions
    drm/nouveau/fbcon: fix font width not divisible by 8
    drm/amd/powerplay: remove enable_clock_power_gatings_tasks from initialize and resume events
    drm/amd/powerplay: move clockgating to after ungating power in pp for uvd/vce
    drm/amdgpu: add query device id and revision id into system info entry at CGS
    drm/amdgpu: add new definition in bif header
    drm/amd/powerplay: rename smum header guards
    drm/amdgpu: enable UVD context buffer for older HW
    drm/amdgpu: fix default UVD context size
    drm/amdgpu: fix incorrect type of info_id
    drm/amdgpu: make amdgpu_cgs_call_acpi_method as static
    drm/amdgpu: comment out unused defaults_staturn_pro static const structure to fix the build
    drm/amdgpu: enable UVD VM only on polaris
    drm/amdgpu: increase timeout of IB test
    drm/amdgpu: add destroy session when generate VCE destroy msg.
    drm/amd: fix deadlock of job_list_lock V2
    ...

    Linus Torvalds
     
  • Switch to MULTIPLATFORM"

    Missed conflict between commit c86f51737f8d ("ARM: clps711x: Switch to
    MULTIPLATFORM") from the arm-soc tree and commit 250e46aa3bb3
    ("clocksource/drivers/clps_711x: Add the COMPILE_TEST option") from the
    clockevents tree.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • Runtime PM fixes, fbcon and nv30 fix.
    * 'linux-4.8' of git://github.com/skeggsb/linux:
    drm/nouveau/gr/nv3x: fix instobj write offsets in gr setup
    drm/nouveau/acpi: fix lockup with PCIe runtime PM
    drm/nouveau/acpi: check for function 0x1B before using it
    drm/nouveau/acpi: return supported DSM functions
    drm/nouveau/acpi: ensure matching ACPI handle and supported functions
    drm/nouveau/fbcon: fix font width not divisible by 8

    Dave Airlie
     
  • Pull ia64 updates from Tony Luck:
    "Miscellaneous ia64 cleanups"

    * tag 'please-pull-misc-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    ia64: salinfo: use a waitqueue instead a sema down/up combo
    ia64: efi: use timespec64 for persistent clock

    Linus Torvalds
     
  • Pull 64-bit ARM DT updates from Olof Johansson:
    "Just as the 32-bit contents, the 64-bit device tree branch also
    contains a number of additions this release cycle.

    New platforms:
    - LG LG1313
    - Mediatek MT6755
    - Renesas r8a7796
    - Broadcom 2837

    Other platforms with larger updates are:
    - Nvidia X1 platforms (USB 3.0, regulators, display subsystem)
    - Mediatek MT8173 (display subsystem added)
    - Rockchip RK3399 (a lot of new peripherals)
    - ARM Juno reference implementation (SCPI power domains, coresight,
    thermal)"

    * tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (118 commits)
    arm64: tegra: Enable HDMI on Jetson TX1
    arm64: tegra: Add sor1_src clock
    arm64: tegra: Add XUSB powergates on Tegra210
    arm64: tegra: Add DPAUX pinctrl bindings
    arm64: tegra: Add ACONNECT bus node for Tegra210
    arm64: tegra: Add audio powergate node for Tegra210
    arm64: tegra: Add regulators for Tegra210 Smaug
    arm64: tegra: Correct Tegra210 XUSB mailbox interrupt
    arm64: tegra: Enable XUSB controller on Jetson TX1
    arm64: tegra: Enable debug serial on Jetson TX1
    arm64: tegra: Add Tegra210 XUSB controller
    arm64: tegra: Add Tegra210 XUSB pad controller
    arm64: tegra: Add DSI panel on Jetson TX1
    arm64: tegra: p2597: Add SDMMC power supplies
    arm64: tegra: Add PMIC support on Jetson TX1
    Revert "ARM64: DTS: meson-gxbb: switch ethernet to real clock"
    arm64: dts: hi6220: Add pl031 RTC support
    arm64: dts: r8a7796/salvator-x: Enable watchdog timer
    arm64: dts: r8a7796: Add RWDT node
    arm64: dts: r8a7796: Use SYSC "always-on" PM Domain
    ...

    Linus Torvalds
     
  • Pull ARM DT updates from Olof Johansson:
    "Device tree contents continue to be the largest branches we submit.
    This time around, some of the contents worth pointing out is:

    New SoC platforms:
    - Freescale i.MX 7Solo
    - Broadcom BCM23550
    - Cirrus Logic EP7209 and EP7211 (clps711x platforms)_
    - Hisilicon HI3519
    - Renesas R8A7792

    Some of the other delta that is sticking out, line-count wise:
    - Exynos moves of IP blocks under an SoC bus, which causes a large
    delta due to indentation changes
    - a new Tegra K1 board: Apalis
    - a bunch of small updates to many Allwinner platforms; new hardware
    support, some cleanup, etc"

    * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (426 commits)
    ARM: dts: sun8i: Add dts file for inet86dz board
    ARM: dts: sun8i: Add dts file for Polaroid MID2407PXE03 tablet
    ARM: dts: sun8i: Use sun8i-reference-design-tablet for ga10h dts
    ARM: dts: sun8i: Use sun8i-reference-design-tablet for polaroid mid2809pxe04
    ARM: dts: sun8i: reference-design-tablet: Add drivevbus-supply
    ARM: dts: Copy sun8i-q8-common.dtsi sun8i-reference-design-tablet.dtsi
    ARM: dts: sun5i: Use sun5i-reference-design-tablet.dtsi for utoo p66 dts
    ARM: dts: sun5i: Use sun5i-reference-design-tablet.dtsi for dit4350 dts
    ARM: dts: sun5i: reference-design-tablet: Remove mention of q8
    ARM: dts: sun5i: reference-design-tablet: Set lradc vref to avcc
    ARM: dts: sun5i: Rename sun5i-q8-common.dtsi sun5i-reference-design-tablet.dtsi
    ARM: dts: sun5i: Move q8 display bits to sun5i-a13-q8-tablet.dts
    ARM: dts: sunxi: Rename sunxi-q8-common.dtsi sunxi-reference-design-tablet.dtsi
    ARM: dts: at91: Don't build unnecessary dtbs
    ARM: dts: at91: sama5d3x: separate motherboard gmac and emac definitions
    ARM: dts: at91: at91sam9g25ek: fix isi endpoint node
    ARM: dts: at91: move isi definition to at91sam9g25ek
    ARM: dts: at91: fix i2c-gpio node name
    ARM: dts: at91: vinco: fix regulator name
    ARM: dts: at91: ariag25 : fix onewire node
    ...

    Linus Torvalds
     
  • Pull ARM SoC driver updates from Olof Johansson:
    "Driver updates for ARM SoCs.

    A slew of changes this release cycle. The reset driver tree, that we
    merge through arm-soc for historical reasons, is also sizable this
    time around.

    Among the changes:

    - clps711x: Treewide changes to compatible strings, merged here for simplicity.
    - Qualcomm: SCM firmware driver cleanups, move to platform driver
    - ux500: Major cleanups, removal of old mach-specific infrastructure.
    - Atmel external bus memory driver
    - Move of brcmstb platform to the rest of bcm
    - PMC driver updates for tegra, various fixes and improvements
    - Samsung platform driver updates to support 64-bit Exynos platforms
    - Reset controller cleanups moving to devm_reset_controller_register() APIs
    - Reset controller driver for Amlogic Meson
    - Reset controller driver for Hisilicon hi6220
    - ARM SCPI power domain support"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (100 commits)
    ARM: ux500: consolidate base platform files
    ARM: ux500: move soc_id driver to drivers/soc
    ARM: ux500: call ux500_setup_id later
    ARM: ux500: consolidate soc_device code in id.c
    ARM: ux500: remove cpu_is_u* helpers
    ARM: ux500: use CLK_OF_DECLARE()
    ARM: ux500: move l2x0 init to .init_irq
    mfd: db8500 stop passing around platform data
    ASoC: ab8500-codec: remove platform data based probe
    ARM: ux500: move ab8500_regulator_plat_data into driver
    ARM: ux500: remove unused regulator data
    soc: raspberrypi-power: add CONFIG_OF dependency
    firmware: scpi: add CONFIG_OF dependency
    video: clps711x-fb: Changing the compatibility string to match with the smallest supported chip
    input: clps711x-keypad: Changing the compatibility string to match with the smallest supported chip
    pwm: clps711x: Changing the compatibility string to match with the smallest supported chip
    serial: clps711x: Changing the compatibility string to match with the smallest supported chip
    irqchip: clps711x: Changing the compatibility string to match with the smallest supported chip
    clocksource: clps711x: Changing the compatibility string to match with the smallest supported chip
    clk: clps711x: Changing the compatibility string to match with the smallest supported chip
    ...

    Linus Torvalds
     
  • Pull ARM SoC defconfig updates from Olof Johansson:
    "Defconfig additions, removals, etc.

    Most of these are small changes adding the options for newly
    upstreamed drivers, or drivers needed for new board support.

    - removed Broadcom bcm_defconfig, targets are all covered in
    multi_v7_defconfig

    - new defconfig: multi_v4t_defconfig"

    * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (43 commits)
    ARM: multi_v7_defconfig: enable STMicroelectronics DRM Support
    ARM: multi_v7_defconfig: enable STMicroelectronics BDISP 2D blitter driver
    ARM: omap2plus_defconfig: Fix USB selection to keep Ethernet working
    ARM: configs: lpc18xx: enable adc and dac iio drivers
    ARM: config: Add a multi_v4t_defconfig
    ARM: multi_v7_defconfig: add ACT8945A
    ARM: at91/defconfig: Add ACT8945A driver
    ARM: imx_v6_v7_defconfig: Select ADS7846 support
    ARM: configs: qualcomm: Add MDM9615 missing defconfigs
    ARM: multi_v7_defconfig: Enable vivid driver as a module
    ARM: exynos_defconfig: Enable vivid driver as a module
    ARM: defconfig: enable the MSM8660 pin controller
    ARM: imx_v6_v7_defconfig: enable USB FFS gadget
    ARM: socfpga: enable PL330 DMA in socfpga_defconfig
    ARM: socfpga: add PCIe to socfpga_defconfig
    ARM: multi_v7_defconfig: defconfig: Enable r8a7792 SoC
    ARM: shmobile: defconfig: Enable r8a7792 SoC
    ARM: Remove bcm_defconfig
    ARM: multi_v7_defconfig: Enable Broadcom Kona watchdog
    ARM: multi_v7_defconfig: Enable Broadcom STB PWM
    ...

    Linus Torvalds
     
  • Pull 64-bit ARM SoC updates from Olof Johansson:
    "Changes to platform code for 64-bit ARM platforms.

    Nearly all of these are defconfig updates to enable new drivers or old
    drivers still used on these 64-bit platforms.

    Added platforms for this release are:

    - Broadcom BCM2837
    - Renesas R8A7796"

    * tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (22 commits)
    arm64: remove duplicate PWM entry in defconfig
    arm64: Update default configuration
    arm64: defconfig: Enable more IP blocks for Exynos7 and Exynos5433
    arm64: amlogic: select gxbb clk driver
    arm64: defconfig: Enable S2MPS11 clock and S3C RTC driver
    arm64: marvell: enable Armada 3700 clock drivers
    arm64: defconfig: enable msm8996 pinctrl support
    arm64: defconfig: Enable qcom msm8996 clk drivers
    arm: defconfig: Enable PM8941 pwr key
    arm64: defconfig: enable stmmac and realtek PHY as modules
    arm64: Kconfig: select PM{,_GENERIC_DOMAINS} for ARCH_VEXPRESS
    arm64: defconfig: enable SENSORS_ARM_SCPI
    arm64: defconfig: enable Generic on-chip SRAM driver
    arm64: configs: enable PCIe driver for Armada 7K/8K
    arm64: Add platform selection for BCM2835.
    arm64: defconfig: disable plain NEON implementation of AES
    arm64: Allow for different DMA and CPU bus offsets
    arm64: defconfig: enable Renesas R8A7796 SoC
    arm64: defconfig: Enable Cadence MACB/GEM support
    ARM64: Kconfig: Select the Amlogic Meson pin controller driver
    ...

    Linus Torvalds
     
  • Pull ARM SoC platform updates from Olof Johansson:
    "Improved and new platform support for various SoCs:

    New SoC support:
    - Broadcom BCM23550
    - Freescale i.MX7Solo
    - Qualcomm MDM9615
    - Renesas r8a7792

    Improvements:
    - convert clps711x to multiplatform
    - debug uart improvements for Atmel platforms
    - Tango platform improvements: HOTPLUG_CPU, Suspend-to-ram
    - OMAP tweaks and improvements to hwmod
    - OMAP support for kexec on SMP"

    * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (109 commits)
    ARM: davinci: fix build break because of undeclared dm365_evm_snd_data
    ARM: s3c64xx: smartq: Avoid sparse warnings
    ARM: sti: Implement dummy L2 cache's write_sec
    ARM: STi: Update machine _namestr to be more generic.
    arm: meson: explicitly select clk drivers
    ARM: tango: add Suspend-to-RAM support
    ARM: hisi: consolidate the hisilicon machine entries
    ARM: tango: fix CONFIG_HOTPLUG_CPU=n build
    MAINTAINERS: Update BCM281XX/BCM11XXX/BCM216XX entry
    MAINTAINERS: Update BCM63XX entry
    MAINTAINERS: Add NS2 entry
    MAINTAINERS: Fix nsp false-positives
    MAINTAINERS: Change L to M for Broadcom ARM/ARM64 SoC entries
    ARM: debug: Enable DEBUG_BCM_5301X for Northstar Plus SoCs
    ARM: clps711x: Switch to MULTIPLATFORM
    ARM: clps711x: Remove boards support
    ARM: clps711x: Add basic DT support
    ARM: clps711x: Reduce static map size
    ARM: SAMSUNG: Constify iomem address passed to s5p_init_cpu
    ARM: oxnas: Change OX810SE default driver config
    ...

    Linus Torvalds
     
  • Pull ARM SoC cleanups from Olof Johansson:
    "The cleanup branch keeps going down in size as we've completed a lot
    of the major legacy platform removals and conversions.

    A handful of changes this time around, some of the themes or larger
    sets are:

    - A bunch of i.MX cleanups around platform detection, init call cleanups
    - Misc fixes of missing/implicit includes
    - Removal of ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB"

    * tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (40 commits)
    ARM: mps2: fix typo
    ARM: s3c64xx: avoid warning about 'struct device_node'
    bus: mvebu-mbus: make mvebu_mbus_syscore_ops static
    bus: mvebu-mbus: fix __iomem on register pointers
    ARM: tegra: Remove board_init_funcs array
    ARM: iop: Fix indentation
    ARM: imx: remove cpu_is_mx*()
    ARM: imx: remove last call to cpu_is_mx5*
    ARM: imx: rework mx27_pm_init() call
    ARM: imx: deconstruct mx3_idle
    ARM: imx: deconstruct mxc_rnga initialization
    ARM: imx: remove cpu_is_mx1 check
    ARM: i.MX: Do not explicitly call l2x0_of_init()
    ARM: i.MX: system.c: Tweak prefetch settings for performance
    ARM: i.MX: system.c: Replace magic numbers
    ARM: i.MX: system.c: Remove redundant errata 752271 code
    ARM: i.MX: system.c: Convert goto to if statement
    ARM: Kirkwood: fix kirkwood_pm_init() declaration/type
    ARM: Kirkwood: make kirkwood_disable_mbus_error_propagation() static
    ARM: orion5x: make orion5x_legacy_handle_irq static
    ...

    Linus Torvalds
     
  • …/kernel/git/shuah/linux-kselftest

    Pull kselftest updates from Shuah Khan:
    "This contains new tests and fixes:

    - a few fixes to existing tests

    - new media tests for testing driver unbind, and device removal paths
    while an user application is actively making system calls and
    ioctls"

    * tag 'linux-kselftest-4.8-rc1-update' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    selftests: media_tests add a new video device test
    selftests: media_tests - Add media_device_open to .gitignore
    selftests: add media controller regression test scripts and document
    selftests: add media_device_open test
    selftests: media_device_test change it to randomize loop count
    selftests/vm: Don't mlockall MCL_CURRENT in on-fault-limit test
    selftests/vm: write strlen length instead of sizeof to nr_hugepages
    selftests/lib: set printf.sh executable

    Linus Torvalds
     
  • …kernel/git/shuah/linux-kselftest

    Pull kselftest fixes from Shuah Khan:

    - Add a new timer set-tz test case

    - Fix a bug in exec test Makefile dependency list

    * tag 'linux-kselftest-4.8-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    selftests/exec: Makefile is a run-time dependency, add it to the install list
    kselftests: timers: Add set-tz test case

    Linus Torvalds
     
  • …git/groeck/linux-staging

    Pull more hwmon updates from Guenter Roeck:

    - Improved error handling in tmp102, lm75, and lm90 drivers

    - Bug fixes in sht3x, ftsteutates, iio_hwmon, and adt7411 drivers

    * tag 'hwmon-for-linus-v4.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hwmon: (adt7411) set sane values for CFG1 and CFG3
    hwmon: (iio_hwmon) fix memory leak in name attribute
    hwmon: (ftsteutates) Fix potential memory access error
    hwmon: (tmp102) Improve error handling
    hwmon: (lm75) Improve error handling
    hwmon: (lm90) Improve error handling
    hwmon: (lm90) Add missing assignment
    hwmon: (sht3x) set initial jiffies to last_update

    Linus Torvalds
     
  • Pull crypto fixes from Herbert Xu:
    "This fixes a number of regressions in the marvell cesa driver caused
    by the chaining work, and a regression in lib/mpi that leads to a
    GFP_KERNEL allocation with preemption disabled"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    crypto: marvell - Don't copy IV vectors from the _process op for ciphers
    lib/mpi: Fix SG miter leak
    crypto: marvell - Update cache with input sg only when it is unmapped
    crypto: marvell - Don't chain at DMA level when backlog is disabled
    crypto: marvell - Fix memory leaks in TDMA chain for cipher requests

    Linus Torvalds
     
  • Pull x86 header cleanups from Ingo Molnar:
    "This tree is a cleanup of the x86 tree reducing spurious uses of
    module.h - which should improve build performance a bit"

    * 'x86-headers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, crypto: Restore MODULE_LICENSE() to glue_helper.c so it loads
    x86/apic: Remove duplicated include from probe_64.c
    x86/ce4100: Remove duplicated include from ce4100.c
    x86/headers: Include spinlock_types.h in x8664_ksyms_64.c for missing spinlock_t
    x86/platform: Delete extraneous MODULE_* tags fromm ts5500
    x86: Audit and remove any remaining unnecessary uses of module.h
    x86/kvm: Audit and remove any unnecessary uses of module.h
    x86/xen: Audit and remove any unnecessary uses of module.h
    x86/platform: Audit and remove any unnecessary uses of module.h
    x86/lib: Audit and remove any unnecessary uses of module.h
    x86/kernel: Audit and remove any unnecessary uses of module.h
    x86/mm: Audit and remove any unnecessary uses of module.h
    x86: Don't use module.h just for AUTHOR / LICENSE tags

    Linus Torvalds
     

01 Aug, 2016

2 commits

  • Pull backlight updates from Lee Jones:
    "Add support for an enable regulator to lp855x_bl"

    * tag 'backlight-for-linus-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
    backlight: lp855x: Add enable regulator

    Linus Torvalds
     
  • Pull MFD updates from Lee Jones:
    "Core Framework:
    - New API to call bespoke pre/post IRQ handlers; Regmap

    New Device Support:
    - Add support for RN5T567 to rn5t618
    - Add support for COMe-cSL6 and COMe-mAL10 to kempld-core

    New Functionality:
    - Add support for USB Power Supply to axp20x
    - Add support for Power Key to hi655x-pmic

    Fix-ups:
    - Update MAINTAINERS; Dialog, Altera
    - Remove module support; max77843, max77620, max8998, max8997, max8925-i2c
    - Add module support; max14577
    - Constifying; max77620
    - Allow bespoke IRQ masking/unmasking; max77620
    - Remove superfluous code; arizona, qcom_rpm, smsc-ece1099
    - Power Management fixups; arizona-core
    - Error-path improvement; twl-core, dm355evm_msp, smsc-ece1099, hi655x
    - Clocking fixups; twl6040
    - Trivial (spelling, headers, coding-style, whitespace, (re)naming);
    si476x-i2c, omap-usb-tll, ti_am335x_tscadc, tps6507, hi655x-pmic

    Bug Fixes:
    - Fix offset error for MSM8660; qcom_rpm
    - Fix possible spurious IRQs; arizona, hi655x-pmic"

    * tag 'mfd-for-linus-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (42 commits)
    mfd: qcom_rpm: Parametrize also ack selector size
    mfd: twl6040: Handle mclk used for HPPLL and optional internal clock source
    mfd: Add support for COMe-cSL6 and COMe-mAL10 to Kontron PLD driver
    mfd: hi655x: Fix return value check in hi655x_pmic_probe()
    mfd: smsc-ece1099: Return directly after a function failure in smsc_i2c_probe()
    mfd: smsc-ece1099: Delete an unnecessary variable initialisation in smsc_i2c_probe()
    mfd: dm355evm_msp: Return directly after a failed platform_device_alloc() in add_child()
    mfd: twl-core: Refactoring for add_numbered_child()
    mfd: twl-core: Return directly after a failed platform_device_alloc() in add_numbered_child()
    mfd: arizona: Add missing disable of PM runtime on probe error path
    mfd: stmpe: Move platform data into MFD driver
    mfd: max14577: Allow driver to be built as a module
    mfd: max14577: Use module_init() instead of subsys_initcall()
    mfd: arizona: Remove some duplicate defines
    mfd: qcom_rpm: Remove unused define
    mfd: hi655x-pmic: Add powerkey device to hi655x PMIC driver
    mfd: hi655x-pmic: Rename some interrupt macro names
    mfd: hi655x-pmic: Fixup issue with un-acked interrupts
    mfd: arizona: Check if AOD interrupts are pending before dispatching
    mfd: qcom_rpm: Fix offset error for msm8660
    ...

    Linus Torvalds