1. 26 Oct, 2018 26 commits
    • Aaron Tomlin's avatar
      slub: extend slub debug to handle multiple slabs · c5fd3ca0
      Aaron Tomlin authored
      Extend the slub_debug syntax to "slub_debug=<flags>[,<slub>]*", where
      <slub> may contain an asterisk at the end.  For example, the following
      would poison all kmalloc slabs:
      
      	slub_debug=P,kmalloc*
      
      and the following would apply the default flags to all kmalloc and all
      block IO slabs:
      
      	slub_debug=,bio*,kmalloc*
      
      Please note that a similar patch was posted by Iliyan Malchev some time
      ago but was never merged:
      
      	https://marc.info/?l=linux-mm&m=131283905330474&w=2
      
      Link: http://lkml.kernel.org/r/20180928111139.27962-1-atomlin@redhat.comSigned-off-by: default avatarAaron Tomlin <atomlin@redhat.com>
      Acked-by: default avatarChristoph Lameter <cl@linux.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: Iliyan Malchev <malchev@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c5fd3ca0
    • Dmitry Vyukov's avatar
      mm: don't warn about large allocations for slab · 61448479
      Dmitry Vyukov authored
      Slub does not call kmalloc_slab() for sizes > KMALLOC_MAX_CACHE_SIZE,
      instead it falls back to kmalloc_large().
      
      For slab KMALLOC_MAX_CACHE_SIZE == KMALLOC_MAX_SIZE and it calls
      kmalloc_slab() for all allocations relying on NULL return value for
      over-sized allocations.
      
      This inconsistency leads to unwanted warnings from kmalloc_slab() for
      over-sized allocations for slab.  Returning NULL for failed allocations is
      the expected behavior.
      
      Make slub and slab code consistent by checking size >
      KMALLOC_MAX_CACHE_SIZE in slab before calling kmalloc_slab().
      
      While we are here also fix the check in kmalloc_slab().  We should check
      against KMALLOC_MAX_CACHE_SIZE rather than KMALLOC_MAX_SIZE.  It all kinda
      worked because for slab the constants are the same, and slub always checks
      the size against KMALLOC_MAX_CACHE_SIZE before kmalloc_slab().  But if we
      get there with size > KMALLOC_MAX_CACHE_SIZE anyhow bad things will
      happen.  For example, in case of a newly introduced bug in slub code.
      
      Also move the check in kmalloc_slab() from function entry to the size >
      192 case.  This partially compensates for the additional check in slab
      code and makes slub code a bit faster (at least theoretically).
      
      Also drop __GFP_NOWARN in the warning check.  This warning means a bug in
      slab code itself, user-passed flags have nothing to do with it.
      
      Nothing of this affects slob.
      
      Link: http://lkml.kernel.org/r/20180927171502.226522-1-dvyukov@gmail.comSigned-off-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Reported-by: syzbot+87829a10073277282ad1@syzkaller.appspotmail.com
      Reported-by: syzbot+ef4e8fc3a06e9019bb40@syzkaller.appspotmail.com
      Reported-by: syzbot+6e438f4036df52cbb863@syzkaller.appspotmail.com
      Reported-by: syzbot+8574471d8734457d98aa@syzkaller.appspotmail.com
      Reported-by: syzbot+af1504df0807a083dbd9@syzkaller.appspotmail.com
      Acked-by: default avatarChristoph Lameter <cl@linux.com>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      61448479
    • Andy Shevchenko's avatar
      mm/slub.c: switch to bitmap_zalloc() · 0684e652
      Andy Shevchenko authored
      Switch to bitmap_zalloc() to show clearly what we are allocating.  Besides
      that it returns pointer of bitmap type instead of opaque void *.
      
      Link: http://lkml.kernel.org/r/20180830104301.61649-1-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: default avatarChristoph Lameter <cl@linux.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Tested-by: default avatarDavid Rientjes <rientjes@google.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0684e652
    • Jiri Slaby's avatar
      xtensa: use generic vga.h · 253cc22f
      Jiri Slaby authored
      What xtensa has in asm/vga.h is the same as what can be found in
      asm-generic/vga.h.  So use the latter header.
      
      Link: http://lkml.kernel.org/r/20180907132219.12979-1-jslaby@suse.czSigned-off-by: default avatarJiri Slaby <jslaby@suse.cz>
      Acked-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
      Cc: Chris Zankel <chris@zankel.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      253cc22f
    • Souptick Joarder's avatar
      fs/iomap.c: change return type to vm_fault_t · 5780a02f
      Souptick Joarder authored
      Change iomap_page_mkwrite() return type to vm_fault_t.
      
      see commit 1c8f4220 ("mm: change return type to vm_fault_t") for
      reference.
      
      Link: http://lkml.kernel.org/r/20180827172050.GA18673@jordon-HP-15-Notebook-PCSigned-off-by: default avatarSouptick Joarder <jrdr.linux@gmail.com>
      Reviewed-by: default avatarMatthew Wilcox <mawilcox@microsoft.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5780a02f
    • YueHaibing's avatar
      ocfs2: remove set but not used variable 'rb' · 867632d6
      YueHaibing authored
      Fixes gcc '-Wunused-but-set-variable' warning:
      
      fs/ocfs2/refcounttree.c: In function 'ocfs2_create_reflink_node':
      fs/ocfs2/refcounttree.c:4138:31: warning:
       variable 'rb' set but not used [-Wunused-but-set-variable]
      
      Link: http://lkml.kernel.org/r/1536198443-113047-1-git-send-email-yuehaibing@huawei.comSigned-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Mark Fasheh <mark@fasheh.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Joseph Qi <jiangqi903@gmail.com>
      Cc: Changwei Ge <ge.changwei@h3c.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      867632d6
    • Jia-Ju Bai's avatar
      fs/ocfs2/dlm/dlmdebug.c: fix a sleep-in-atomic-context bug in dlm_print_one_mle() · 99986576
      Jia-Ju Bai authored
      The kernel module may sleep with holding a spinlock.
      
      The function call paths (from bottom to top) in Linux-4.16 are:
      
      [FUNC] get_zeroed_page(GFP_NOFS)
      fs/ocfs2/dlm/dlmdebug.c, 332: get_zeroed_page in dlm_print_one_mle
      fs/ocfs2/dlm/dlmmaster.c, 240: dlm_print_one_mle in __dlm_put_mle
      fs/ocfs2/dlm/dlmmaster.c, 255: __dlm_put_mle in dlm_put_mle
      fs/ocfs2/dlm/dlmmaster.c, 254: spin_lock in dlm_put_ml
      
      [FUNC] get_zeroed_page(GFP_NOFS)
      fs/ocfs2/dlm/dlmdebug.c, 332: get_zeroed_page in dlm_print_one_mle
      fs/ocfs2/dlm/dlmmaster.c, 240: dlm_print_one_mle in __dlm_put_mle
      fs/ocfs2/dlm/dlmmaster.c, 222: __dlm_put_mle in dlm_put_mle_inuse
      fs/ocfs2/dlm/dlmmaster.c, 219: spin_lock in dlm_put_mle_inuse
      
      To fix this bug, GFP_NOFS is replaced with GFP_ATOMIC.
      
      This bug is found by my static analysis tool DSAC.
      
      Link: http://lkml.kernel.org/r/20180901112528.27025-1-baijiaju1990@gmail.comSigned-off-by: default avatarJia-Ju Bai <baijiaju1990@gmail.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Mark Fasheh <mark@fasheh.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Joseph Qi <jiangqi903@gmail.com>
      Cc: Changwei Ge <ge.changwei@h3c.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      99986576
    • Ding Xiang's avatar
      ocfs2: remove unneeded null check · 0ae1c2db
      Ding Xiang authored
      Null check for kfree is unnecessary, so remove it.
      
      Link: http://lkml.kernel.org/r/1535704514-26559-1-git-send-email-dingxiang@cmss.chinamobile.comSigned-off-by: default avatarDing Xiang <dingxiang@cmss.chinamobile.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Mark Fasheh <mark@fasheh.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Joseph Qi <jiangqi903@gmail.com>
      Cc: Changwei Ge <ge.changwei@h3c.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0ae1c2db
    • Colin Ian King's avatar
      ocfs2: remove unused pointer 'eb' · 2de24cb7
      Colin Ian King authored
      Pointer 'eb' is being assigned but is never used hence it is
      redundant and can be removed.
      
      Cleans up clang warning:
      warning: variable 'eb' set but not used [-Wunused-but-set-variable]
      
      Link: http://lkml.kernel.org/r/20180828141907.10826-1-colin.king@canonical.comSigned-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Mark Fasheh <mark@fasheh.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Joseph Qi <jiangqi903@gmail.com>
      Cc: Changwei Ge <ge.changwei@h3c.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2de24cb7
    • Nathan Chancellor's avatar
      ocfs2/dlm: remove unnecessary parentheses · 32c1b90d
      Nathan Chancellor authored
      Clang warns when more than one set of parentheses is used for a
      single conditional statement:
      
      fs/ocfs2/dlm/dlmthread.c:534:18: warning: equality comparison with extraneous
            parentheses [-Wparentheses-equality]
              if ((res->owner == dlm->node_num)) {
                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~
      fs/ocfs2/dlm/dlmthread.c:534:18: note: remove extraneous parentheses around the
            comparison to silence this warning
              if ((res->owner == dlm->node_num)) {
                  ~           ^               ~
      
      Link: http://lkml.kernel.org/r/20180924181929.6853-1-natechancellor@gmail.comSigned-off-by: default avatarNathan Chancellor <natechancellor@gmail.com>
      Reported-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      32c1b90d
    • Kirill Tkhai's avatar
      scripts/tags.sh: add DECLARE_HASHTABLE() · 1f6904f7
      Kirill Tkhai authored
      In addition to DEFINE_HASHTABLE() add DECLARE_ variant.
      
      Link: http://lkml.kernel.org/r/153683203215.13678.11468076350083405643.stgit@localhost.localdomainSigned-off-by: default avatarKirill Tkhai <ktkhai@virtuozzo.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
      Cc: Constantine Shulyupin <const@MakeLinux.com>
      Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
      Cc: Daniel Borkmann <daniel@iogearbox.net>
      Cc: Joey Pabalinas <joeypabalinas@gmail.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1f6904f7
    • Andrey Ryabinin's avatar
      lib/test_kasan.c: add tests for several string/memory API functions · 0c96350a
      Andrey Ryabinin authored
      Arch code may have asm implementation of string/memory API functions
      instead of using generic one from lib/string.c.  KASAN don't see memory
      accesses in asm code, thus can miss many bugs.
      
      E.g.  on ARM64 KASAN don't see bugs in memchr(), memcmp(), str[r]chr(),
      str[n]cmp(), str[n]len().  Add tests for these functions to be sure that
      we notice the problem on other architectures.
      
      Link: http://lkml.kernel.org/r/20180920135631.23833-3-aryabinin@virtuozzo.comSigned-off-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Kyeongdon Kim <kyeongdon.kim@lge.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0c96350a
    • Andrey Ryabinin's avatar
      arm64: lib: use C string functions with KASAN enabled · 19a2ca0f
      Andrey Ryabinin authored
      ARM64 has asm implementation of memchr(), memcmp(), str[r]chr(),
      str[n]cmp(), str[n]len().  KASAN don't see memory accesses in asm code,
      thus it can potentially miss many bugs.
      
      Ifdef out __HAVE_ARCH_* defines of these functions when KASAN is enabled,
      so the generic implementations from lib/string.c will be used.
      
      We can't just remove the asm functions because efistub uses them.  And we
      can't have two non-weak functions either, so declare the asm functions as
      weak.
      
      Link: http://lkml.kernel.org/r/20180920135631.23833-2-aryabinin@virtuozzo.comSigned-off-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
      Reported-by: default avatarKyeongdon Kim <kyeongdon.kim@lge.com>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      19a2ca0f
    • Andrey Ryabinin's avatar
      include/linux/linkage.h: align weak symbols · 74f213ea
      Andrey Ryabinin authored
      Since WEAK() supposed to be used instead of ENTRY() to define weak
      symbols, but unlike ENTRY() it doesn't have ALIGN directive.  It seems
      there is no actual reason to not have, so let's add ALIGN to WEAK() too.
      
      Link: http://lkml.kernel.org/r/20180920135631.23833-1-aryabinin@virtuozzo.comSigned-off-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
      Will Deacon <will.deacon@arm.com>, Catalin Marinas <catalin.marinas@arm.com>
      Cc: Kyeongdon Kim <kyeongdon.kim@lge.com>
      Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      74f213ea
    • Sebastien Boisvert's avatar
      include/linux/pfn_t.h: force '~' to be parsed as an unary operator · 4d54954a
      Sebastien Boisvert authored
      Tracing the event "fs_dax:dax_pmd_insert_mapping" with perf produces this
      warning:
      
            [fs_dax:dax_pmd_insert_mapping] unknown op '~'
      
      It is printed in process_op (tools/lib/traceevent/event-parse.c) because
      '~' is parsed as a binary operator.
      
      perf reads the format of fs_dax:dax_pmd_insert_mapping ("print fmt") from
      /sys/kernel/debug/tracing/events/fs_dax/dax_pmd_insert_mapping/format .
      
      The format contains:
      
      ~(((u64) ~(~(((1UL) << 12)-1)))
               ^
               \ interpreted as a binary operator by process_op().
      
      This part is generated in the declaration of the event class
      dax_pmd_insert_mapping_class in include/trace/events/fs_dax.h :
      
      		__print_flags_u64(__entry->pfn_val & PFN_FLAGS_MASK, "|",
      			PFN_FLAGS_TRACE),
      
      This patch adds a pair of parentheses in the declaration of PFN_FLAGS_MASK
      to make sure that '~' is parsed as a unary operator by perf.
      
      The part of the format that was problematic is now:
      
      ~(((u64) (~(~(((1UL) << 12)-1))))
      
      Now, all the '~' are parsed as unary operators.
      
      Link: http://lkml.kernel.org/r/20181021145939.8760-1-sebhtml@videotron.qc.caSigned-off-by: default avatarSebastien Boisvert <sebhtml@videotron.qc.ca>
      Acked-by: default avatarDan Williams <dan.j.williams@intel.com>
      Cc: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: "Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Ross Zwisler <zwisler@kernel.org>
      Cc: Elenie Godzaridis <arangradient@gmail.com>
      Cc: <stable@vger.kerenl.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4d54954a
    • Christoph Hellwig's avatar
      userfaultfd: disable irqs when taking the waitqueue lock · ae62c16e
      Christoph Hellwig authored
      userfaultfd contains howe-grown locking of the waitqueue lock, and does
      not disable interrupts.  This relies on the fact that no one else takes it
      from interrupt context and violates an invariat of the normal waitqueue
      locking scheme.  With aio poll it is easy to trigger other locks that
      disable interrupts (or are called from interrupt context).
      
      Link: http://lkml.kernel.org/r/20181018154101.18750-1-hch@lst.deSigned-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarAndrea Arcangeli <aarcange@redhat.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: <stable@vger.kernel.org>	[4.19.x]
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ae62c16e
    • Vlastimil Babka's avatar
      mm: /proc/pid/smaps_rollup: fix NULL pointer deref in smaps_pte_range() · fa76da46
      Vlastimil Babka authored
      Leonardo reports an apparent regression in 4.19-rc7:
      
       BUG: unable to handle kernel NULL pointer dereference at 00000000000000f0
       PGD 0 P4D 0
       Oops: 0000 [#1] PREEMPT SMP PTI
       CPU: 3 PID: 6032 Comm: python Not tainted 4.19.0-041900rc7-lowlatency #201810071631
       Hardware name: LENOVO 80UG/Toronto 4A2, BIOS 0XCN45WW 08/09/2018
       RIP: 0010:smaps_pte_range+0x32d/0x540
       Code: 80 00 00 00 00 74 a9 48 89 de 41 f6 40 52 40 0f 85 04 02 00 00 49 2b 30 48 c1 ee 0c 49 03 b0 98 00 00 00 49 8b 80 a0 00 00 00 <48> 8b b8 f0 00 00 00 e8 b7 ef ec ff 48 85 c0 0f 84 71 ff ff ff a8
       RSP: 0018:ffffb0cbc484fb88 EFLAGS: 00010202
       RAX: 0000000000000000 RBX: 0000560ddb9e9000 RCX: 0000000000000000
       RDX: 0000000000000000 RSI: 0000000560ddb9e9 RDI: 0000000000000001
       RBP: ffffb0cbc484fbc0 R08: ffff94a5a227a578 R09: ffff94a5a227a578
       R10: 0000000000000000 R11: 0000560ddbbe7000 R12: ffffe903098ba728
       R13: ffffb0cbc484fc78 R14: ffffb0cbc484fcf8 R15: ffff94a5a2e9cf48
       FS:  00007f6dfb683740(0000) GS:ffff94a5aaf80000(0000) knlGS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
       CR2: 00000000000000f0 CR3: 000000011c118001 CR4: 00000000003606e0
       DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
       DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
       Call Trace:
        __walk_page_range+0x3c2/0x6f0
        walk_page_vma+0x42/0x60
        smap_gather_stats+0x79/0xe0
        ? gather_pte_stats+0x320/0x320
        ? gather_hugetlb_stats+0x70/0x70
        show_smaps_rollup+0xcd/0x1c0
        seq_read+0x157/0x400
        __vfs_read+0x3a/0x180
        ? security_file_permission+0x93/0xc0
        ? security_file_permission+0x93/0xc0
        vfs_read+0x8f/0x140
        ksys_read+0x55/0xc0
        __x64_sys_read+0x1a/0x20
        do_syscall_64+0x5a/0x110
        entry_SYSCALL_64_after_hwframe+0x44/0xa9
      
      Decoded code matched to local compilation+disassembly points to
      smaps_pte_entry():
      
              } else if (unlikely(IS_ENABLED(CONFIG_SHMEM) && mss->check_shmem_swap
                                                              && pte_none(*pte))) {
                      page = find_get_entry(vma->vm_file->f_mapping,
                                                      linear_page_index(vma, addr));
      
      Here, vma->vm_file is NULL.  mss->check_shmem_swap should be false in that
      case, however for smaps_rollup, smap_gather_stats() can set the flag true
      for one vma and leave it true for subsequent vma's where it should be
      false.
      
      To fix, reset the check_shmem_swap flag to false.  There's also related
      bug which sets mss->swap to shmem_swapped, which in the context of
      smaps_rollup overwrites any value accumulated from previous vma's.  Fix
      that as well.
      
      Note that the report suggests a regression between 4.17.19 and 4.19-rc7,
      which makes the 4.19 series ending with commit 258f669e ("mm:
      /proc/pid/smaps_rollup: convert to single value seq_file") suspicious.
      But the mss was reused for rollup since 493b0e9d ("mm: add
      /proc/pid/smaps_rollup") so let's play it safe with the stable backport.
      
      Link: http://lkml.kernel.org/r/555fbd1f-4ac9-0b58-dcd4-5dc4380ff7ca@suse.cz
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=201377
      Fixes: 493b0e9d ("mm: add /proc/pid/smaps_rollup")
      Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Reported-by: default avatarLeonardo Soares Müller <leozinho29_eu@hotmail.com>
      Tested-by: default avatarLeonardo Soares Müller <leozinho29_eu@hotmail.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Daniel Colascione <dancol@google.com>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fa76da46
    • Linus Torvalds's avatar
      Merge tag 'char-misc-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 18d0eae3
      Linus Torvalds authored
      Pull char/misc driver updates from Greg KH:
       "Here is the big set of char/misc patches for 4.20-rc1.
      
        Loads of things here, we have new code in all of these driver
        subsystems:
         - fpga
         - stm
         - extcon
         - nvmem
         - eeprom
         - hyper-v
         - gsmi
         - coresight
         - thunderbolt
         - vmw_balloon
         - goldfish
         - soundwire
        along with lots of fixes and minor changes to other small drivers.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'char-misc-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (245 commits)
        Documentation/security-bugs: Clarify treatment of embargoed information
        lib: Fix ia64 bootloader linkage
        MAINTAINERS: Clarify UIO vs UIOVEC maintainer
        docs/uio: fix a grammar nitpick
        docs: fpga: document programming fpgas using regions
        fpga: add devm_fpga_region_create
        fpga: bridge: add devm_fpga_bridge_create
        fpga: mgr: add devm_fpga_mgr_create
        hv_balloon: Replace spin_is_locked() with lockdep
        sgi-xp: Replace spin_is_locked() with lockdep
        eeprom: New ee1004 driver for DDR4 memory
        eeprom: at25: remove unneeded 'at25_remove'
        w1: IAD Register is yet readable trough iad sys file. Fix snprintf (%u for unsigned, count for max size).
        misc: mic: scif: remove set but not used variables 'src_dma_addr, dst_dma_addr'
        misc: mic: fix a DMA pool free failure
        platform: goldfish: pipe: Add a blank line to separate varibles and code
        platform: goldfish: pipe: Remove redundant casting
        platform: goldfish: pipe: Call misc_deregister if init fails
        platform: goldfish: pipe: Move the file-scope goldfish_pipe_dev variable into the driver state
        platform: goldfish: pipe: Move the file-scope goldfish_pipe_miscdev variable into the driver state
        ...
      18d0eae3
    • Linus Torvalds's avatar
      Merge tag 'driver-core-4.20-rc1' of... · 26873aca
      Linus Torvalds authored
      Merge tag 'driver-core-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core updates from Greg KH:
       "Here is a small number of driver core patches for 4.20-rc1.
      
        Not much happened here this merge window, only a very tiny number of
        patches that do:
      
         - add BUS_ATTR_WO() for use by drivers
      
         - component error path fixes
      
         - kernfs range check fix
      
         - other tiny error path fixes and const changes
      
        All of these have been in linux-next with no reported issues for a
        while"
      
      * tag 'driver-core-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        devres: provide devm_kstrdup_const()
        mm: move is_kernel_rodata() to asm-generic/sections.h
        devres: constify p in devm_kfree()
        driver core: add BUS_ATTR_WO() macro
        kernfs: Fix range checks in kernfs_get_target_path
        component: fix loop condition to call unbind() if bind() fails
        drivers/base/devtmpfs.c: don't pretend path is const in delete_path
        kernfs: update comment about kernfs_path() return value
      26873aca
    • Linus Torvalds's avatar
      Merge tag 'usb-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 9703fc8c
      Linus Torvalds authored
      Pull USB/PHY updates from Greg KH:
       "Here is the big USB/PHY driver patches for 4.20-rc1
      
        Lots of USB changes in here, primarily in these areas:
      
         - typec updates and new drivers
      
         - new PHY drivers
      
         - dwc2 driver updates and additions (this old core keeps getting
           added to new devices.)
      
         - usbtmc major update based on the industry group coming together and
           working to add new features and performance to the driver.
      
         - USB gadget additions for new features
      
         - USB gadget configfs updates
      
         - chipidea driver updates
      
         - other USB gadget updates
      
         - USB serial driver updates
      
         - renesas driver updates
      
         - xhci driver updates
      
         - other tiny USB driver updates
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'usb-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (229 commits)
        usb: phy: ab8500: silence some uninitialized variable warnings
        usb: xhci: tegra: Add genpd support
        usb: xhci: tegra: Power-off power-domains on removal
        usbip:vudc: BUG kmalloc-2048 (Not tainted): Poison overwritten
        usbip: tools: fix atoi() on non-null terminated string
        USB: misc: appledisplay: fix backlight update_status return code
        phy: phy-pxa-usb: add a new driver
        usb: host: add DT bindings for faraday fotg2
        usb: host: ohci-at91: fix request of irq for optional gpio
        usb/early: remove set but not used variable 'remain_length'
        usb: typec: Fix copy/paste on typec_set_vconn_role() kerneldoc
        usb: typec: tcpm: Report back negotiated PPS voltage and current
        USB: core: remove set but not used variable 'udev'
        usb: core: fix memory leak on port_dev_path allocation
        USB: net2280: Remove ->disconnect() callback from net2280_pullup()
        usb: dwc2: disable power_down on rockchip devices
        usb: gadget: udc: renesas_usb3: add support for r8a77990
        dt-bindings: usb: renesas_usb3: add bindings for r8a77990
        usb: gadget: udc: renesas_usb3: Add r8a774a1 support
        USB: serial: cypress_m8: remove set but not used variable 'iflag'
        ...
      9703fc8c
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · da19a102
      Linus Torvalds authored
      Pull rdma updates from Jason Gunthorpe:
       "This has been a smaller cycle with many of the commits being smallish
        code fixes and improvements across the drivers.
      
         - Driver updates for bnxt_re, cxgb4, hfi1, hns, mlx5, nes, qedr, and
           rxe
      
         - Memory window support in hns
      
         - mlx5 user API 'flow mutate/steering' allows accessing the full
           packet mangling and matching machinery from user space
      
         - Support inter-working with verbs API calls in the 'devx' mlx5 user
           API, and provide options to use devx with less privilege
      
         - Modernize the use of syfs and the device interface to use attribute
           groups and cdev properly for uverbs, and clean up some of the core
           code's device list management
      
         - More progress on net namespaces for RDMA devices
      
         - Consolidate driver BAR mmapping support into core code helpers and
           rework how RDMA holds poitners to mm_struct for get_user_pages
           cases
      
         - First pass to use 'dev_name' instead of ib_device->name
      
         - Device renaming for RDMA devices"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (242 commits)
        IB/mlx5: Add support for extended atomic operations
        RDMA/core: Fix comment for hw stats init for port == 0
        RDMA/core: Refactor ib_register_device() function
        RDMA/core: Fix unwinding flow in case of error to register device
        ib_srp: Remove WARN_ON in srp_terminate_io()
        IB/mlx5: Allow scatter to CQE without global signaled WRs
        IB/mlx5: Verify that driver supports user flags
        IB/mlx5: Support scatter to CQE for DC transport type
        RDMA/drivers: Use core provided API for registering device attributes
        RDMA/core: Allow existing drivers to set one sysfs group per device
        IB/rxe: Remove unnecessary enum values
        RDMA/umad: Use kernel API to allocate umad indexes
        RDMA/uverbs: Use kernel API to allocate uverbs indexes
        RDMA/core: Increase total number of RDMA ports across all devices
        IB/mlx4: Add port and TID to MAD debug print
        IB/mlx4: Enable debug print of SMPs
        RDMA/core: Rename ports_parent to ports_kobj
        RDMA/core: Do not expose unsupported counters
        IB/mlx4: Refer to the device kobject instead of ports_parent
        RDMA/nldev: Allow IB device rename through RDMA netlink
        ...
      da19a102
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · e5f6d9af
      Linus Torvalds authored
      Pull sparc fix from David Miller:
       "Build regression fix"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc: Fix VDSO build with older binutils.
      e5f6d9af
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-4.20-mw0' of... · c300af28
      Linus Torvalds authored
      Merge tag 'riscv-for-linus-4.20-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux
      
      Pull RISC-V updates from Palmer Dabbelt:
       "This patch set contains a lot (at least, for me) of improvements to
        the RISC-V kernel port:
      
         - The removal of some cacheinfo values that were bogus.
      
         - On systems with F but without D the kernel will not show the F
           extension to userspace, as it isn't actually supported.
      
         - Support for futexes.
      
         - Removal of some unused code.
      
         - Cleanup of some menuconfig entries.
      
         - Support for systems without a floating-point unit, and for building
           kernels that will never use the floating-point unit.
      
         - More fixes to the RV32I port, which regressed again. It's really
           time to get this into a regression test somewhere so I stop
           breaking it. Thanks to Zong for resurrecting it again!
      
         - Various fixes that resulted from a year old review of our original
           patch set that I finally got around to.
      
         - Various improvements to SMP support, largely based around having
           switched to logical hart numbering, as well as some interrupt
           improvements. This one is in the same patch set as above, thanks to
           Atish for sheparding everything though as my patch set was a bit of
           a mess.
      
        I'm pretty sure this is our largest patch set since the original
        kernel contribution, and it's certainly the one with the most
        contributors. While I don't have anything else I know I'm going to
        submit for the merge window, I would be somewhat surprised if I didn't
        screw anything up.
      
        Thanks for the help, everyone!"
      
      * tag 'riscv-for-linus-4.20-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux: (31 commits)
        RISC-V: Cosmetic menuconfig changes
        riscv: move GCC version check for ARCH_SUPPORTS_INT128 to Kconfig
        RISC-V: remove the unused return_to_handler export
        RISC-V: Add futex support.
        RISC-V: Add FP register ptrace support for gdb.
        RISC-V: Mask out the F extension on systems without D
        RISC-V: Don't set cacheinfo.{physical_line_partition,attributes}
        RISC-V: Show IPI stats
        RISC-V: Show CPU ID and Hart ID separately in /proc/cpuinfo
        RISC-V: Use Linux logical CPU number instead of hartid
        RISC-V: Add logical CPU indexing for RISC-V
        RISC-V: Use WRITE_ONCE instead of direct access
        RISC-V: Use mmgrab()
        RISC-V: Rename im_okay_therefore_i_am to found_boot_cpu
        RISC-V: Rename riscv_of_processor_hart to riscv_of_processor_hartid
        RISC-V: Provide a cleaner raw_smp_processor_id()
        RISC-V: Disable preemption before enabling interrupts
        RISC-V: Comment on the TLB flush in smp_callin()
        RISC-V: Filter ISA and MMU values in cpuinfo
        RISC-V: Don't set cacheinfo.{physical_line_partition,attributes}
        ...
      c300af28
    • Linus Torvalds's avatar
      Merge tag 'kvm-4.20-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 0d1e8b8d
      Linus Torvalds authored
      Pull KVM updates from Radim Krčmář:
       "ARM:
         - Improved guest IPA space support (32 to 52 bits)
      
         - RAS event delivery for 32bit
      
         - PMU fixes
      
         - Guest entry hardening
      
         - Various cleanups
      
         - Port of dirty_log_test selftest
      
        PPC:
         - Nested HV KVM support for radix guests on POWER9. The performance
           is much better than with PR KVM. Migration and arbitrary level of
           nesting is supported.
      
         - Disable nested HV-KVM on early POWER9 chips that need a particular
           hardware bug workaround
      
         - One VM per core mode to prevent potential data leaks
      
         - PCI pass-through optimization
      
         - merge ppc-kvm topic branch and kvm-ppc-fixes to get a better base
      
        s390:
         - Initial version of AP crypto virtualization via vfio-mdev
      
         - Improvement for vfio-ap
      
         - Set the host program identifier
      
         - Optimize page table locking
      
        x86:
         - Enable nested virtualization by default
      
         - Implement Hyper-V IPI hypercalls
      
         - Improve #PF and #DB handling
      
         - Allow guests to use Enlightened VMCS
      
         - Add migration selftests for VMCS and Enlightened VMCS
      
         - Allow coalesced PIO accesses
      
         - Add an option to perform nested VMCS host state consistency check
           through hardware
      
         - Automatic tuning of lapic_timer_advance_ns
      
         - Many fixes, minor improvements, and cleanups"
      
      * tag 'kvm-4.20-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (204 commits)
        KVM/nVMX: Do not validate that posted_intr_desc_addr is page aligned
        Revert "kvm: x86: optimize dr6 restore"
        KVM: PPC: Optimize clearing TCEs for sparse tables
        x86/kvm/nVMX: tweak shadow fields
        selftests/kvm: add missing executables to .gitignore
        KVM: arm64: Safety check PSTATE when entering guest and handle IL
        KVM: PPC: Book3S HV: Don't use streamlined entry path on early POWER9 chips
        arm/arm64: KVM: Enable 32 bits kvm vcpu events support
        arm/arm64: KVM: Rename function kvm_arch_dev_ioctl_check_extension()
        KVM: arm64: Fix caching of host MDCR_EL2 value
        KVM: VMX: enable nested virtualization by default
        KVM/x86: Use 32bit xor to clear registers in svm.c
        kvm: x86: Introduce KVM_CAP_EXCEPTION_PAYLOAD
        kvm: vmx: Defer setting of DR6 until #DB delivery
        kvm: x86: Defer setting of CR2 until #PF delivery
        kvm: x86: Add payload operands to kvm_multiple_exception
        kvm: x86: Add exception payload fields to kvm_vcpu_events
        kvm: x86: Add has_payload and payload to kvm_queued_exception
        KVM: Documentation: Fix omission in struct kvm_vcpu_events
        KVM: selftests: add Enlightened VMCS test
        ...
      0d1e8b8d
    • Linus Torvalds's avatar
      Merge branch 'for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 83c4087c
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
       "All trivial changes - simplification, typo fix and adding
        cond_resched() in a netclassid update loop"
      
      * 'for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup, netclassid: add a preemption point to write_classid
        rdmacg: fix a typo in rdmacg documentation
        cgroup: Simplify cgroup_ancestor
      83c4087c
    • Linus Torvalds's avatar
      Merge tag 'printk-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk · a67eefad
      Linus Torvalds authored
      Pull printk updates from Petr Mladek:
      
       - Fix two more locations where printf formatting leaked pointers
      
       - Better log_buf_len parameter handling
      
       - Add prefix to messages from printk code
      
       - Do not miss messages on other consoles when the log is replayed on a
         new one
      
       - Reduce race between console registration and panic() when the log
         might get replayed on all consoles
      
       - Some cont buffer code clean up
      
       - Call console only when there is something to do (log vs cont buffer)
      
      * tag 'printk-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk:
        lib/vsprintf: Hash printed address for netdev bits fallback
        lib/vsprintf: Hash legacy clock addresses
        lib/vsprintf: Prepare for more general use of ptr_to_id()
        lib/vsprintf: Make ptr argument conts in ptr_to_id()
        printk: fix integer overflow in setup_log_buf()
        printk: do not preliminary split up cont buffer
        printk: lock/unlock console only for new logbuf entries
        printk: keep kernel cont support always enabled
        printk: Give error on attempt to set log buffer length to over 2G
        printk: Add KBUILD_MODNAME and remove a redundant print prefix
        printk: Correct wrong casting
        printk: Fix panic caused by passing log_buf_len to command line
        printk: CON_PRINTBUFFER console registration is a bit racy
        printk: Do not miss new messages when replaying the log
      a67eefad
  2. 25 Oct, 2018 14 commits
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 62606c22
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
       "API:
         - Remove VLA usage
         - Add cryptostat user-space interface
         - Add notifier for new crypto algorithms
      
        Algorithms:
         - Add OFB mode
         - Remove speck
      
        Drivers:
         - Remove x86/sha*-mb as they are buggy
         - Remove pcbc(aes) from x86/aesni
         - Improve performance of arm/ghash-ce by up to 85%
         - Implement CTS-CBC in arm64/aes-blk, faster by up to 50%
         - Remove PMULL based arm64/crc32 driver
         - Use PMULL in arm64/crct10dif
         - Add aes-ctr support in s5p-sss
         - Add caam/qi2 driver
      
        Others:
         - Pick better transform if one becomes available in crc-t10dif"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (124 commits)
        crypto: chelsio - Update ntx queue received from cxgb4
        crypto: ccree - avoid implicit enum conversion
        crypto: caam - add SPDX license identifier to all files
        crypto: caam/qi - simplify CGR allocation, freeing
        crypto: mxs-dcp - make symbols 'sha1_null_hash' and 'sha256_null_hash' static
        crypto: arm64/aes-blk - ensure XTS mask is always loaded
        crypto: testmgr - fix sizeof() on COMP_BUF_SIZE
        crypto: chtls - remove set but not used variable 'csk'
        crypto: axis - fix platform_no_drv_owner.cocci warnings
        crypto: x86/aes-ni - fix build error following fpu template removal
        crypto: arm64/aes - fix handling sub-block CTS-CBC inputs
        crypto: caam/qi2 - avoid double export
        crypto: mxs-dcp - Fix AES issues
        crypto: mxs-dcp - Fix SHA null hashes and output length
        crypto: mxs-dcp - Implement sha import/export
        crypto: aegis/generic - fix for big endian systems
        crypto: morus/generic - fix for big endian systems
        crypto: lrw - fix rebase error after out of bounds fix
        crypto: cavium/nitrox - use pci_alloc_irq_vectors() while enabling MSI-X.
        crypto: cavium/nitrox - NITROX command queue changes.
        ...
      62606c22
    • Linus Torvalds's avatar
      Merge branch 'next-loadpin' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 24ed334f
      Linus Torvalds authored
      Pull LoadPin updates from James Morris:
       "From Kees: This is a small reporting improvement and the param change
        needed for the ordering series (but since the loadpin change is
        desired and separable, I'm putting it here)"
      
      * 'next-loadpin' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        LoadPin: Rename boot param "enabled" to "enforce"
        LoadPin: Report friendly block device name
      24ed334f
    • Linus Torvalds's avatar
      Merge branch 'next-smack' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · e80bc229
      Linus Torvalds authored
      Pull smack updates from James Morris:
       "From Casey: three patches for Smack for 4.20. Two clean up warnings
        and one is a rarely encountered ptrace capability check"
      
      * 'next-smack' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        Smack: Mark expected switch fall-through
        Smack: ptrace capability use fixes
        Smack: remove set but not used variable 'root_inode'
      e80bc229
    • Linus Torvalds's avatar
      Merge branch 'next-tpm' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 52ff0779
      Linus Torvalds authored
      Pull TPM updates from James Morris:
       "From Jarkko: The only new feature is non-blocking operation for
        /dev/tpm0"
      
      * 'next-tpm' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        tpm: Restore functionality to xen vtpm driver.
        tpm: add support for nonblocking operation
        tpm: add ptr to the tpm_space struct to file_priv
        tpm: Make SECURITYFS a weak dependency
        tpm: suppress transmit cmd error logs when TPM 1.2 is disabled/deactivated
        tpm: fix response size validation in tpm_get_random()
      52ff0779
    • Linus Torvalds's avatar
      Merge branch 'next-integrity' of... · 57ce66d3
      Linus Torvalds authored
      Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
      
      Pull integrity updates from James Morris:
       "From Mimi: This contains a couple of bug fixes, including one for a
        recent problem with calculating file hashes on overlayfs, and some
        code cleanup"
      
      * 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        MAINTAINERS: add Jarkko as maintainer for trusted keys
        ima: open a new file instance if no read permissions
        ima: fix showing large 'violations' or 'runtime_measurements_count'
        security/integrity: remove unnecessary 'init_keyring' variable
        security/integrity: constify some read-only data
        vfs: require i_size <= SIZE_MAX in kernel_read_file()
      57ce66d3
    • Linus Torvalds's avatar
      Merge branch 'work.lookup' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 4ba9628f
      Linus Torvalds authored
      Pull more ->lookup() cleanups from Al Viro:
       "Some ->lookup() instances are still overcomplicating the life
        for themselves, open-coding the stuff that would be handled by
        d_splice_alias() just fine.
      
        Simplify a couple of such cases caught this cycle and document
        d_splice_alias() intended use"
      
      * 'work.lookup' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        Document d_splice_alias() calling conventions for ->lookup() users.
        simplify btrfs_lookup()
        clean erofs_lookup()
      4ba9628f
    • Linus Torvalds's avatar
      Merge branch 'work.alpha' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 06999fd5
      Linus Torvalds authored
      Pull alpha syscall glue updates from Al Viro:
       "Two old patches making alpha syscall glue a bit less mysterious"
      
      * 'work.alpha' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        alpha: unify the glue for sigreturn-like syscalls
        alpha: use alpha_ni_syscall only for syscall zero
      06999fd5
    • Linus Torvalds's avatar
      Merge branch 'work.compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · ba7d4f36
      Linus Torvalds authored
      Pull compat_ioctl fixes from Al Viro:
       "A bunch of compat_ioctl fixes, mostly in bluetooth.
      
        Hopefully, most of fs/compat_ioctl.c will get killed off over the next
        few cycles; between this, tty series already merged and Arnd's work
        this cycle ought to take a good chunk out of the damn thing..."
      
      * 'work.compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        hidp: fix compat_ioctl
        hidp: constify hidp_connection_add()
        cmtp: fix compat_ioctl
        bnep: fix compat_ioctl
        compat_ioctl: trim the pointless includes
      ba7d4f36
    • Linus Torvalds's avatar
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5947a64a
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "The interrupt brigade came up with the following updates:
      
         - Driver for the Marvell System Error Interrupt machinery
      
         - Overhaul of the GIC-V3 ITS driver
      
         - Small updates and fixes all over the place"
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)
        genirq: Fix race on spurious interrupt detection
        softirq: Fix typo in __do_softirq() comments
        genirq: Fix grammar s/an /a /
        irqchip/gic: Unify GIC priority definitions
        irqchip/gic-v3: Remove acknowledge loop
        dt-bindings/interrupt-controller: Add documentation for Marvell SEI controller
        dt-bindings/interrupt-controller: Update Marvell ICU bindings
        irqchip/irq-mvebu-icu: Add support for System Error Interrupts (SEI)
        arm64: marvell: Enable SEI driver
        irqchip/irq-mvebu-sei: Add new driver for Marvell SEI
        irqchip/irq-mvebu-icu: Support ICU subnodes
        irqchip/irq-mvebu-icu: Disociate ICU and NSR
        irqchip/irq-mvebu-icu: Clarify the reset operation of configured interrupts
        irqchip/irq-mvebu-icu: Fix wrong private data retrieval
        dt-bindings/interrupt-controller: Fix Marvell ICU length in the example
        genirq/msi: Allow creation of a tree-based irqdomain for platform-msi
        dt-bindings: irqchip: renesas-irqc: Document r8a7744 support
        dt-bindings: irqchip: renesas-irqc: Document R-Car E3 support
        irqchip/pdc: Setup all edge interrupts as rising edge at GIC
        irqchip/gic-v3-its: Allow use of LPI tables in reserved memory
        ...
      5947a64a
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4dcb9239
      Linus Torvalds authored
      Pull timekeeping updates from Thomas Gleixner:
       "The timers and timekeeping departement provides:
      
         - Another large y2038 update with further preparations for providing
           the y2038 safe timespecs closer to the syscalls.
      
         - An overhaul of the SHCMT clocksource driver
      
         - SPDX license identifier updates
      
         - Small cleanups and fixes all over the place"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)
        tick/sched : Remove redundant cpu_online() check
        clocksource/drivers/dw_apb: Add reset control
        clocksource: Remove obsolete CLOCKSOURCE_OF_DECLARE
        clocksource/drivers: Unify the names to timer-* format
        clocksource/drivers/sh_cmt: Add R-Car gen3 support
        dt-bindings: timer: renesas: cmt: document R-Car gen3 support
        clocksource/drivers/sh_cmt: Properly line-wrap sh_cmt_of_table[] initializer
        clocksource/drivers/sh_cmt: Fix clocksource width for 32-bit machines
        clocksource/drivers/sh_cmt: Fixup for 64-bit machines
        clocksource/drivers/sh_tmu: Convert to SPDX identifiers
        clocksource/drivers/sh_mtu2: Convert to SPDX identifiers
        clocksource/drivers/sh_cmt: Convert to SPDX identifiers
        clocksource/drivers/renesas-ostm: Convert to SPDX identifiers
        clocksource: Convert to using %pOFn instead of device_node.name
        tick/broadcast: Remove redundant check
        RISC-V: Request newstat syscalls
        y2038: signal: Change rt_sigtimedwait to use __kernel_timespec
        y2038: socket: Change recvmmsg to use __kernel_timespec
        y2038: sched: Change sched_rr_get_interval to use __kernel_timespec
        y2038: utimes: Rework #ifdef guards for compat syscalls
        ...
      4dcb9239
    • David S. Miller's avatar
      sparc: Fix VDSO build with older binutils. · caf539cd
      David S. Miller authored
      Older versions of bintutils do not allow symbol math across different
      segments on sparc:
      
      ====================
      Assembler messages:
      99: Error: operation combines symbols in different segments
      ====================
      
      This is controlled by whether or not DIFF_EXPR_OK is defined in
      gas/config/tc-*.h and for sparc this was not the case until mid-2017.
      
      So we have to patch between %stick and %tick another way.
      
      Do what powerpc does and emit two versions of the relevant functions,
      one using %tick and one using %stick, and patch the symbols in the
      dynamic symbol table.
      
      Fixes: 2f6c9bf3 ("sparc: Improve VDSO instruction patching.")
      Reported-by: default avatarMeelis Roos <mroos@linux.ee>
      Tested-by: default avatarMeelis Roos <mroos@linux.ee>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      caf539cd
    • Linus Torvalds's avatar
      Merge tag 'sound-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 3acbd2de
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "There have been little changes in ALSA core stuff, but ASoC core still
        kept rolling for the continued restructuring. The rest are lots of
        small driver-specific changes and some minor API updates. Here are
        highlights:
      
        General:
        - Appropriate fall-through annotations everywhere
        - Some code cleanup in memalloc code, handling non-cacahed pages more
          commonly in the helper
        - Deployment of SNDRV_PCM_INFO_SYNC_APPLPTR flag consistently
      
        Drivers:
        - More HD-audio CA0132 codec improvement for supporting other Creative
          boards
        - Plumbing legacy HD-audio codecs as ASoC BE on Intel SST; this will
          give move support of existing HD-audio devices with DSP
        - A few device-specific HD-audio quirks as usual
        - New quirk for RME CC devices and correction for B&W PX for USB-audio
        - FireWire: code refactoring including devres usages
      
        ASoC Core:
        - Continued componentization works; it's almost done!
        - A bunch of new for_each_foo macros
        - Cleanups and fixes in DAPM code
      
        ASoC Drivers:
        - MCLK support for several different devices, including CS42L51, STM32
          SAI, and MAX98373
        - Support for Allwinner A64 CODEC analog, Intel boards with DA7219 and
          MAX98927, Meson AXG PDM inputs, Nuvoton NAU8822, Renesas R8A7744 and
          TI PCM3060"
      
      * tag 'sound-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (299 commits)
        ASoC: stm32: sai: fix master clock naming
        ASoC: stm32: add clock dependency for sai
        ALSA: hda/ca0132 - Actually fix microphone issue
        ASoC: sun4i-i2s: move code from startup/shutdown hooks into pm_runtime hooks
        ASoC: wm2000: Remove wm2000_read helper function
        ASoC: cs42l51: fix mclk support
        ASoC: wm_adsp: Log addresses as 8 digits in wm_adsp_buffer_populate
        ASoC: wm_adsp: Rename memory fields in wm_adsp_buffer
        ASoC: cs42l51: add mclk support
        ASoC: stm32: sai: set sai as mclk clock provider
        ASoC: dt-bindings: add mclk support to cs42l51
        ASoC: dt-bindings: add mclk provider support to stm32 sai
        ASoC: soc-core: fix trivial checkpatch issues
        ASoC: dapm: Add support for hw_free on CODEC to CODEC links
        ASoC: Intel: kbl_da7219_max98927: minor white space clean up
        ALSA: i2c/cs8427: Fix int to char conversion
        ALSA: doc: Brush up the old writing-an-alsa-driver
        ASoC: rsnd: tidyup SSICR::SWSP for TDM
        ASoC: rsnd: enable TDM settings for SSI parent
        ASoC: pcm3168a: add hw constraint for capture channel
        ...
      3acbd2de
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · d49f8a52
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "This is mostly updates of the usual drivers: UFS, esp_scsi, NCR5380,
        qla2xxx, lpfc, libsas, hisi_sas.
      
        In addition there's a set of mostly small updates to the target
        subsystem a set of conversions to the generic DMA API, which do have
        some potential for issues in the older drivers but we'll handle those
        as case by case fixes.
      
        A new myrs driver for the DAC960/mylex raid controllers to replace the
        block based DAC960 which is also being removed by Jens in this merge
        window.
      
        Plus the usual slew of trivial changes"
      
      [ "myrs" stands for "MYlex Raid Scsi". Obviously. Silly of me to even
        wonder. There's also a "myrb" driver, where the 'b' stands for
        'block'. Truly, somebody has got mad naming skillz. - Linus ]
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (237 commits)
        scsi: myrs: Fix the processor absent message in processor_show()
        scsi: myrs: Fix a logical vs bitwise bug
        scsi: hisi_sas: Fix NULL pointer dereference
        scsi: myrs: fix build failure on 32 bit
        scsi: fnic: replace gross legacy tag hack with blk-mq hack
        scsi: mesh: switch to generic DMA API
        scsi: ips: switch to generic DMA API
        scsi: smartpqi: fully convert to the generic DMA API
        scsi: vmw_pscsi: switch to generic DMA API
        scsi: snic: switch to generic DMA API
        scsi: qla4xxx: fully convert to the generic DMA API
        scsi: qla2xxx: fully convert to the generic DMA API
        scsi: qla1280: switch to generic DMA API
        scsi: qedi: fully convert to the generic DMA API
        scsi: qedf: fully convert to the generic DMA API
        scsi: pm8001: switch to generic DMA API
        scsi: nsp32: switch to generic DMA API
        scsi: mvsas: fully convert to the generic DMA API
        scsi: mvumi: switch to generic DMA API
        scsi: mpt3sas: switch to generic DMA API
        ...
      d49f8a52
    • Linus Torvalds's avatar
      Merge tag 'pci-v4.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · bd6bf7c1
      Linus Torvalds authored
      Pull PCI updates from Bjorn Helgaas:
      
       - Fix ASPM link_state teardown on removal (Lukas Wunner)
      
       - Fix misleading _OSC ASPM message (Sinan Kaya)
      
       - Make _OSC optional for PCI (Sinan Kaya)
      
       - Don't initialize ASPM link state when ACPI_FADT_NO_ASPM is set
         (Patrick Talbert)
      
       - Remove x86 and arm64 node-local allocation for host bridge structures
         (Punit Agrawal)
      
       - Pay attention to device-specific _PXM node values (Jonathan Cameron)
      
       - Support new Immediate Readiness bit (Felipe Balbi)
      
       - Differentiate between pciehp surprise and safe removal (Lukas Wunner)
      
       - Remove unnecessary pciehp includes (Lukas Wunner)
      
       - Drop pciehp hotplug_slot_ops wrappers (Lukas Wunner)
      
       - Tolerate PCIe Slot Presence Detect being hardwired to zero to
         workaround broken hardware, e.g., the Wilocity switch/wireless device
         (Lukas Wunner)
      
       - Unify pciehp controller & slot structs (Lukas Wunner)
      
       - Constify hotplug_slot_ops (Lukas Wunner)
      
       - Drop hotplug_slot_info (Lukas Wunner)
      
       - Embed hotplug_slot struct into users instead of allocating it
         separately (Lukas Wunner)
      
       - Initialize PCIe port service drivers directly instead of relying on
         initcall ordering (Keith Busch)
      
       - Restore PCI config state after a slot reset (Keith Busch)
      
       - Save/restore DPC config state along with other PCI config state
         (Keith Busch)
      
       - Reference count devices during AER handling to avoid race issue with
         concurrent hot removal (Keith Busch)
      
       - If an Upstream Port reports ERR_FATAL, don't try to read the Port's
         config space because it is probably unreachable (Keith Busch)
      
       - During error handling, use slot-specific reset instead of secondary
         bus reset to avoid link up/down issues on hotplug ports (Keith Busch)
      
       - Restore previous AER/DPC handling that does not remove and
         re-enumerate devices on ERR_FATAL (Keith Busch)
      
       - Notify all drivers that may be affected by error recovery resets
         (Keith Busch)
      
       - Always generate error recovery uevents, even if a driver doesn't have
         error callbacks (Keith Busch)
      
       - Make PCIe link active reporting detection generic (Keith Busch)
      
       - Support D3cold in PCIe hierarchies during system sleep and runtime,
         including hotplug and Thunderbolt ports (Mika Westerberg)
      
       - Handle hpmemsize/hpiosize kernel parameters uniformly, whether slots
         are empty or occupied (Jon Derrick)
      
       - Remove duplicated include from pci/pcie/err.c and unused variable
         from cpqphp (YueHaibing)
      
       - Remove driver pci_cleanup_aer_uncorrect_error_status() calls (Oza
         Pawandeep)
      
       - Uninline PCI bus accessors for better ftracing (Keith Busch)
      
       - Remove unused AER Root Port .error_resume method (Keith Busch)
      
       - Use kfifo in AER instead of a local version (Keith Busch)
      
       - Use threaded IRQ in AER bottom half (Keith Busch)
      
       - Use managed resources in AER core (Keith Busch)
      
       - Reuse pcie_port_find_device() for AER injection (Keith Busch)
      
       - Abstract AER interrupt handling to disconnect error injection (Keith
         Busch)
      
       - Refactor AER injection callbacks to simplify future improvments
         (Keith Busch)
      
       - Remove unused Netronome NFP32xx Device IDs (Jakub Kicinski)
      
       - Use bitmap_zalloc() for dma_alias_mask (Andy Shevchenko)
      
       - Add switch fall-through annotations (Gustavo A. R. Silva)
      
       - Remove unused Switchtec quirk variable (Joshua Abraham)
      
       - Fix pci.c kernel-doc warning (Randy Dunlap)
      
       - Remove trivial PCI wrappers for DMA APIs (Christoph Hellwig)
      
       - Add Intel GPU device IDs to spurious interrupt quirk (Bin Meng)
      
       - Run Switchtec DMA aliasing quirk only on NTB endpoints to avoid
         useless dmesg errors (Logan Gunthorpe)
      
       - Update Switchtec NTB documentation (Wesley Yung)
      
       - Remove redundant "default n" from Kconfig (Bartlomiej Zolnierkiewicz)
      
       - Avoid panic when drivers enable MSI/MSI-X twice (Tonghao Zhang)
      
       - Add PCI support for peer-to-peer DMA (Logan Gunthorpe)
      
       - Add sysfs group for PCI peer-to-peer memory statistics (Logan
         Gunthorpe)
      
       - Add PCI peer-to-peer DMA scatterlist mapping interface (Logan
         Gunthorpe)
      
       - Add PCI configfs/sysfs helpers for use by peer-to-peer users (Logan
         Gunthorpe)
      
       - Add PCI peer-to-peer DMA driver writer's documentation (Logan
         Gunthorpe)
      
       - Add block layer flag to indicate driver support for PCI peer-to-peer
         DMA (Logan Gunthorpe)
      
       - Map Infiniband scatterlists for peer-to-peer DMA if they contain P2P
         memory (Logan Gunthorpe)
      
       - Register nvme-pci CMB buffer as PCI peer-to-peer memory (Logan
         Gunthorpe)
      
       - Add nvme-pci support for PCI peer-to-peer memory in requests (Logan
         Gunthorpe)
      
       - Use PCI peer-to-peer memory in nvme (Stephen Bates, Steve Wise,
         Christoph Hellwig, Logan Gunthorpe)
      
       - Cache VF config space size to optimize enumeration of many VFs
         (KarimAllah Ahmed)
      
       - Remove unnecessary <linux/pci-ats.h> include (Bjorn Helgaas)
      
       - Fix VMD AERSID quirk Device ID matching (Jon Derrick)
      
       - Fix Cadence PHY handling during probe (Alan Douglas)
      
       - Signal Cadence Endpoint interrupts via AXI region 0 instead of last
         region (Alan Douglas)
      
       - Write Cadence Endpoint MSI interrupts with 32 bits of data (Alan
         Douglas)
      
       - Remove redundant controller tests for "device_type == pci" (Rob
         Herring)
      
       - Document R-Car E3 (R8A77990) bindings (Tho Vu)
      
       - Add device tree support for R-Car r8a7744 (Biju Das)
      
       - Drop unused mvebu PCIe capability code (Thomas Petazzoni)
      
       - Add shared PCI bridge emulation code (Thomas Petazzoni)
      
       - Convert mvebu to use shared PCI bridge emulation (Thomas Petazzoni)
      
       - Add aardvark Root Port emulation (Thomas Petazzoni)
      
       - Support 100MHz/200MHz refclocks for i.MX6 (Lucas Stach)
      
       - Add initial power management for i.MX7 (Leonard Crestez)
      
       - Add PME_Turn_Off support for i.MX7 (Leonard Crestez)
      
       - Fix qcom runtime power management error handling (Bjorn Andersson)
      
       - Update TI dra7xx unaligned access errata workaround for host mode as
         well as endpoint mode (Vignesh R)
      
       - Fix kirin section mismatch warning (Nathan Chancellor)
      
       - Remove iproc PAXC slot check to allow VF support (Jitendra Bhivare)
      
       - Quirk Keystone K2G to limit MRRS to 256 (Kishon Vijay Abraham I)
      
       - Update Keystone to use MRRS quirk for host bridge instead of open
         coding (Kishon Vijay Abraham I)
      
       - Refactor Keystone link establishment (Kishon Vijay Abraham I)
      
       - Simplify and speed up Keystone link training (Kishon Vijay Abraham I)
      
       - Remove unused Keystone host_init argument (Kishon Vijay Abraham I)
      
       - Merge Keystone driver files into one (Kishon Vijay Abraham I)
      
       - Remove redundant Keystone platform_set_drvdata() (Kishon Vijay
         Abraham I)
      
       - Rename Keystone functions for uniformity (Kishon Vijay Abraham I)
      
       - Add Keystone device control module DT binding (Kishon Vijay Abraham
         I)
      
       - Use SYSCON API to get Keystone control module device IDs (Kishon
         Vijay Abraham I)
      
       - Clean up Keystone PHY handling (Kishon Vijay Abraham I)
      
       - Use runtime PM APIs to enable Keystone clock (Kishon Vijay Abraham I)
      
       - Clean up Keystone config space access checks (Kishon Vijay Abraham I)
      
       - Get Keystone outbound window count from DT (Kishon Vijay Abraham I)
      
       - Clean up Keystone outbound window configuration (Kishon Vijay Abraham
         I)
      
       - Clean up Keystone DBI setup (Kishon Vijay Abraham I)
      
       - Clean up Keystone ks_pcie_link_up() (Kishon Vijay Abraham I)
      
       - Fix Keystone IRQ status checking (Kishon Vijay Abraham I)
      
       - Add debug messages for all Keystone errors (Kishon Vijay Abraham I)
      
       - Clean up Keystone includes and macros (Kishon Vijay Abraham I)
      
       - Fix Mediatek unchecked return value from devm_pci_remap_iospace()
         (Gustavo A. R. Silva)
      
       - Fix Mediatek endpoint/port matching logic (Honghui Zhang)
      
       - Change Mediatek Root Port Class Code to PCI_CLASS_BRIDGE_PCI (Honghui
         Zhang)
      
       - Remove redundant Mediatek PM domain check (Honghui Zhang)
      
       - Convert Mediatek to pci_host_probe() (Honghui Zhang)
      
       - Fix Mediatek MSI enablement (Honghui Zhang)
      
       - Add Mediatek system PM support for MT2712 and MT7622 (Honghui Zhang)
      
       - Add Mediatek loadable module support (Honghui Zhang)
      
       - Detach VMD resources after stopping root bus to prevent orphan
         resources (Jon Derrick)
      
       - Convert pcitest build process to that used by other tools (iio, perf,
         etc) (Gustavo Pimentel)
      
      * tag 'pci-v4.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (140 commits)
        PCI/AER: Refactor error injection fallbacks
        PCI/AER: Abstract AER interrupt handling
        PCI/AER: Reuse existing pcie_port_find_device() interface
        PCI/AER: Use managed resource allocations
        PCI: pcie: Remove redundant 'default n' from Kconfig
        PCI: aardvark: Implement emulated root PCI bridge config space
        PCI: mvebu: Convert to PCI emulated bridge config space
        PCI: mvebu: Drop unused PCI express capability code
        PCI: Introduce PCI bridge emulated config space common logic
        PCI: vmd: Detach resources after stopping root bus
        nvmet: Optionally use PCI P2P memory
        nvmet: Introduce helper functions to allocate and free request SGLs
        nvme-pci: Add support for P2P memory in requests
        nvme-pci: Use PCI p2pmem subsystem to manage the CMB
        IB/core: Ensure we map P2P memory correctly in rdma_rw_ctx_[init|destroy]()
        block: Add PCI P2P flag for request queue
        PCI/P2PDMA: Add P2P DMA driver writer's documentation
        docs-rst: Add a new directory for PCI documentation
        PCI/P2PDMA: Introduce configfs/sysfs enable attribute helpers
        PCI/P2PDMA: Add PCI p2pmem DMA mappings to adjust the bus offset
        ...
      bd6bf7c1