1. 23 2月, 2017 40 次提交
    • T
      slub: separate out sysfs_slab_release() from sysfs_slab_remove() · bf5eb3de
      Tejun Heo 提交于
      Separate out slub sysfs removal and release, and call the former earlier
      from __kmem_cache_shutdown().  There's no reason to defer sysfs removal
      through RCU and this will later allow us to remove sysfs files way
      earlier during memory cgroup offline instead of release.
      
      Link: http://lkml.kernel.org/r/20170117235411.9408-3-tj@kernel.orgSigned-off-by: NTejun Heo <tj@kernel.org>
      Acked-by: NVladimir Davydov <vdavydov.dev@gmail.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      bf5eb3de
    • T
      Revert "slub: move synchronize_sched out of slab_mutex on shrink" · 290b6a58
      Tejun Heo 提交于
      Patch series "slab: make memcg slab destruction scalable", v3.
      
      With kmem cgroup support enabled, kmem_caches can be created and
      destroyed frequently and a great number of near empty kmem_caches can
      accumulate if there are a lot of transient cgroups and the system is not
      under memory pressure.  When memory reclaim starts under such
      conditions, it can lead to consecutive deactivation and destruction of
      many kmem_caches, easily hundreds of thousands on moderately large
      systems, exposing scalability issues in the current slab management
      code.
      
      I've seen machines which end up with hundred thousands of caches and
      many millions of kernfs_nodes.  The current code is O(N^2) on the total
      number of caches and has synchronous rcu_barrier() and
      synchronize_sched() in cgroup offline / release path which is executed
      while holding cgroup_mutex.  Combined, this leads to very expensive and
      slow cache destruction operations which can easily keep running for half
      a day.
      
      This also messes up /proc/slabinfo along with other cache iterating
      operations.  seq_file operates on 4k chunks and on each 4k boundary
      tries to seek to the last position in the list.  With a huge number of
      caches on the list, this becomes very slow and very prone to the list
      content changing underneath it leading to a lot of missing and/or
      duplicate entries.
      
      This patchset addresses the scalability problem.
      
      * Add root and per-memcg lists.  Update each user to use the
        appropriate list.
      
      * Make rcu_barrier() for SLAB_DESTROY_BY_RCU caches globally batched
        and asynchronous.
      
      * For dying empty slub caches, remove the sysfs files after
        deactivation so that we don't end up with millions of sysfs files
        without any useful information on them.
      
      This patchset contains the following nine patches.
      
       0001-Revert-slub-move-synchronize_sched-out-of-slab_mutex.patch
       0002-slub-separate-out-sysfs_slab_release-from-sysfs_slab.patch
       0003-slab-remove-synchronous-rcu_barrier-call-in-memcg-ca.patch
       0004-slab-reorganize-memcg_cache_params.patch
       0005-slab-link-memcg-kmem_caches-on-their-associated-memo.patch
       0006-slab-implement-slab_root_caches-list.patch
       0007-slab-introduce-__kmemcg_cache_deactivate.patch
       0008-slab-remove-synchronous-synchronize_sched-from-memcg.patch
       0009-slab-remove-slub-sysfs-interface-files-early-for-emp.patch
       0010-slab-use-memcg_kmem_cache_wq-for-slab-destruction-op.patch
      
      0001 reverts an existing optimization to prepare for the following
      changes.  0002 is a prep patch.  0003 makes rcu_barrier() in release
      path batched and asynchronous.  0004-0006 separate out the lists.
      0007-0008 replace synchronize_sched() in slub destruction path with
      call_rcu_sched().  0009 removes sysfs files early for empty dying
      caches.  0010 makes destruction work items use a workqueue with limited
      concurrency.
      
      This patch (of 10):
      
      Revert 89e364db ("slub: move synchronize_sched out of slab_mutex on
      shrink").
      
      With kmem cgroup support enabled, kmem_caches can be created and destroyed
      frequently and a great number of near empty kmem_caches can accumulate if
      there are a lot of transient cgroups and the system is not under memory
      pressure.  When memory reclaim starts under such conditions, it can lead
      to consecutive deactivation and destruction of many kmem_caches, easily
      hundreds of thousands on moderately large systems, exposing scalability
      issues in the current slab management code.  This is one of the patches to
      address the issue.
      
      Moving synchronize_sched() out of slab_mutex isn't enough as it's still
      inside cgroup_mutex.  The whole deactivation / release path will be
      updated to avoid all synchronous RCU operations.  Revert this insufficient
      optimization in preparation to ease future changes.
      
      Link: http://lkml.kernel.org/r/20170117235411.9408-2-tj@kernel.orgSigned-off-by: NTejun Heo <tj@kernel.org>
      Reported-by: NJay Vana <jsvana@fb.com>
      Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      290b6a58
    • V
      mm, slab: rename kmalloc-node cache to kmalloc-<size> · af3b5f87
      Vlastimil Babka 提交于
      SLAB as part of its bootstrap pre-creates one kmalloc cache that can fit
      the kmem_cache_node management structure, and puts it into the generic
      kmalloc cache array (e.g. for 128b objects).  The name of this cache is
      "kmalloc-node", which is confusing for readers of /proc/slabinfo as the
      cache is used for generic allocations (and not just the kmem_cache_node
      struct) and it appears as the kmalloc-128 cache is missing.
      
      An easy solution is to use the kmalloc-<size> name when pre-creating the
      cache, which we can get from the kmalloc_info array.
      
      Example /proc/slabinfo before the patch:
      
        ...
        kmalloc-256         1647   1984    256   16    1 : tunables  120   60    8 : slabdata    124    124    828
        kmalloc-192         1974   1974    192   21    1 : tunables  120   60    8 : slabdata     94     94    133
        kmalloc-96          1332   1344    128   32    1 : tunables  120   60    8 : slabdata     42     42    219
        kmalloc-64          2505   5952     64   64    1 : tunables  120   60    8 : slabdata     93     93    715
        kmalloc-32          4278   4464     32  124    1 : tunables  120   60    8 : slabdata     36     36    346
        kmalloc-node        1352   1376    128   32    1 : tunables  120   60    8 : slabdata     43     43     53
        kmem_cache           132    147    192   21    1 : tunables  120   60    8 : slabdata      7      7      0
      
      After the patch:
      
        ...
        kmalloc-256         1672   2160    256   16    1 : tunables  120   60    8 : slabdata    135    135    807
        kmalloc-192         1992   2016    192   21    1 : tunables  120   60    8 : slabdata     96     96    203
        kmalloc-96          1159   1184    128   32    1 : tunables  120   60    8 : slabdata     37     37    116
        kmalloc-64          2561   4864     64   64    1 : tunables  120   60    8 : slabdata     76     76    785
        kmalloc-32          4253   4340     32  124    1 : tunables  120   60    8 : slabdata     35     35    270
        kmalloc-128         1256   1280    128   32    1 : tunables  120   60    8 : slabdata     40     40     39
        kmem_cache           125    147    192   21    1 : tunables  120   60    8 : slabdata      7      7      0
      
      [vbabka@suse.cz: export the whole kmalloc_info structure instead of just a name accessor, per Christoph Lameter]
        Link: http://lkml.kernel.org/r/54e80303-b814-4232-66d4-95b34d3eb9d0@suse.cz
      Link: http://lkml.kernel.org/r/20170203181008.24898-1-vbabka@suse.czSigned-off-by: NVlastimil Babka <vbabka@suse.cz>
      Reviewed-by: NMatthew Wilcox <mawilcox@microsoft.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: Christoph Lameter <cl@linux.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      af3b5f87
    • B
      mm/slub: add a dump_stack() to the unexpected GFP check · 65b9de75
      Borislav Petkov 提交于
      We wish to know who is doing such a thing. slab.c does this.
      
      Link: http://lkml.kernel.org/r/20170116091643.15260-1-bp@alien8.deSigned-off-by: NBorislav Petkov <bp@suse.de>
      Acked-by: NMichal Hocko <mhocko@suse.com>
      Acked-by: NVlastimil Babka <vbabka@suse.cz>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      65b9de75
    • G
      slub: do not merge cache if slub_debug contains a never-merge flag · c6e28895
      Grygorii Maistrenko 提交于
      In case CONFIG_SLUB_DEBUG_ON=n, find_mergeable() gets debug features from
      commandline but never checks if there are features from the
      SLAB_NEVER_MERGE set.
      
      As a result selected by slub_debug caches are always mergeable if they
      have been created without a custom constructor set or without one of the
      SLAB_* debug features on.
      
      This moves the SLAB_NEVER_MERGE check below the flags update from
      commandline to make sure it won't merge the slab cache if one of the debug
      features is on.
      
      Link: http://lkml.kernel.org/r/20170101124451.GA4740@lp-laptop-dSigned-off-by: NGrygorii Maistrenko <grygoriimkd@gmail.com>
      Reviewed-by: NPekka Enberg <penberg@kernel.org>
      Acked-by: NDavid Rientjes <rientjes@google.com>
      Acked-by: NChristoph Lameter <cl@linux.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c6e28895
    • P
      kernel/watchdog.c: do not hardcode CPU 0 as the initial thread · 8dcde9de
      Prarit Bhargava 提交于
      When CONFIG_BOOTPARAM_HOTPLUG_CPU0 is enabled, the socket containing the
      boot cpu can be replaced.  During the hot add event, the message
      
      NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
      
      is output implying that the NMI watchdog was disabled at some point.  This
      is not the case and the message has caused confusion for users of systems
      that support the removal of the boot cpu socket.
      
      The watchdog code is coded to assume that cpu 0 is always the first cpu to
      initialize the watchdog, and the last to stop its watchdog thread.  That
      is not the case for initializing if cpu 0 has been removed and added.  The
      removal case has never been correct because the smpboot code will remove
      the watchdog threads starting with the lowest cpu number.
      
      This patch adds watchdog_cpus to track the number of cpus with active NMI
      watchdog threads so that the first and last thread can be used to set and
      clear the value of firstcpu_err.  firstcpu_err is set when the first
      watchdog thread is enabled, and cleared when the last watchdog thread is
      disabled.
      
      Link: http://lkml.kernel.org/r/1480425321-32296-1-git-send-email-prarit@redhat.comSigned-off-by: NPrarit Bhargava <prarit@redhat.com>
      Acked-by: NDon Zickus <dzickus@redhat.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Joshua Hunt <johunt@akamai.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Babu Moger <babu.moger@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8dcde9de
    • C
      9p: fix a potential acl leak · b5c66bab
      Cong Wang 提交于
      posix_acl_update_mode() could possibly clear 'acl', if so we leak the
      memory pointed by 'acl'.  Save this pointer before calling
      posix_acl_update_mode() and release the memory if 'acl' really gets
      cleared.
      
      Link: http://lkml.kernel.org/r/1486678332-2430-1-git-send-email-xiyou.wangcong@gmail.comSigned-off-by: NCong Wang <xiyou.wangcong@gmail.com>
      Reported-by: NMark Salyzyn <salyzyn@android.com>
      Reviewed-by: NJan Kara <jack@suse.cz>
      Reviewed-by: NGreg Kurz <groug@kaod.org>
      Cc: Eric Van Hensbergen <ericvh@gmail.com>
      Cc: Ron Minnich <rminnich@sandia.gov>
      Cc: Latchesar Ionkov <lucho@ionkov.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b5c66bab
    • T
      block: use for_each_thread() in sys_ioprio_set()/sys_ioprio_get() · 612dafab
      Tetsuo Handa 提交于
      IOPRIO_WHO_USER case in sys_ioprio_set()/sys_ioprio_get() are using
      while_each_thread(), which is unsafe under RCU lock according to commit
      0c740d0a ("introduce for_each_thread() to replace the buggy
      while_each_thread()").  Use for_each_thread() (via
      for_each_process_thread()) which is safe under RCU lock.
      
      Link: http://lkml.kernel.org/r/201702011947.DBD56740.OMVHOLOtSJFFFQ@I-love.SAKURA.ne.jp
      Link: http://lkml.kernel.org/r/1486041779-4401-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jpSigned-off-by: NTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      612dafab
    • D
      parisc: use generic current.h · 6302666d
      Davidlohr Bueso 提交于
      Given that the arch does not add its own implementations, simply use the
      asm-generic/current.h (generic-y) header instead of duplicating code.
      
      Link: http://lkml.kernel.org/r/1485992878-4780-4-git-send-email-dave@stgolabs.netSigned-off-by: NDavidlohr Bueso <dbueso@suse.de>
      Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
      Cc: Helge Deller <deller@gmx.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6302666d
    • E
      ocfs2: fix deadlock issue when taking inode lock at vfs entry points · b891fa50
      Eric Ren 提交于
      Commit 743b5f14 ("ocfs2: take inode lock in ocfs2_iop_set/get_acl()")
      results in a deadlock, as the author "Tariq Saeed" realized shortly
      after the patch was merged.  The discussion happened here
      
        https://oss.oracle.com/pipermail/ocfs2-devel/2015-September/011085.html
      
      The reason why taking cluster inode lock at vfs entry points opens up a
      self deadlock window, is explained in the previous patch of this series.
      
      So far, we have seen two different code paths that have this issue.
      
      1. do_sys_open
           may_open
            inode_permission
             ocfs2_permission
              ocfs2_inode_lock() <=== take PR
               generic_permission
                get_acl
                 ocfs2_iop_get_acl
                  ocfs2_inode_lock() <=== take PR
      
      2. fchmod|fchmodat
          chmod_common
           notify_change
            ocfs2_setattr <=== take EX
             posix_acl_chmod
              get_acl
               ocfs2_iop_get_acl <=== take PR
              ocfs2_iop_set_acl <=== take EX
      
      Fixes them by adding the tracking logic (in the previous patch) for these
      funcs above, ocfs2_permission(), ocfs2_iop_[set|get]_acl(),
      ocfs2_setattr().
      
      Link: http://lkml.kernel.org/r/20170117100948.11657-3-zren@suse.comSigned-off-by: NEric Ren <zren@suse.com>
      Reviewed-by: NJunxiao Bi <junxiao.bi@oracle.com>
      Reviewed-by: NJoseph Qi <jiangqi903@gmail.com>
      Cc: Mark Fasheh <mfasheh@versity.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b891fa50
    • E
      ocfs2/dlmglue: prepare tracking logic to avoid recursive cluster lock · 439a36b8
      Eric Ren 提交于
      We are in the situation that we have to avoid recursive cluster locking,
      but there is no way to check if a cluster lock has been taken by a precess
      already.
      
      Mostly, we can avoid recursive locking by writing code carefully.
      However, we found that it's very hard to handle the routines that are
      invoked directly by vfs code.  For instance:
      
        const struct inode_operations ocfs2_file_iops = {
            .permission     = ocfs2_permission,
            .get_acl        = ocfs2_iop_get_acl,
            .set_acl        = ocfs2_iop_set_acl,
        };
      
      Both ocfs2_permission() and ocfs2_iop_get_acl() call ocfs2_inode_lock(PR):
      
        do_sys_open
         may_open
          inode_permission
           ocfs2_permission
            ocfs2_inode_lock() <=== first time
             generic_permission
              get_acl
               ocfs2_iop_get_acl
        	ocfs2_inode_lock() <=== recursive one
      
      A deadlock will occur if a remote EX request comes in between two of
      ocfs2_inode_lock().  Briefly describe how the deadlock is formed:
      
      On one hand, OCFS2_LOCK_BLOCKED flag of this lockres is set in
      BAST(ocfs2_generic_handle_bast) when downconvert is started on behalf of
      the remote EX lock request.  Another hand, the recursive cluster lock
      (the second one) will be blocked in in __ocfs2_cluster_lock() because of
      OCFS2_LOCK_BLOCKED.  But, the downconvert never complete, why? because
      there is no chance for the first cluster lock on this node to be
      unlocked - we block ourselves in the code path.
      
      The idea to fix this issue is mostly taken from gfs2 code.
      
      1. introduce a new field: struct ocfs2_lock_res.l_holders, to keep track
         of the processes' pid who has taken the cluster lock of this lock
         resource;
      
      2. introduce a new flag for ocfs2_inode_lock_full:
         OCFS2_META_LOCK_GETBH; it means just getting back disk inode bh for
         us if we've got cluster lock.
      
      3. export a helper: ocfs2_is_locked_by_me() is used to check if we have
         got the cluster lock in the upper code path.
      
      The tracking logic should be used by some of the ocfs2 vfs's callbacks,
      to solve the recursive locking issue cuased by the fact that vfs
      routines can call into each other.
      
      The performance penalty of processing the holder list should only be
      seen at a few cases where the tracking logic is used, such as get/set
      acl.
      
      You may ask what if the first time we got a PR lock, and the second time
      we want a EX lock? fortunately, this case never happens in the real
      world, as far as I can see, including permission check,
      (get|set)_(acl|attr), and the gfs2 code also do so.
      
      [sfr@canb.auug.org.au remove some inlines]
      Link: http://lkml.kernel.org/r/20170117100948.11657-2-zren@suse.comSigned-off-by: NEric Ren <zren@suse.com>
      Reviewed-by: NJunxiao Bi <junxiao.bi@oracle.com>
      Reviewed-by: NJoseph Qi <jiangqi903@gmail.com>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Cc: Mark Fasheh <mfasheh@versity.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      439a36b8
    • D
      score: remove asm/current.h · ca376b37
      Davidlohr Bueso 提交于
      ...  it's already using the generic version anyways, so just drop the file
      as do the other archs that do not implement their own version of the
      current macro.
      
      Link: http://lkml.kernel.org/r/1485992878-4780-5-git-send-email-dave@stgolabs.netSigned-off-by: NDavidlohr Bueso <dbueso@suse.de>
      Cc: Chen Liqin <liqin.linux@gmail.com>
      Cc: Lennox Wu <lennox.wu@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ca376b37
    • S
      m32r: fix build warning · af0de781
      Sudip Mukherjee 提交于
      Some m32r builds were having a warning:
      
        arch/m32r/include/asm/cmpxchg.h:191:3: warning: value computed is not used
        arch/m32r/include/asm/cmpxchg.h:68:3: warning: value computed is not used
      
      Taking the idea from commit e001bbae ("ARM: cmpxchg: avoid warnings
      from macro-ized cmpxchg() implementations") the m32r implementation is
      changed to use a similar construct with a compound expression instead of
      a typecast, which causes the compiler to not complain about an unused
      result.
      
      Link: http://lkml.kernel.org/r/1484432664-7015-1-git-send-email-sudipm.mukherjee@gmail.comSigned-off-by: NSudip Mukherjee <sudip.mukherjee@codethink.co.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      af0de781
    • D
      m32r: use generic current.h · 6408b6fb
      Davidlohr Bueso 提交于
      Given that the arch does not add its own implementations, simply
      use the asm-generic/current.h (generic-y) header instead of
      duplicating code.
      
      Link: http://lkml.kernel.org/r/1482896994-25863-1-git-send-email-dave@stgolabs.netSigned-off-by: NDavidlohr Bueso <dbueso@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6408b6fb
    • H
      scripts/tags.sh: include arch/Kconfig* for tags generation · 7659c655
      Hou Tao 提交于
      Kconfig files under arch/ directory are ignored by all_kconfigs(),
      so include them for tags generation.
      
      Link: http://lkml.kernel.org/r/1486206053-38223-1-git-send-email-houtao1@huawei.comSigned-off-by: NHou Tao <houtao1@huawei.com>
      Cc: Michal Marek <mmarek@suse.com>
      Cc: Joe Perches <joe@perches.com>
      Cc: Mathieu Maret <mathieu.maret@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7659c655
    • C
    • T
      scripts/checkstack.pl: add support for nios2 · 0e5a47a8
      Tobias Klauser 提交于
      Adjust checkstack.pl for the nios2 architecture.
      
      Link: http://lkml.kernel.org/r/20170116113052.15034-1-tklauser@distanz.chSigned-off-by: NTobias Klauser <tklauser@distanz.ch>
      Cc: Ley Foon Tan <lftan@altera.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0e5a47a8
    • J
      scripts/Lindent: clean up and optimize · 78c52502
      Jean Delvare 提交于
      * Add a few blank lines to improve readability.
      * Don't call cut 3 times when once is enough.
      * Drop a useless semicolon.
      
      Link: http://lkml.kernel.org/r/20170104140356.162abab2@endymionSigned-off-by: NJean Delvare <jdelvare@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      78c52502
    • R
      scripts/spelling.txt: fix incorrect typo-words · 10f24f75
      Ross Zwisler 提交于
      Fix up some incorrect typo-words.
      
      [akpm@linux-foundation.org: "licencing" is valid British spelling and should be kept, per Joe]
      Link: http://lkml.kernel.org/r/1486409689-23335-1-git-send-email-ross.zwisler@linux.intel.comSigned-off-by: NRoss Zwisler <ross.zwisler@linux.intel.com>
      Cc: Joe Perches <joe@perches.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      10f24f75
    • C
      scripts/spelling.txt: add several more common spelling mistakes · 8c320026
      Colin Ian King 提交于
      Lately I've been cleaning up spelling mistakes in kernel error messages
      and here are some of the more common spelling mistakes that I've found
      which probably should be added to this list so we don't keep on seeing
      them appearing again.
      
      Link: http://lkml.kernel.org/r/20161209173326.17662-1-colin.king@canonical.comSigned-off-by: NColin Ian King <colin.king@canonical.com>
      Acked-by: NKees Cook <keescook@chromium.org>
      Cc: Joe Perches <joe@perches.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8c320026
    • D
      tools/vm: add missing Makefile rules · 0937577d
      Daniel Thompson 提交于
      Currently the tools/vm Makefile has a rather arbitrary implicit build
      rule; page-types is the first value in TARGETS so lets just build that
      one!  Additionally there is no install rule and this is needed for make -C
      tools vm_install to work properly.
      
      Provide a more sensible implicit build rule and a new install rule.
      
      Note that the variables names used by the install rule (DESTDIR and
      sbindir) are copied from prior-art in tools/power/cpupower.
      
      Link: http://lkml.kernel.org/r/20170113165630.27541-1-daniel.thompson@linaro.orgSigned-off-by: NDaniel Thompson <daniel.thompson@linaro.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0937577d
    • M
      dma-debug: add comment for failed to check map error · a5759b2b
      Miles Chen 提交于
      Add comment for failure to check a map error to help driver developers.
      
      Link: http://lkml.kernel.org/r/1484622289-22085-1-git-send-email-miles.chen@mediatek.comSigned-off-by: NMiles Chen <miles.chen@mediatek.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a5759b2b
    • D
      mm, dax: change pmd_fault() to take only vmf parameter · f4200391
      Dave Jiang 提交于
      pmd_fault() and related functions really only need the vmf parameter since
      the additional parameters are all included in the vmf struct.  Remove the
      additional parameter and simplify pmd_fault() and friends.
      
      Link: http://lkml.kernel.org/r/1484085142-2297-8-git-send-email-ross.zwisler@linux.intel.comSigned-off-by: NDave Jiang <dave.jiang@intel.com>
      Reviewed-by: NRoss Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: NJan Kara <jack@suse.cz>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Dave Jiang <dave.jiang@intel.com>
      Cc: Matthew Wilcox <mawilcox@microsoft.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f4200391
    • D
      mm, dax: make pmd_fault() and friends be the same as fault() · d8a849e1
      Dave Jiang 提交于
      Instead of passing in multiple parameters in the pmd_fault() handler,
      a vmf can be passed in just like a fault() handler. This will simplify
      code and remove the need for the actual pmd fault handlers to allocate a
      vmf. Related functions are also modified to do the same.
      
      [dave.jiang@intel.com: fix issue with xfs_tests stall when DAX option is off]
        Link: http://lkml.kernel.org/r/148469861071.195597.3619476895250028518.stgit@djiang5-desk3.ch.intel.com
      Link: http://lkml.kernel.org/r/1484085142-2297-7-git-send-email-ross.zwisler@linux.intel.comSigned-off-by: NDave Jiang <dave.jiang@intel.com>
      Reviewed-by: NRoss Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: NJan Kara <jack@suse.cz>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Matthew Wilcox <mawilcox@microsoft.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d8a849e1
    • R
      dax: add tracepoints to dax_pmd_insert_mapping() · 27a7ffac
      Ross Zwisler 提交于
      Add tracepoints to dax_pmd_insert_mapping(), following the same logging
      conventions as the tracepoints in dax_iomap_pmd_fault().
      
      Here is an example PMD fault showing the new tracepoints:
      
      big-1504  [001] ....   326.960743: xfs_filemap_pmd_fault: dev 259:0 ino 0x1003
      
      big-1504  [001] ....   326.960753: dax_pmd_fault: dev 259:0 ino 0x1003 shared WRITE|ALLOW_RETRY|KILLABLE|USER address 0x10505000 vm_start 0x10200000 vm_end 0x10700000 pgoff 0x200 max_pgoff 0x1400
      
      big-1504  [001] ....   326.960981: dax_pmd_insert_mapping: dev 259:0 ino 0x1003 shared write address 0x10505000 length 0x200000 pfn 0x100600 DEV|MAP radix_entry 0xc000e
      
      big-1504  [001] ....   326.960986: dax_pmd_fault_done: dev 259:0 ino 0x1003 shared WRITE|ALLOW_RETRY|KILLABLE|USER address 0x10505000 vm_start 0x10200000 vm_end 0x10700000 pgoff 0x200 max_pgoff 0x1400 NOPAGE
      
      Link: http://lkml.kernel.org/r/1484085142-2297-6-git-send-email-ross.zwisler@linux.intel.comSigned-off-by: NRoss Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: NJan Kara <jack@suse.cz>
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Dave Jiang <dave.jiang@intel.com>
      Cc: Matthew Wilcox <mawilcox@microsoft.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      27a7ffac
    • R
      dax: add tracepoints to dax_pmd_load_hole() · 653b2ea3
      Ross Zwisler 提交于
      Add tracepoints to dax_pmd_load_hole(), following the same logging
      conventions as the tracepoints in dax_iomap_pmd_fault().
      
      Here is an example PMD fault showing the new tracepoints:
      
      read_big-1478  [004] ....   238.242188: xfs_filemap_pmd_fault: dev 259:0 ino 0x1003
      
      read_big-1478  [004] ....   238.242191: dax_pmd_fault: dev 259:0 ino 0x1003 shared ALLOW_RETRY|KILLABLE|USER address 0x10400000 vm_start 0x10200000 vm_end 0x10600000 pgoff 0x200 max_pgoff 0x1400
      
      read_big-1478  [004] ....   238.242390: dax_pmd_load_hole: dev 259:0 ino 0x1003 shared address 0x10400000 zero_page ffffea0002c20000 radix_entry 0x1e
      
      read_big-1478  [004] ....   238.242392: dax_pmd_fault_done: dev 259:0 ino 0x1003 shared ALLOW_RETRY|KILLABLE|USER address 0x10400000 vm_start 0x10200000 vm_end 0x10600000 pgoff 0x200 max_pgoff 0x1400 NOPAGE
      
      Link: http://lkml.kernel.org/r/1484085142-2297-5-git-send-email-ross.zwisler@linux.intel.comSigned-off-by: NRoss Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: NJan Kara <jack@suse.cz>
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Dave Jiang <dave.jiang@intel.com>
      Cc: Matthew Wilcox <mawilcox@microsoft.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      653b2ea3
    • R
      dax: update MAINTAINERS entries for FS DAX · e057541a
      Ross Zwisler 提交于
      Add the new include/trace/events/fs_dax.h tracepoint header, the existing
      include/linux/dax.h header, update Matthew's email address and add myself
      as a maintainer for filesystem DAX.
      
      Link: http://lkml.kernel.org/r/1484085142-2297-4-git-send-email-ross.zwisler@linux.intel.comSigned-off-by: NRoss Zwisler <ross.zwisler@linux.intel.com>
      Suggested-by: NMatthew Wilcox <mawilcox@microsoft.com>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Dave Jiang <dave.jiang@intel.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e057541a
    • R
      dax: add tracepoint infrastructure, PMD tracing · 282a8e03
      Ross Zwisler 提交于
      Tracepoints are the standard way to capture debugging and tracing
      information in many parts of the kernel, including the XFS and ext4
      filesystems.  Create a tracepoint header for FS DAX and add the first DAX
      tracepoints to the PMD fault handler.  This allows the tracing for DAX to
      be done in the same way as the filesystem tracing so that developers can
      look at them together and get a coherent idea of what the system is doing.
      
      I added both an entry and exit tracepoint because future patches will add
      tracepoints to child functions of dax_iomap_pmd_fault() like
      dax_pmd_load_hole() and dax_pmd_insert_mapping().  We want those messages
      to be wrapped by the parent function tracepoints so the code flow is more
      easily understood.  Having entry and exit tracepoints for faults also
      allows us to easily see what filesystems functions were called during the
      fault.  These filesystem functions get executed via iomap_begin() and
      iomap_end() calls, for example, and will have their own tracepoints.
      
      For PMD faults we primarily want to understand the type of mapping, the
      fault flags, the faulting address and whether it fell back to 4k faults.
      If it fell back to 4k faults the tracepoints should let us understand why.
      
      I named the new tracepoint header file "fs_dax.h" to allow for device DAX
      to have its own separate tracing header in the same directory at some
      point.
      
      Here is an example output for these events from a successful PMD fault:
      
        big-1441  [005] ....    32.582758: xfs_filemap_pmd_fault: dev 259:0 ino 0x1003
      
        big-1441  [005] ....    32.582776: dax_pmd_fault: dev 259:0 ino 0x1003
        shared WRITE|ALLOW_RETRY|KILLABLE|USER address 0x10505000 vm_start 0x10200000 vm_end 0x10700000 pgoff 0x200 max_pgoff 0x1400
      
        big-1441  [005] ....    32.583292: dax_pmd_fault_done: dev 259:0 ino 0x1003
        shared WRITE|ALLOW_RETRY|KILLABLE|USER address 0x10505000 vm_start 0x10200000 vm_end 0x10700000 pgoff 0x200 max_pgoff 0x1400 NOPAGE
      
      Link: http://lkml.kernel.org/r/1484085142-2297-3-git-send-email-ross.zwisler@linux.intel.comSigned-off-by: NRoss Zwisler <ross.zwisler@linux.intel.com>
      Suggested-by: NDave Chinner <david@fromorbit.com>
      Reviewed-by: NJan Kara <jack@suse.cz>
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Cc: Dave Jiang <dave.jiang@intel.com>
      Cc: Matthew Wilcox <mawilcox@microsoft.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      282a8e03
    • R
      tracing: add __print_flags_u64() · d3213e8f
      Ross Zwisler 提交于
      Patch series "DAX tracepoints, mm argument simplification", v4.
      
      This contains both my DAX tracepoint code and Dave Jiang's MM argument
      simplifications.  Dave's code was written with my tracepoint code as a
      baseline, so it seemed simplest to keep them together in a single series.
      
      This patch (of 7):
      
      Add __print_flags_u64() and the helper trace_print_flags_seq_u64() in the
      same spirit as __print_symbolic_u64() and trace_print_symbols_seq_u64().
      These functions allow us to print symbols associated with flags that are
      64 bits wide even on 32 bit machines.
      
      These will be used by the DAX code so that we can print the flags set in a
      pfn_t such as PFN_SG_CHAIN, PFN_SG_LAST, PFN_DEV and PFN_MAP.
      
      Without this new function I was getting errors like the following when
      compiling for i386:
      
        include/linux/pfn_t.h:13:22: warning: large integer implicitly truncated to unsigned type [-Woverflow]
         #define PFN_SG_CHAIN (1ULL << (BITS_PER_LONG_LONG - 1))
          ^
      
      Link: http://lkml.kernel.org/r/1484085142-2297-2-git-send-email-ross.zwisler@linux.intel.comSigned-off-by: NRoss Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: NSteven Rostedt <rostedt@goodmis.org>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Dave Jiang <dave.jiang@intel.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Matthew Wilcox <mawilcox@microsoft.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d3213e8f
    • L
      Merge tag 'tty-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 37c85961
      Linus Torvalds 提交于
      Pull tty/serial driver updates from Greg KH:
       "Here is the big tty/serial driver patchset for 4.11-rc1.
      
        Not much here, but a lot of little fixes and individual serial driver
        updates all over the subsystem. Majority are for the sh-sci driver and
        platform (the arch-specific changes have acks from the maintainer).
      
        The start of the "serial bus" code is here as well, but nothing is
        converted to use it yet. That work is still ongoing, hopefully will
        start to show up across different subsystems for 4.12 (bluetooth is
        one major place that will be used.)
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'tty-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (109 commits)
        tty: pl011: Work around QDF2400 E44 stuck BUSY bit
        atmel_serial: Use the fractional divider when possible
        tty: Remove extra include in HVC console tty framework
        serial: exar: Enable MSI support
        serial: exar: Move register defines from uapi header to consumer site
        serial: pci: Remove unused pci_boards entries
        serial: exar: Move Commtech adapters to 8250_exar as well
        serial: exar: Fix feature control register constants
        serial: exar: Fix initialization of EXAR registers for ports > 0
        serial: exar: Fix mapping of port I/O resources
        serial: sh-sci: fix hardware RX trigger level setting
        tty/serial: atmel: ensure state is restored after suspending
        serial: 8250_dw: Avoid "too much work" from bogus rx timeout interrupt
        serdev: ttyport: check whether tty_init_dev() fails
        serial: 8250_pci: make pciserial_detach_ports() static
        ARM: dts: STiH410-b2260: Enable HW flow-control
        ARM: dts: STiH407-family: Use new Pinctrl groups
        ARM: dts: STiH407-pinctrl: Add Pinctrl group for HW flow-control
        ARM: dts: STiH410-b2260: Identify the UART RTS line
        dt-bindings: serial: Update 'uart-has-rtscts' description
        ...
      37c85961
    • L
      Merge tag 'staging-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · caa59428
      Linus Torvalds 提交于
      Pull staging/iio driver updates from Greg KH:
       "Here is the big staging and iio driver patchsets for 4.11-rc1.
      
        We almost broke even this time around, with only a few thousand lines
        added overall, as we removed the old and obsolete i4l code, but added
        some new drivers for the RPi platform, as well as adding some new IIO
        drivers.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'staging-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (669 commits)
        Staging: vc04_services: Fix the "space prohibited" code style errors
        Staging: vc04_services: Fix the "wrong indent" code style errors
        staging: octeon: Use net_device_stats from struct net_device
        Staging: rtl8192u: ieee80211: ieee80211.h - style fix
        Staging: rtl8192u: ieee80211: ieee80211_tx.c - style fix
        Staging: rtl8192u: ieee80211: rtl819x_BAProc.c - style fix
        Staging: rtl8192u: ieee80211: ieee80211_module.c - style fix
        Staging: rtl8192u: ieee80211: rtl819x_TSProc.c - style fix
        Staging: rtl8192u: r8192U.h - style fix
        Staging: rtl8192u: r8192U_core.c - style fix
        Staging: rtl8192u: r819xU_cmdpkt.c - style fix
        staging: rtl8192u: blank lines aren't necessary before a close brace '}'
        staging: rtl8192u: Adding space after enum and struct definition
        staging: rtl8192u: Adding space after struct definition
        Staging: ks7010: Add required and preferred spaces around operators
        Staging: ks7010: ks*: Remove redundant blank lines
        Staging: ks7010: ks*: Add missing blank lines after declarations
        staging: visorbus, replace init_timer with setup_timer
        staging: vt6656: rxtx.c Removed multiple dereferencing
        staging: vt6656: Alignment match open parenthesis
        ...
      caa59428
    • L
      Merge tag 'driver-core-4.11-rc1' of... · b2064617
      Linus Torvalds 提交于
      Merge tag 'driver-core-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core updates from Greg KH:
       "Here is the "small" driver core patches for 4.11-rc1.
      
        Not much here, some firmware documentation and self-test updates, a
        debugfs code formatting issue, and a new feature for call_usermodehelper
        to make it more robust on systems that want to lock it down in a more
        secure way.
      
        All of these have been linux-next for a while now with no reported
        issues"
      
      * tag 'driver-core-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        kernfs: handle null pointers while printing node name and path
        Introduce STATIC_USERMODEHELPER to mediate call_usermodehelper()
        Make static usermode helper binaries constant
        kmod: make usermodehelper path a const string
        firmware: revamp firmware documentation
        selftests: firmware: send expected errors to /dev/null
        selftests: firmware: only modprobe if driver is missing
        platform: Print the resource range if device failed to claim
        kref: prefer atomic_inc_not_zero to atomic_add_unless
        debugfs: improve formatting of debugfs_real_fops()
      b2064617
    • L
      Merge tag 'char-misc-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · e30aee9e
      Linus Torvalds 提交于
      Pull char/misc driver updates from Greg KH:
       "Here is the big char/misc driver patchset for 4.11-rc1.
      
        Lots of different driver subsystems updated here: rework for the
        hyperv subsystem to handle new platforms better, mei and w1 and extcon
        driver updates, as well as a number of other "minor" driver updates.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'char-misc-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (169 commits)
        goldfish: Sanitize the broken interrupt handler
        x86/platform/goldfish: Prevent unconditional loading
        vmbus: replace modulus operation with subtraction
        vmbus: constify parameters where possible
        vmbus: expose hv_begin/end_read
        vmbus: remove conditional locking of vmbus_write
        vmbus: add direct isr callback mode
        vmbus: change to per channel tasklet
        vmbus: put related per-cpu variable together
        vmbus: callback is in softirq not workqueue
        binder: Add support for file-descriptor arrays
        binder: Add support for scatter-gather
        binder: Add extra size to allocator
        binder: Refactor binder_transact()
        binder: Support multiple /dev instances
        binder: Deal with contexts in debugfs
        binder: Support multiple context managers
        binder: Split flat_binder_object
        auxdisplay: ht16k33: remove private workqueue
        auxdisplay: ht16k33: rework input device initialization
        ...
      e30aee9e
    • L
      Merge tag 'usb-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 8ff546b8
      Linus Torvalds 提交于
      Pull USB/PHY updates from Greg KH:
       "Here is the big USB and PHY driver updates for 4.11-rc1.
      
        Nothing major, just the normal amount of churn in the usb gadget and
        dwc and xhci controllers, new device ids, new phy drivers, a new
        usb-serial driver, and a few other minor changes in different USB
        drivers.
      
        All have been in linux-next for a long time with no reported issues"
      
      * tag 'usb-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (265 commits)
        usb: cdc-wdm: remove logically dead code
        USB: serial: keyspan: drop header file
        USB: serial: io_edgeport: drop io-tables header file
        usb: musb: add code comment for clarification
        usb: misc: add USB251xB/xBi Hi-Speed Hub Controller Driver
        usb: misc: usbtest: remove redundant check on retval < 0
        USB: serial: upd78f0730: sort device ids
        USB: serial: upd78f0730: add ID for EVAL-ADXL362Z
        ohci-hub: fix typo in dbg_port macro
        usb: musb: dsps: Manage CPPI 4.1 DMA interrupt in DSPS
        usb: musb: tusb6010: Clean up tusb_omap_dma structure
        usb: musb: cppi_dma: Clean up cppi41_dma_controller structure
        usb: musb: cppi_dma: Clean up cppi structure
        usb: musb: cppi41: Detect aborted transfers in cppi41_dma_callback()
        usb: musb: dma: Add a DMA completion platform callback
        drivers: usb: usbip: Add missing break statement to switch
        usb: mtu3: remove redundant dev_err call in get_ssusb_rscs()
        USB: serial: mos7840: fix another NULL-deref at open
        USB: serial: console: clean up sanity checks
        USB: serial: console: fix uninitialised spinlock
        ...
      8ff546b8
    • L
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · ca78d317
      Linus Torvalds 提交于
      Pull arm64 updates from Will Deacon:
       - Errata workarounds for Qualcomm's Falkor CPU
       - Qualcomm L2 Cache PMU driver
       - Qualcomm SMCCC firmware quirk
       - Support for DEBUG_VIRTUAL
       - CPU feature detection for userspace via MRS emulation
       - Preliminary work for the Statistical Profiling Extension
       - Misc cleanups and non-critical fixes
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (74 commits)
        arm64/kprobes: consistently handle MRS/MSR with XZR
        arm64: cpufeature: correctly handle MRS to XZR
        arm64: traps: correctly handle MRS/MSR with XZR
        arm64: ptrace: add XZR-safe regs accessors
        arm64: include asm/assembler.h in entry-ftrace.S
        arm64: fix warning about swapper_pg_dir overflow
        arm64: Work around Falkor erratum 1003
        arm64: head.S: Enable EL1 (host) access to SPE when entered at EL2
        arm64: arch_timer: document Hisilicon erratum 161010101
        arm64: use is_vmalloc_addr
        arm64: use linux/sizes.h for constants
        arm64: uaccess: consistently check object sizes
        perf: add qcom l2 cache perf events driver
        arm64: remove wrong CONFIG_PROC_SYSCTL ifdef
        ARM: smccc: Update HVC comment to describe new quirk parameter
        arm64: do not trace atomic operations
        ACPI/IORT: Fix the error return code in iort_add_smmu_platform_device()
        ACPI/IORT: Fix iort_node_get_id() mapping entries indexing
        arm64: mm: enable CONFIG_HOLES_IN_ZONE for NUMA
        perf: xgene: Include module.h
        ...
      ca78d317
    • L
      Merge tag 'arc-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · a4ee7bac
      Linus Torvalds 提交于
      Pull ARC updates from Vineet Gupta:
      
       - Intc imporvements [Yuriy]
      
       - VDK platform updates [Alexey]
      
      * tag 'arc-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARC: [plat-*] ARC_HAS_COH_CACHES no longer relevant
        ARCv2: intc: Delete useless comments in Device Trees
        ARCv2: IDU-intc: Delete deprecated parameters in Device Trees
        ARCv2: IDU-intc: mask all common interrupts by default
        ARCv2: IDU-intc: Use build registers for getting numbers of interrupts
        ARCv2: intc: Set default priority for all core interrupts
        ARCv2: intc: Use runtime value of irq count for setting up intc
        ARCv2: intc: Rework the build time irq count information
        ARC: [intc-*]: confine NR_CPU_IRQS to intc code
        ARCv2: intc: Use ARC_REG_STATUS32 for addressing STATUS32 reg
        arc: vdk: Add support of UIO
        arc: vdk: Add support of MMC controller
        arc: vdk: Disable halt on reset
      a4ee7bac
    • L
      Merge tag 'powerpc-4.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 38705613
      Linus Torvalds 提交于
      Pull powerpc updates from Michael Ellerman:
       "Highlights include:
      
         - Support for direct mapped LPC on POWER9, giving Linux direct access
           to devices that may be on there such as a UART.
      
         - Memory hotplug support for the Power9 Radix MMU.
      
         - Add new AUX vectors describing the processor's cache geometry, to
           be used by glibc.
      
         - The ability for a guest to ask the hypervisor to resize the guest's
           hash table, and in addition support for doing so automatically when
           memory is hotplugged into/out-of the guest. This allows the hash
           table to be sized based on the current memory usage of the guest,
           rather than the maximum possible memory usage.
      
         - Implementation of optprobes (kprobe optimisation) for powerpc.
      
        In addition there's the topic branch shared with the KVM tree, which
        includes support for guests to use the Radix MMU on Power9.
      
        Thanks to:
          Alistair Popple, Andrew Donnellan, Aneesh Kumar K.V, Anju T, Anton
          Blanchard, Benjamin Herrenschmidt, Chris Packham, Daniel Axtens,
          Daniel Borkmann, David Gibson, Finn Thain, Gautham R. Shenoy, Gavin
          Shan, Greg Kurz, Joel Stanley, John Allen, Madhavan Srinivasan,
          Mahesh Salgaonkar, Markus Elfring, Michael Neuling, Nathan Fontenot,
          Naveen N. Rao, Nicholas Piggin, Paul Mackerras, Ravi Bangoria, Reza
          Arbab, Shailendra Singh, Vaibhav Jain, Wei Yongjun"
      
      * tag 'powerpc-4.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (129 commits)
        powerpc/mm/radix: Skip ptesync in pte update helpers
        powerpc/mm/radix: Use ptep_get_and_clear_full when clearing pte for full mm
        powerpc/mm/radix: Update pte update sequence for pte clear case
        powerpc/mm: Update PROTFAULT handling in the page fault path
        powerpc/xmon: Fix data-breakpoint
        powerpc/mm: Fix build break with BOOK3S_64=n and MEMORY_HOTPLUG=y
        powerpc/mm: Fix build break when CMA=n && SPAPR_TCE_IOMMU=y
        powerpc/mm: Fix build break with RADIX=y & HUGETLBFS=n
        powerpc/pseries: Fix typo in parameter description
        powerpc/kprobes: Remove kprobe_exceptions_notify()
        kprobes: Introduce weak variant of kprobe_exceptions_notify()
        powerpc/ftrace: Fix confusing help text for DISABLE_MPROFILE_KERNEL
        powerpc/powernv: Fix opal_exit tracepoint opcode
        powerpc: Add a prototype for mcount() so it can be versioned
        powerpc: Drop GPL from of_node_to_nid() export to match other arches
        powerpc/kprobes: Optimize kprobe in kretprobe_trampoline()
        powerpc/kprobes: Implement Optprobes
        powerpc/kprobes: Fixes for kprobe_lookup_name() on BE
        powerpc: Add helper to check if offset is within relative branch range
        powerpc/bpf: Introduce __PPC_SH64()
        ...
      38705613
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · ff47d8c0
      Linus Torvalds 提交于
      Pull s390 updates from Martin Schwidefsky:
      
       - New entropy generation for the pseudo random number generator.
      
       - Early boot printk output via sclp to help debug crashes on boot. This
         needs to be enabled with a kernel parameter.
      
       - Add proper no-execute support with a bit in the page table entry.
      
       - Bug fixes and cleanups.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (65 commits)
        s390/syscall: fix single stepped system calls
        s390/zcrypt: make ap_bus explicitly non-modular
        s390/zcrypt: Removed unneeded debug feature directory creation.
        s390: add missing "do {} while (0)" loop constructs to multiline macros
        s390/mm: add cond_resched call to kernel page table dumper
        s390: get rid of MACHINE_HAS_PFMF and MACHINE_HAS_HPAGE
        s390/mm: make memory_block_size_bytes available for !MEMORY_HOTPLUG
        s390: replace ACCESS_ONCE with READ_ONCE
        s390: Audit and remove any remaining unnecessary uses of module.h
        s390: mm: Audit and remove any unnecessary uses of module.h
        s390: kernel: Audit and remove any unnecessary uses of module.h
        s390/kdump: Use "LINUX" ELF note name instead of "CORE"
        s390: add no-execute support
        s390: report new vector facilities
        s390: use correct input data address for setup_randomness
        s390/sclp: get rid of common response code handling
        s390/sclp: don't add new lines to each printed string
        s390/sclp: make early sclp code readable
        s390/sclp: disable early sclp code as soon as the base sclp driver is active
        s390/sclp: move early printk code to drivers
        ...
      ff47d8c0
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · 3051bf36
      Linus Torvalds 提交于
      Pull networking updates from David Miller:
       "Highlights:
      
         1) Support TX_RING in AF_PACKET TPACKET_V3 mode, from Sowmini
            Varadhan.
      
         2) Simplify classifier state on sk_buff in order to shrink it a bit.
            From Willem de Bruijn.
      
         3) Introduce SIPHASH and it's usage for secure sequence numbers and
            syncookies. From Jason A. Donenfeld.
      
         4) Reduce CPU usage for ICMP replies we are going to limit or
            suppress, from Jesper Dangaard Brouer.
      
         5) Introduce Shared Memory Communications socket layer, from Ursula
            Braun.
      
         6) Add RACK loss detection and allow it to actually trigger fast
            recovery instead of just assisting after other algorithms have
            triggered it. From Yuchung Cheng.
      
         7) Add xmit_more and BQL support to mvneta driver, from Simon Guinot.
      
         8) skb_cow_data avoidance in esp4 and esp6, from Steffen Klassert.
      
         9) Export MPLS packet stats via netlink, from Robert Shearman.
      
        10) Significantly improve inet port bind conflict handling, especially
            when an application is restarted and changes it's setting of
            reuseport. From Josef Bacik.
      
        11) Implement TX batching in vhost_net, from Jason Wang.
      
        12) Extend the dummy device so that VF (virtual function) features,
            such as configuration, can be more easily tested. From Phil
            Sutter.
      
        13) Avoid two atomic ops per page on x86 in bnx2x driver, from Eric
            Dumazet.
      
        14) Add new bpf MAP, implementing a longest prefix match trie. From
            Daniel Mack.
      
        15) Packet sample offloading support in mlxsw driver, from Yotam Gigi.
      
        16) Add new aquantia driver, from David VomLehn.
      
        17) Add bpf tracepoints, from Daniel Borkmann.
      
        18) Add support for port mirroring to b53 and bcm_sf2 drivers, from
            Florian Fainelli.
      
        19) Remove custom busy polling in many drivers, it is done in the core
            networking since 4.5 times. From Eric Dumazet.
      
        20) Support XDP adjust_head in virtio_net, from John Fastabend.
      
        21) Fix several major holes in neighbour entry confirmation, from
            Julian Anastasov.
      
        22) Add XDP support to bnxt_en driver, from Michael Chan.
      
        23) VXLAN offloads for enic driver, from Govindarajulu Varadarajan.
      
        24) Add IPVTAP driver (IP-VLAN based tap driver) from Sainath Grandhi.
      
        25) Support GRO in IPSEC protocols, from Steffen Klassert"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1764 commits)
        Revert "ath10k: Search SMBIOS for OEM board file extension"
        net: socket: fix recvmmsg not returning error from sock_error
        bnxt_en: use eth_hw_addr_random()
        bpf: fix unlocking of jited image when module ronx not set
        arch: add ARCH_HAS_SET_MEMORY config
        net: napi_watchdog() can use napi_schedule_irqoff()
        tcp: Revert "tcp: tcp_probe: use spin_lock_bh()"
        net/hsr: use eth_hw_addr_random()
        net: mvpp2: enable building on 64-bit platforms
        net: mvpp2: switch to build_skb() in the RX path
        net: mvpp2: simplify MVPP2_PRS_RI_* definitions
        net: mvpp2: fix indentation of MVPP2_EXT_GLOBAL_CTRL_DEFAULT
        net: mvpp2: remove unused register definitions
        net: mvpp2: simplify mvpp2_bm_bufs_add()
        net: mvpp2: drop useless fields in mvpp2_bm_pool and related code
        net: mvpp2: remove unused 'tx_skb' field of 'struct mvpp2_tx_queue'
        net: mvpp2: release reference to txq_cpu[] entry after unmapping
        net: mvpp2: handle too large value in mvpp2_rx_time_coal_set()
        net: mvpp2: handle too large value handling in mvpp2_rx_pkts_coal_set()
        net: mvpp2: remove useless arguments in mvpp2_rx_{pkts, time}_coal_set
        ...
      3051bf36
    • L
      Merge tag 'gcc-plugins-v4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 1e74a2eb
      Linus Torvalds 提交于
      Pull gcc-plugins updates from Kees Cook:
       "This includes infrastructure updates and the structleak plugin, which
        performs forced initialization of certain structures to avoid possible
        information exposures to userspace.
      
        Summary:
      
         - infrastructure updates (gcc-common.h)
      
         - introduce structleak plugin for forced initialization of some
           structures"
      
      * tag 'gcc-plugins-v4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        gcc-plugins: Add structleak for more stack initialization
        gcc-plugins: consolidate on PASS_INFO macro
        gcc-plugins: add PASS_INFO and build_const_char_string()
      1e74a2eb