1. 16 11月, 2017 22 次提交
    • D
      mm/slab.c: only set __GFP_RECLAIMABLE once · a3ba0744
      David Rientjes 提交于
      SLAB_RECLAIM_ACCOUNT is a permanent attribute of a slab cache.  Set
      __GFP_RECLAIMABLE as part of its ->allocflags rather than check the
      cachep flag on every page allocation.
      
      Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1710171527560.140898@chino.kir.corp.google.comSigned-off-by: NDavid Rientjes <rientjes@google.com>
      Acked-by: NVlastimil Babka <vbabka@suse.cz>
      Acked-by: NMel Gorman <mgorman@techsingularity.net>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      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>
      a3ba0744
    • M
      mm/slob.c: remove an unnecessary check for __GFP_ZERO · 9f88faee
      Miles Chen 提交于
      Current flow guarantees a valid pointer when handling the __GFP_ZERO
      case.  So remove the unnecessary NULL pointer check.
      
      Link: http://lkml.kernel.org/r/1507203141-11959-1-git-send-email-miles.chen@mediatek.comSigned-off-by: NMiles Chen <miles.chen@mediatek.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>
      9f88faee
    • Y
      mm: oom: show unreclaimable slab info when unreclaimable slabs > user memory · 852d8be0
      Yang Shi 提交于
      The kernel may panic when an oom happens without killable process
      sometimes it is caused by huge unreclaimable slabs used by kernel.
      
      Although kdump could help debug such problem, however, kdump is not
      available on all architectures and it might be malfunction sometime.
      And, since kernel already panic it is worthy capturing such information
      in dmesg to aid touble shooting.
      
      Print out unreclaimable slab info (used size and total size) which
      actual memory usage is not zero (num_objs * size != 0) when
      unreclaimable slabs amount is greater than total user memory (LRU
      pages).
      
      The output looks like:
      
        Unreclaimable slab info:
        Name                      Used          Total
        rpc_buffers               31KB         31KB
        rpc_tasks                  7KB          7KB
        ebitmap_node            1964KB       1964KB
        avtab_node              5024KB       5024KB
        xfs_buf                 1402KB       1402KB
        xfs_ili                  134KB        134KB
        xfs_efi_item             115KB        115KB
        xfs_efd_item             115KB        115KB
        xfs_buf_item             134KB        134KB
        xfs_log_item_desc        342KB        342KB
        xfs_trans               1412KB       1412KB
        xfs_ifork                212KB        212KB
      
      [yang.s@alibaba-inc.com: v11]
        Link: http://lkml.kernel.org/r/1507656303-103845-4-git-send-email-yang.s@alibaba-inc.com
      Link: http://lkml.kernel.org/r/1507152550-46205-4-git-send-email-yang.s@alibaba-inc.comSigned-off-by: NYang Shi <yang.s@alibaba-inc.com>
      Acked-by: NMichal Hocko <mhocko@suse.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      852d8be0
    • Y
      mm: slabinfo: remove CONFIG_SLABINFO · 5b365771
      Yang Shi 提交于
      According to discussion with Christoph
      (https://marc.info/?l=linux-kernel&m=150695909709711&w=2), it sounds like
      it is pointless to keep CONFIG_SLABINFO around.
      
      This patch removes the CONFIG_SLABINFO config option, but /proc/slabinfo
      is still available.
      
      [yang.s@alibaba-inc.com: v11]
        Link: http://lkml.kernel.org/r/1507656303-103845-3-git-send-email-yang.s@alibaba-inc.com
      Link: http://lkml.kernel.org/r/1507152550-46205-3-git-send-email-yang.s@alibaba-inc.comSigned-off-by: NYang Shi <yang.s@alibaba-inc.com>
      Acked-by: NDavid Rientjes <rientjes@google.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: Michal Hocko <mhocko@kernel.org>
      Cc: Pekka Enberg <penberg@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5b365771
    • Y
      tools: slabinfo: add "-U" option to show unreclaimable slabs only · 7ad3f188
      Yang Shi 提交于
      Patch series "oom: capture unreclaimable slab info in oom message", v10.
      
      Recently we ran into a oom issue, kernel panic due to no killable
      process.  The dmesg shows huge unreclaimable slabs used almost 100%
      memory, but kdump doesn't capture vmcore due to some reason.
      
      So, it may sound better to capture unreclaimable slab info in oom
      message when kernel panic to aid trouble shooting and cover the corner
      case.  Since kernel already panic, so capturing more information sounds
      worthy and doesn't bother normal oom killer.
      
      With the patchset, tools/vm/slabinfo has a new option, "-U", to show
      unreclaimable slab only.
      
      And, oom will print all non zero (num_objs * size != 0) unreclaimable
      slabs in oom killer message.
      
      This patch (of 3):
      
      Add "-U" option to show unreclaimable slabs only.
      
      "-U" and "-S" together can tell us what unreclaimable slabs use the most
      memory to help debug huge unreclaimable slabs issue.
      
      Link: http://lkml.kernel.org/r/1507152550-46205-2-git-send-email-yang.s@alibaba-inc.comSigned-off-by: NYang Shi <yang.s@alibaba-inc.com>
      Acked-by: NChristoph Lameter <cl@linux.com>
      Acked-by: NDavid Rientjes <rientjes@google.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: Michal Hocko <mhocko@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7ad3f188
    • G
      ocfs2: remove unneeded goto in ocfs2_reserve_cluster_bitmap_bits() · 47ee9d89
      Guozhonghua 提交于
      Link: http://lkml.kernel.org/r/71604351584F6A4EBAE558C676F37CA4F3CDE3A9@H3CMLB14-EX.srv.huawei-3com.comSigned-off-by: Nguozhonghua <guozhonghua@h3c.com>
      Cc: Mark Fasheh <mfasheh@versity.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Joseph Qi <jiangqi903@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      47ee9d89
    • C
      ocfs2/dlm: get mle inuse only when it is initialized · 3db409fa
      Changwei Ge 提交于
      When dlm_add_migration_mle returns -EEXIST, previously input mle will
      not be initialized.  So we can't use its associated dlm object.  And we
      truly don't need this mle for already launched migration progress, since
      oldmle has taken this role.
      
      Link: http://lkml.kernel.org/r/63ADC13FD55D6546B7DECE290D39E373CED7AA61@H3CMLB14-EX.srv.huawei-3com.comSigned-off-by: NChangwei Ge <ge.changwei@h3c.com>
      Reviewed-by: NJoseph Qi <jiangqi903@gmail.com>
      Cc: Mark Fasheh <mfasheh@versity.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3db409fa
    • A
      ocfs2: subsystem.su_mutex is required while accessing the item->ci_parent · 853bc26a
      alex chen 提交于
      The subsystem.su_mutex is required while accessing the item->ci_parent,
      otherwise, NULL pointer dereference to the item->ci_parent will be
      triggered in the following situation:
      
      add node                     delete node
      sys_write
       vfs_write
        configfs_write_file
         o2nm_node_store
          o2nm_node_local_write
                                   do_rmdir
                                    vfs_rmdir
                                     configfs_rmdir
                                      mutex_lock(&subsys->su_mutex);
                                      unlink_obj
                                       item->ci_group = NULL;
                                       item->ci_parent = NULL;
      	 to_o2nm_cluster_from_node
      	  node->nd_item.ci_parent->ci_parent
      	  BUG since of NULL pointer dereference to nd_item.ci_parent
      
      Moreover, the o2nm_cluster also should be protected by the
      subsystem.su_mutex.
      
      [alex.chen@huawei.com: v2]
        Link: http://lkml.kernel.org/r/59EEAA69.9080703@huawei.com
      Link: http://lkml.kernel.org/r/59E9B36A.10700@huawei.comSigned-off-by: NAlex Chen <alex.chen@huawei.com>
      Reviewed-by: NJun Piao <piaojun@huawei.com>
      Reviewed-by: NJoseph Qi <jiangqi903@gmail.com>
      Cc: Mark Fasheh <mfasheh@versity.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      853bc26a
    • A
      ocfs2: ip_alloc_sem should be taken in ocfs2_get_block() · 3e4c56d4
      alex chen 提交于
      ip_alloc_sem should be taken in ocfs2_get_block() when reading file in
      DIRECT mode to prevent concurrent access to extent tree with
      ocfs2_dio_end_io_write(), which may cause BUGON in the following
      situation:
      
      read file 'A'                                  end_io of writing file 'A'
      vfs_read
       __vfs_read
        ocfs2_file_read_iter
         generic_file_read_iter
          ocfs2_direct_IO
           __blockdev_direct_IO
            do_blockdev_direct_IO
             do_direct_IO
              get_more_blocks
               ocfs2_get_block
                ocfs2_extent_map_get_blocks
                 ocfs2_get_clusters
                  ocfs2_get_clusters_nocache()
                   ocfs2_search_extent_list
                    return the index of record which
                    contains the v_cluster, that is
                    v_cluster > rec[i]->e_cpos.
                                                      ocfs2_dio_end_io
                                                       ocfs2_dio_end_io_write
                                                        down_write(&oi->ip_alloc_sem);
                                                        ocfs2_mark_extent_written
                                                         ocfs2_change_extent_flag
                                                          ocfs2_split_extent
                                                           ...
                                                       --> modify the rec[i]->e_cpos, resulting
                                                           in v_cluster < rec[i]->e_cpos.
                   BUG_ON(v_cluster < le32_to_cpu(rec->e_cpos))
      
      [alex.chen@huawei.com: v3]
        Link: http://lkml.kernel.org/r/59EF3614.6050008@huawei.com
      Link: http://lkml.kernel.org/r/59EF3614.6050008@huawei.com
      Fixes: c15471f7 ("ocfs2: fix sparse file & data ordering issue in direct io")
      Signed-off-by: NAlex Chen <alex.chen@huawei.com>
      Reviewed-by: NJun Piao <piaojun@huawei.com>
      Reviewed-by: NJoseph Qi <jiangqi903@gmail.com>
      Reviewed-by: NGang He <ghe@suse.com>
      Acked-by: NChangwei Ge <ge.changwei@h3c.com>
      Cc: Mark Fasheh <mfasheh@versity.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3e4c56d4
    • A
      ocfs2: should wait dio before inode lock in ocfs2_setattr() · 28f5a8a7
      alex chen 提交于
      we should wait dio requests to finish before inode lock in
      ocfs2_setattr(), otherwise the following deadlock will happen:
      
      process 1                  process 2                    process 3
      truncate file 'A'          end_io of writing file 'A'   receiving the bast messages
      ocfs2_setattr
       ocfs2_inode_lock_tracker
        ocfs2_inode_lock_full
       inode_dio_wait
        __inode_dio_wait
        -->waiting for all dio
        requests finish
                                                              dlm_proxy_ast_handler
                                                               dlm_do_local_bast
                                                                ocfs2_blocking_ast
                                                                 ocfs2_generic_handle_bast
                                                                  set OCFS2_LOCK_BLOCKED flag
                              dio_end_io
                               dio_bio_end_aio
                                dio_complete
                                 ocfs2_dio_end_io
                                  ocfs2_dio_end_io_write
                                   ocfs2_inode_lock
                                    __ocfs2_cluster_lock
                                     ocfs2_wait_for_mask
                                     -->waiting for OCFS2_LOCK_BLOCKED
                                     flag to be cleared, that is waiting
                                     for 'process 1' unlocking the inode lock
                                 inode_dio_end
                                 -->here dec the i_dio_count, but will never
                                 be called, so a deadlock happened.
      
      Link: http://lkml.kernel.org/r/59F81636.70508@huawei.comSigned-off-by: NAlex Chen <alex.chen@huawei.com>
      Reviewed-by: NJun Piao <piaojun@huawei.com>
      Reviewed-by: NJoseph Qi <jiangqi903@gmail.com>
      Acked-by: NChangwei Ge <ge.changwei@h3c.com>
      Cc: Mark Fasheh <mfasheh@versity.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      28f5a8a7
    • P
      ocfs2: clean up some unused function declarations · 67b1b8d1
      piaojun 提交于
      Link: http://lkml.kernel.org/r/59C5D7D6.9050106@huawei.comSigned-off-by: NJun Piao <piaojun@huawei.com>
      Reviewed-by: NAlex Chen <alex.chen@huawei.com>
      Cc: Mark Fasheh <mfasheh@versity.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Joseph Qi <jiangqi903@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      67b1b8d1
    • C
      ocfs2: fix cluster hang after a node dies · 1c019671
      Changwei Ge 提交于
      When a node dies, other live nodes have to choose a new master for an
      existed lock resource mastered by the dead node.
      
      As for ocfs2/dlm implementation, this is done by function -
      dlm_move_lockres_to_recovery_list which marks those lock rsources as
      DLM_LOCK_RES_RECOVERING and manages them via a list from which DLM
      changes lock resource's master later.
      
      So without invoking dlm_move_lockres_to_recovery_list, no master will be
      choosed after dlm recovery accomplishment since no lock resource can be
      found through ::resource list.
      
      What's worse is that if DLM_LOCK_RES_RECOVERING is not marked for lock
      resources mastered a dead node, it will break up synchronization among
      nodes.
      
      So invoke dlm_move_lockres_to_recovery_list again.
      
      Fixs: 'commit ee8f7fcb ("ocfs2/dlm: continue to purge recovery lockres when recovery master goes down")'
      Link: http://lkml.kernel.org/r/63ADC13FD55D6546B7DECE290D39E373CED6E0F9@H3CMLB14-EX.srv.huawei-3com.comSigned-off-by: NChangwei Ge <ge.changwei@h3c.com>
      Reported-by: NVitaly Mayatskih <v.mayatskih@gmail.com>
      Tested-by: NVitaly Mayatskikh <v.mayatskih@gmail.com>
      Cc: Mark Fasheh <mfasheh@versity.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Joseph Qi <jiangqi903@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1c019671
    • P
      ocfs2: cleanup unused func declaration and assignment · 98d6c09e
      piaojun 提交于
      Link: http://lkml.kernel.org/r/59E064BB.8000005@huawei.comSigned-off-by: NJun Piao <piaojun@huawei.com>
      Reviewed-by: NJoseph Qi <jiangqi903@gmail.com>
      Cc: Mark Fasheh <mfasheh@versity.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      98d6c09e
    • P
      ocfs2: no need flush workqueue before destroying it · 23e0813a
      piaojun 提交于
      destroy_workqueue() will do flushing work for us.
      
      Link: http://lkml.kernel.org/r/59E06476.3090502@huawei.comSigned-off-by: NJun Piao <piaojun@huawei.com>
      Reviewed-by: NJoseph Qi <jiangqi903@gmail.com>
      Cc: Mark Fasheh <mfasheh@versity.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      23e0813a
    • G
      ocfs2: remove unused declaration ocfs2_publish_get_mount_state() · a60874f8
      Guozhonghua 提交于
      Link: http://lkml.kernel.org/r/71604351584F6A4EBAE558C676F37CA4D0743232@H3CMLB12-EX.srv.huawei-3com.comSigned-off-by: Nguozhonghua <guozhonghua@h3c.com>
      Acked-by: NChangwei Ge <ge.changwei@h3c.com>
      Cc: Mark Fasheh <mfasheh@versity.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Joseph Qi <jiangqi903@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a60874f8
    • G
      m32r: fix endianness constraints · c95f1211
      Geert Uytterhoeven 提交于
      The m32r Kconfig provides both CPU_BIG_ENDIAN and CPU_LITTLE_ENDIAN
      configuration options.  As they are user-selectable and independent,
      this allows invalid configurations:
      
        - All m32r defconfigs build a big endian kernel, but CPU_BIG_ENDIAN is
          not set, causing compiler warnings like:
      
      	include/linux/byteorder/big_endian.h:7:2: warning: #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN [-Wcpp]
      	 #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN
      	  ^
      
        - Since commit 5bdfca64 ("m32r: define CPU_BIG_ENDIAN"),
          building an allmodconfig or allyesconfig enables both
          CONFIG_CPU_BIG_ENDIAN and CONFIG_CPU_LITTLE_ENDIAN.
          While this did get rid of the warning above, both options are
          obviously mutually exclusive.
      
      Fix this by making only CPU_LITTLE_ENDIAN configurable by the user, as
      before, and by making sure exactly one of CPU_BIG_ENDIAN and
      CPU_LITTLE_ENDIAN is always enabled.
      
      Link: http://lkml.kernel.org/r/1509361505-18150-1-git-send-email-geert@linux-m68k.org
      Fixes: 5bdfca64 ("m32r: define CPU_BIG_ENDIAN")
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c95f1211
    • M
      bloat-o-meter: provide 3 different arguments for data, function and All · 192efb7a
      Maninder Singh 提交于
      This patch provides 3 new arguments for bloat-o-meter
       1) -c -> for all (showing function and data differently)
       2) -d -> data
       3) -t -> function
      
      output:
      
        ./scripts/bloat-o-meter  -c "file1" "file2"
        add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-152 (-152)
        Function                                     old     new   delta
        main                                         412     260    -152
        Total: Before=548, After=396, chg -27.74%
        ##########################################################
        add/remove: 1/0 grow/shrink: 1/0 up/down: 84/0 (84)
        Data                                         old     new   delta
        arr                                            -      64     +64
        backtrace                                     60      80     +20
        Total: Before=109, After=193, chg +77.06%
        ##########################################################
        add/remove: 0/1 grow/shrink: 0/0 up/down: 0/-64 (-64)
        RO Data                                      old     new   delta
        arr                                           64       -     -64
        Total: Before=68, After=4, chg -94.12%
      
      [maninder1.s@samsung.com: v1 -> v2]
        Link: http://lkml.kernel.org/r/1506569402-24787-1-git-send-email-maninder1.s@samsung.com
      Link: http://lkml.kernel.org/r/1506336313-27187-1-git-send-email-maninder1.s@samsung.comSigned-off-by: NVaneet Narang <v.narang@samsung.com>
      Signed-off-by: NManinder Singh <maninder1.s@samsung.com>
      Cc: Amit Sahrawat <a.sahrawat@samsung.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Michal Marek <mmarek@suse.cz>
      Cc: <pankaj.m@samsung.com>
      Cc: <a.sahrawat@samsung.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      192efb7a
    • L
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · c9b012e5
      Linus Torvalds 提交于
      Pull arm64 updates from Will Deacon:
       "The big highlight is support for the Scalable Vector Extension (SVE)
        which required extensive ABI work to ensure we don't break existing
        applications by blowing away their signal stack with the rather large
        new vector context (<= 2 kbit per vector register). There's further
        work to be done optimising things like exception return, but the ABI
        is solid now.
      
        Much of the line count comes from some new PMU drivers we have, but
        they're pretty self-contained and I suspect we'll have more of them in
        future.
      
        Plenty of acronym soup here:
      
         - initial support for the Scalable Vector Extension (SVE)
      
         - improved handling for SError interrupts (required to handle RAS
           events)
      
         - enable GCC support for 128-bit integer types
      
         - remove kernel text addresses from backtraces and register dumps
      
         - use of WFE to implement long delay()s
      
         - ACPI IORT updates from Lorenzo Pieralisi
      
         - perf PMU driver for the Statistical Profiling Extension (SPE)
      
         - perf PMU driver for Hisilicon's system PMUs
      
         - misc cleanups and non-critical fixes"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (97 commits)
        arm64: Make ARMV8_DEPRECATED depend on SYSCTL
        arm64: Implement __lshrti3 library function
        arm64: support __int128 on gcc 5+
        arm64/sve: Add documentation
        arm64/sve: Detect SVE and activate runtime support
        arm64/sve: KVM: Hide SVE from CPU features exposed to guests
        arm64/sve: KVM: Treat guest SVE use as undefined instruction execution
        arm64/sve: KVM: Prevent guests from using SVE
        arm64/sve: Add sysctl to set the default vector length for new processes
        arm64/sve: Add prctl controls for userspace vector length management
        arm64/sve: ptrace and ELF coredump support
        arm64/sve: Preserve SVE registers around EFI runtime service calls
        arm64/sve: Preserve SVE registers around kernel-mode NEON use
        arm64/sve: Probe SVE capabilities and usable vector lengths
        arm64: cpufeature: Move sys_caps_initialised declarations
        arm64/sve: Backend logic for setting the vector length
        arm64/sve: Signal handling support
        arm64/sve: Support vector length resetting for new processes
        arm64/sve: Core task context handling
        arm64/sve: Low-level CPU setup
        ...
      c9b012e5
    • L
      Merge tag 'riscv-for-linus-4.15-arch-v9-premerge' of... · b293fca4
      Linus Torvalds 提交于
      Merge tag 'riscv-for-linus-4.15-arch-v9-premerge' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/linux
      
      Pull RISC-V architecture support from Palmer Dabbelt:
       "This contains the core RISC-V Linux port, which has been through nine
        rounds of review on various mailing lists. The port is not complete:
        there's some cleanup patches moving through the review process, a
        whole bunch of drivers that need some work, and a lot of feature
        additions that will be needed.
      
        The patches contained in this tag have been through nine rounds of
        review on the various mailing lists. I have some outstanding cleanup
        patches, but since there's been so much review on these patches I
        thought it would be best to submit them as-is and then submit explicit
        cleanup patches so everyone can review them. This first patch set is
        big enough that it's a bit of a pain to constantly rewrite, and it's
        caused a few headaches with various contributors.
      
        The port is definately a work in progress. While what's there builds
        and boots with 4.14, it's a bit hard to actually see anything happen
        because there are no device drivers yet. I maintain a staging branch
        that contains all the device drivers and cleanup that actually works,
        but those patches won't all be ready for a while. I'd like to get what
        we currently have into your tree so everyone can start working from a
        single base -- of particular importance is allowing the glibc
        upstreaming process to proceed so we can sort out any possibly
        lingering user-visible ABI problems we might have.
      
        Copied below is the ChangeLog that contains the history of this patch
        set:
      
         (v9) As per suggestions on our v8 patch set, I've split the core
              architecture code out from our drivers and would like to submit
              this patch set to be included into linux-next, with the goal
              being to be merged in during the next merge window. This patch
              set is based on 4.14-rc2, but if it's better to have it based on
              something else then I can change it around.
      
              This patch set contains just the core arch code for RISC-V, so
              while it builds an nominally boots, you can't print or take an
              interrupt so it's not that useful. If you're looking to actually
              boot a system it would probably be better to use the full patch
              set listed below.
      
              We've collected a handful of tags from reviewers, and the
              remainder of the patch set only got minimal feedback last time.
              Here's what changed:
      
               - We now use the device tree to initialize the timer driver so
                 it's less tighly coupled with the arch port.
      
               - I cleaned up the defconfigs -- there's actually now just one,
                 and it's empty. For now I think we're OK with what the kernel
                 sets as defaults, but I anticipate we'll begin to expand this
                 as people start to use the port more.
      
               - The VDSO symbols version is sane.
      
               - We WFI while spinning in the boot loop.
      
               - A handful of comments have been added.
      
              While there are still a handful of FIXMEs in this patch set,
              we've started to get enough interest from various users and
              contributors that maintaining an out of tree patch set is
              starting to become a big burden. Hopefully the patches are good
              enough to merge now, which will at least get everyone working in
              a more reasonable manner as we clean up the remaining issues.
      
         (v8) I know it may not be the ideal time to submit a patch set right
              now, as it's the middle of the merge window, but things have
              calmed down quite a bit in the last month so I thought it would
              be good to get everyone on the same page. There's been a handful
              of changes since the last patch set, but most of them are fairly
              minor:
      
               - We changed PAGE_OFFSET to allowing mapping more physical
                 memory on 64-bit systems. This is user configurable, as it
                 triggers a different code model that generates slightly less
                 efficient code.
      
               - The device tree binding documentation is back, I'd managed to
                 lose it at some point.
      
               - We now pass the atomic64 test suite
      
               - The SBI timer driver has been refactored.
      
         (v7) It's been a while since my last patch set, but the changes han
              been fairly minimal:
      
               - The PCI cleanup patches have been dropped, we'll do them as a
                 separate patch set later.
      
               - We've the Kconfig entries from CONFIG_ISA_* to
                 CONFIG_RISCV_ISA_*, to make grep easier.
      
               - There have been a handful of memory model related tweaks in
                 I/O land, particularly relating the PCI and the upcoming
                 platform specification. There are significant comments in the
                 relevant files. This is still a WIP, but I think we're close
                 to getting as good as we're going to get until we end up with
                 some more specifications.
      
         (v6) As it's been only a day since the v5 patch set, the changes are
              pretty minimal:
      
               - The patch set is now based on linux-next/master, which I
                 believe is a better base now that we're getting closer to
                 upstream.
      
               - EARLY_PRINTK is no longer an option. Since the SBI console is
                 reasonable, there's no penalty to enabling it (and thus no
                 benefit to disabling it).
      
               - The mmap syscalls were refactored a bit.
      
         (v5) Things have really started to calm down, so this is fairly
              similar to the v4 patch set. The most interesting changes
              include:
      
               - We've moved back to a single patch set.
      
               - SMP support has been fixed, I was accidentally running on a
                 non-SMP configuration. There were various mistakes all over
                 the tree as a result of this.
      
               - The cmpxchg syscalls have been removed, as they were deemed a
                 bad idea. As a result, RISC-V Linux systems mandate the A
                 extension. The corresponding Kconfig entry to enable builds
                 on non-A systems has been removed.
      
               - A few more atomic fixes: mostly fence changes, but those
                 resulted in a handful of additional macros that were no
                 longer necessary.
      
               - riscv_early_sie has been removed.
      
         (v4) There have only been a few changes since the v3 patch set:
      
               - The cmpxchg64 syscall is no longer enabled on 32-bit systems.
                 It's not possible to provide this on SMP systems, and it's
                 not necessary as glibc knows not to call it.
      
               - We provide a ELF_HWCAP so users can determine the ISA of the
                 machine the kernel is running on.
      
               - The multi-line comments are in a better form.
      
               - There were a handful of headers that could be replaced with
                 the asm-generic versions, and a few unnecessary definitions.
      
               - We no longer use printk, but instead use pr_*.
      
               - A few Kconfig and defconfig entries have been cleaned up.
      
         (v3) A highlight of the changes since the v2 patch set includes:
      
               - We've split out all our drivers into separate patch sets,
                 which I've already sent out to the relevant maintainers. I
                 haven't included those patches in this patch set, but some of
                 them are necessary to build our port.
      
               - The patch set is now split up differently: rather than being
                 split per directory it is split per topic. Hopefully this
                 will make it easier to review the port on the mailing list.
                 The split is a bit rough, so you probably still want to look
                 at the patch set as a whole.
      
               - atomic.h has been completely rewritten and is hopefully now
                 correct. I've attempted to sanitize the various other memory
                 model related code as well, and I think it should all be sane
                 now aside from a handful of FIXMEs commented in the code.
      
               - We've changed the cmpexchg syscall to always exist and to not
                 be multiplexed. There is also a VDSO entry for compare and
                 exchange, which allows kernels with the A extension to
                 execute user code without the A extension reasonably fast.
      
               - Our user-visible register state now contains enough space for
                 the Q extension for 128-bit floating point, as well as a few
                 words to allow extensibility to future ISA extensions like
                 the eventual V extension for vectors.
      
               - A handful of driver cleanups, but these have been split into
                 separate patch sets now so I won't duplicate them here.
      
         (v2) A highlight of the changes since the v1 patch set includes:
      
               - We've split out our drivers into the right places, which
                 means now there's a lot more patches. I'll be submitting
                 these patches to various subsystem maintainers and including
                 them in any future RISC-V patch sets until they've been
                 merged.
      
               - The SBI console driver has been completely rewritten to use
                 the HVC helpers and is now significantly smaller.
      
               - We've begun to use weaker barriers as opposed to just the big
                 "fence". There's still some work to do here, specifically:
                  - We need fences in the relaxed MMIO functions.
                  - The non-relaxed MMIO functions are missing R/W bits on their fences.
                  - Many AMOs need the aq and rl bits set.
      
               - We now have thread_info in task_struct. As a result, sscratch
                 now contains TP instead of SP. This was necessary because
                 thread_info is no longer on the stack.
      
               - A few shared routines have been added that we use instead of
                 creating another arch copy"
      Reviewed-by: NArnd Bergmann <arnd@arndb.de>
      
      * tag 'riscv-for-linus-4.15-arch-v9-premerge' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/linux:
        RISC-V: Build Infrastructure
        RISC-V: User-facing API
        RISC-V: Paging and MMU
        RISC-V: Device, timer, IRQs, and the SBI
        RISC-V: Task implementation
        RISC-V: ELF and module implementation
        RISC-V: Generic library routines and assembly
        RISC-V: Atomic and Locking Code
        RISC-V: Init and Halt Code
        dt-bindings: RISC-V CPU Bindings
        lib: Add shared copies of some GCC library routines
        MAINTAINERS: Add RISC-V
      b293fca4
    • L
      Merge branch 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching · 0ef76878
      Linus Torvalds 提交于
      Pull livepatching updates from Jiri Kosina:
      
       - shadow variables support, allowing livepatches to associate new
         "shadow" fields to existing data structures, from Joe Lawrence
      
       - pre/post patch callbacks API, allowing livepatch writers to register
         callbacks to be called before and after patch application, from Joe
         Lawrence
      
      * 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching:
        livepatch: __klp_disable_patch() should never be called for disabled patches
        livepatch: Correctly call klp_post_unpatch_callback() in error paths
        livepatch: add transition notices
        livepatch: move transition "complete" notice into klp_complete_transition()
        livepatch: add (un)patch callbacks
        livepatch: Small shadow variable documentation fixes
        livepatch: __klp_shadow_get_or_alloc() is local to shadow.c
        livepatch: introduce shadow variable API
      0ef76878
    • L
      Merge branch 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/trivial · 9682b3de
      Linus Torvalds 提交于
      Pull trivial tree updates from Jiri Kosina:
       "The usual rocket-science from trivial tree for 4.15"
      
      * 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/trivial:
        MAINTAINERS: relinquish kconfig
        MAINTAINERS: Update my email address
        treewide: Fix typos in Kconfig
        kfifo: Fix comments
        init/Kconfig: Fix module signing document location
        misc: ibmasm: Return error on error path
        HID: logitech-hidpp: fix mistake in printk, "feeback" -> "feedback"
        MAINTAINERS: Correct path to uDraw PS3 driver
        tracing: Fix doc mistakes in trace sample
        tracing: Kconfig text fixes for CONFIG_HWLAT_TRACER
        MIPS: Alchemy: Remove reverted CONFIG_NETLINK_MMAP from db1xxx_defconfig
        mm/huge_memory.c: fixup grammar in comment
        lib/xz: Add fall-through comments to a switch statement
      9682b3de
    • L
      Merge branch 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 20df1578
      Linus Torvalds 提交于
      Pull HID updates from Jiri Kosina:
      
       - high resolution mode for Dell canvas support, from Benjamin Tissoires
      
       - pen handling fixes for the Wacom driver, from Jason Gerecke
      
       - i2c-hid: Apollo-Lake based laptops improvements, from Hans de Goede
      
       - Input/Core: eraser tool support, from Ping Cheng
      
       - new ALPS touchpad (T4, found currently on HP EliteBook 1000, Zbook
         Stduio and HP Elite book x360) supportm from Masaki Ota
      
       - other smaller assorted fixes
      
      * 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (33 commits)
        HID: cp2112: fix broken gpio_direction_input callback
        HID: cp2112: fix interface specification URL
        HID: Wacom: switch Dell canvas into highres mode
        HID: wacom: generic: Send BTN_STYLUS3 when both barrel switches are set
        HID: sony: Fix SHANWAN pad rumbling on USB
        HID: i2c-hid: Add no-irq-after-reset quirk for 0911:5288 device
        HID: add backlight level quirk for Asus ROG laptops
        HID: cp2112: add HIDRAW dependency
        HID: Add ID 044f:b605 ThrustMaster, Inc. force feedback Racing Wheel
        HID: hid-logitech: remove redundant assignment to pointer value
        HID: wacom: generic: Recognize WACOM_HID_WD_PEN as a type of pen collection
        HID: rmi: Check that a device is a RMI device before calling RMI functions
        HID: add multi-input quirk for GamepadBlock
        HID: alps: add new U1 device ID
        HID: alps: add support for Alps T4 Touchpad device
        HID: alps: remove variables local to u1_init() from the device struct
        HID: alps: properly handle max_fingers and minimum on X and Y axis
        HID: alps: Separate U1 device code
        HID: alps: delete unnecessary struct u1_dev devInfo
        HID: usbhid: Convert timers to use timer_setup()
        ...
      20df1578
  2. 15 11月, 2017 18 次提交
    • J
      Merge branch 'for-4.15/wacom' into for-linus · 01125b2d
      Jiri Kosina 提交于
      - High resolution mode for DEll canvas support, from Benjamin Tissoires
      - A lot of improvements to pen handling in the Wacom driver, from Jason Gerecke
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      01125b2d
    • J
      Merge branch 'for-4.15/use-timer-setup' into for-linus · 4b545304
      Jiri Kosina 提交于
      - usbhid: conversion to timer_setup() and from_timer() from Kees Cook
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      4b545304
    • J
      Merge branch 'for-4.15/upstream' into for-linus · 6ed7a70b
      Jiri Kosina 提交于
      - cp2112: GPIO error handling and Kconfig fixes from Sébastien Szymanski
      - i2c-hid: fixup / quirk for Apollo-Lake based laptops, from Hans de Goede
      - Input/Core: add eraser tool support, from Ping Cheng
      - small assorted code fixes
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      6ed7a70b
    • J
      Merge branch 'for-4.15/sony' into for-linus · b50b9d3d
      Jiri Kosina 提交于
      - SHANWAN PS3 rumble fix from Bastien Nocera
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      b50b9d3d
    • J
      Merge branch 'for-4.15/multitouch' into for-linus · ea3bbd0a
      Jiri Kosina 提交于
      - make sure that we forward MSC_TIMESTAMP in accordance to the specification,
        from Nicolas Boichat
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      ea3bbd0a
    • J
      Merge branch 'for-4.15/logitech' into for-linus · 6101cb7e
      Jiri Kosina 提交于
      - small code fixes for Logitech driver from Colin Ian King
      6101cb7e
    • J
      Merge branch 'for-4.15/hyperv' into for-linus · e1548dcd
      Jiri Kosina 提交于
      - trivial printk() line termination fix for HyperV
      e1548dcd
    • J
      Merge branch 'for-4.15/asus' into for-linus · 47dd6b01
      Jiri Kosina 提交于
      - Asus laptop fixes (fn keys, backlight), from Mustafa Kuscu and
        Maxime Bellengé
      47dd6b01
    • J
      Merge branch 'for-4.15/alps' into for-linus · 5cc619db
      Jiri Kosina 提交于
      - New ALPS touchpad (T4, found currently on HP EliteBook 1000, Zbook Stduio
        and HP Elite book x360) support from Masaki Ota
      5cc619db
    • J
      Merge branch 'for-4.14/upstream-fixes' into for-linus · 83fd5ddc
      Jiri Kosina 提交于
      - Wacom: recognize PEN application collection properly, from Jason Gerecke
      - RMI: avoid cofusion caused by RMI functions being by mistake called on
        non-RMI devices, from Andrew Duggan
      - small device-ID-specific quirks/fixes
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      83fd5ddc
    • J
      Merge branch 'for-4.15/callbacks' into for-linus · fc41efc1
      Jiri Kosina 提交于
      This pulls in an infrastructure/API that allows livepatch writers to
      register pre-patch and post-patch callbacks that allow for running a
      glue code necessary for finalizing the patching if necessary.
      
      Conflicts:
      	kernel/livepatch/core.c
      	- trivial conflict by adding a callback call into
      	  module going notifier vs. moving that code block
      	  to klp_cleanup_module_patches_limited()
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      fc41efc1
    • J
      Merge branch 'for-4.15/shadow-variables' into for-linus · cb65dc7b
      Jiri Kosina 提交于
      Shadow variables allow callers to associate new shadow fields to existing data
      structures.  This is intended to be used by livepatch modules seeking to
      emulate additions to data structure definitions.
      cb65dc7b
    • L
      Merge tag 'devicetree-for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 37cb8e1f
      Linus Torvalds 提交于
      Pull DeviceTree updates from Rob Herring:
       "A bigger diffstat than usual with the kbuild changes and a tree wide
        fix in the binding documentation.
      
        Summary:
      
         - kbuild cleanups and improvements for dtbs
      
         - Code clean-up of overlay code and fixing for some long standing
           memory leak and race condition in applying overlays
      
         - Improvements to DT memory usage making sysfs/kobjects optional and
           skipping unflattening of disabled nodes. This is part of kernel
           tinification efforts.
      
         - Final piece of removing storing the full path for every DT node.
           The prerequisite conversion of printk's to use device_node format
           specifier happened in 4.14.
      
         - Sync with current upstream dtc. This brings additional checks to
           dtb compiling.
      
         - Binding doc tree wide removal of leading 0s from examples
      
         - RTC binding documentation adding missing devices and some
           consolidation of duplicated bindings
      
         - Vendor prefix documentation for nutsboard, Silicon Storage
           Technology, shimafuji, Tecon Microprocessor Technologies, DH
           electronics GmbH, Opal Kelly, and Next Thing"
      
      * tag 'devicetree-for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (55 commits)
        dt-bindings: usb: add #phy-cells to usb-nop-xceiv
        dt-bindings: Remove leading zeros from bindings notation
        kbuild: handle dtb-y and CONFIG_OF_ALL_DTBS natively in Makefile.lib
        MIPS: dts: remove bogus bcm96358nb4ser.dtb from dtb-y entry
        kbuild: clean up *.dtb and *.dtb.S patterns from top-level Makefile
        .gitignore: move *.dtb and *.dtb.S patterns to the top-level .gitignore
        .gitignore: sort normal pattern rules alphabetically
        dt-bindings: add vendor prefix for Next Thing Co.
        scripts/dtc: Update to upstream version v1.4.5-6-gc1e55a5513e9
        of: dynamic: fix memory leak related to properties of __of_node_dup
        of: overlay: make pr_err() string unique
        of: overlay: pr_err from return NOTIFY_OK to overlay apply/remove
        of: overlay: remove unneeded check for NULL kbasename()
        of: overlay: remove a dependency on device node full_name
        of: overlay: simplify applying symbols from an overlay
        of: overlay: avoid race condition between applying multiple overlays
        of: overlay: loosen overly strict phandle clash check
        of: overlay: expand check of whether overlay changeset can be removed
        of: overlay: detect cases where device tree may become corrupt
        of: overlay: minor restructuring
        ...
      37cb8e1f
    • L
      Merge tag 'leds_for_4.15rc1' of... · 6a77d866
      Linus Torvalds 提交于
      Merge tag 'leds_for_4.15rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds
      
      Pull LED updates from Jacek Anaszewski:
       "New LED class driver:
         - add a driver for PC Engines APU/APU2 LEDs
      
        New LED trigger:
         - add a system activity LED trigger
      
        LED core improvements:
         - replace flags bit shift with BIT() macros
      
        Convert timers to use timer_setup() in:
         - led-core
         - ledtrig-activity
         - ledtrig-heartbeat
         - ledtrig-transient
      
        LED class drivers fixes:
         - lp55xx: fix spelling mistake: 'cound' -> 'could'
         - tca6507: Remove unnecessary reg check
         - pca955x: Don't invert requested value in pca955x_gpio_set_value()
      
        LED documentation improvements:
         - update 00-INDEX file"
      
      * tag 'leds_for_4.15rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
        leds: Add driver for PC Engines APU/APU2 LEDs
        leds: lp55xx: fix spelling mistake: 'cound' -> 'could'
        leds: Convert timers to use timer_setup()
        Documentation: leds: Update 00-INDEX file
        leds: tca6507: Remove unnecessary reg check
        leds: ledtrig-heartbeat: Convert timers to use timer_setup()
        leds: Replace flags bit shift with BIT() macros
        leds: pca955x: Don't invert requested value in pca955x_gpio_set_value()
        leds: ledtrig-activity: Add a system activity LED trigger
      6a77d866
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 9f7a9b11
      Linus Torvalds 提交于
      Pull input updates from Dmitry Torokhov:
      
       - three new touchscreen drivers: EETI EXC3000, HiDeep, and Samsung
         S6SY761
      
       - the timer API conversion (setup_timer() -> timer_setup())
      
       - a few drivers swiytched to using managed API for creating custom
         device attributes
      
       - other assorted fixed and cleanups.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (50 commits)
        Input: gamecon - mark expected switch fall-throughs
        Input: sidewinder - mark expected switch fall-throughs
        Input: spaceball - mark expected switch fall-throughs
        Input: uinput - unlock on allocation failure in ioctl
        Input: add support for the Samsung S6SY761 touchscreen
        Input: add support for HiDeep touchscreen
        Input: st1232 - remove obsolete platform device support
        Input: convert autorepeat timer to use timer_setup()
        media: ttpci: remove autorepeat handling and use timer_setup
        Input: cyttsp4 - avoid overflows when calculating memory sizes
        Input: mxs-lradc - remove redundant assignment to pointer input
        Input: add I2C attached EETI EXC3000 multi touch driver
        Input: goodix - support gt1151 touchpanel
        Input: ps2-gpio - actually abort probe when connected to sleeping GPIOs
        Input: hil_mlc - convert to using timer_setup()
        Input: hp_sdc - convert to using timer_setup()
        Input: touchsceen - convert timers to use timer_setup()
        Input: keyboard - convert timers to use timer_setup()
        Input: uinput - fold header into the driver proper
        Input: uinput - remove uinput_allocate_device()
        ...
      9f7a9b11
    • L
      Merge tag 'sound-4.15-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 4e4510fe
      Linus Torvalds 提交于
      Pull sound updates from Takashi Iwai:
       "There are no big surprising changes in this cycle, yet not too boring,
        either. The biggest change from diffstat POV is the removal of the
        legacy OSS driver codes that have been already disabled for a long
        time. This will bring a few trivial merge conflicts.
      
        As new features in ASoC side, there are two things: a new AC97 bus
        implementation and AMD Stony platform support. Both include the
        relevant changes shared with other subsystems, e.g. AC97 MFD changes
        and DRM AMD changes.
      
        Some other highlighted topics are:
      
         - A bunch of USB-audio drivers got the hardening against the
           malicious device accesses with a new helper code for endpoint
           sanity check
      
         - Lots of cleanups for ASoC Intel platform code, including support
           for their open source audio firmware
      
         - Continued ASoC core componentization works
      
         - Support for scaling MCLK with sample rate in ASoC simple-card
      
         - Stabler PCM hot-unplug capability, especially for ASoC usages"
      
      * tag 'sound-4.15-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (302 commits)
        Documentation: sound: hd-audio: notes.rst
        ASoC: bcm2835: Support left/right justified and DSP modes
        ASoC: bcm2835: Enforce full symmetry
        ASoC: bcm2835: Support additional samplerates up to 384kHz
        ASoC: bcm2835: Add support for TDM modes
        ASoC: add mclk-fs support to audio graph card
        ASoC: add mclk-fs to audio graph card binding
        ASoC: rt5514: work around link error
        ASoC: rt5514: mark PM functions as __maybe_unused
        ASoC: rt5663: Check the JD status in the button pushing
        ASoC: amd: Modified DMA transfer Mechanism for Playback
        ASoC: rt5645: Wait for 400msec before concluding on value of RT5645_VENDOR_ID2
        ASoC: sun4i-codec: fixed 32bit audio capture support for H3/H2+
        ASoC: da7213: add support for DSP modes
        ASoC: sun8i-codec: Add a comment on the LRCK inversion
        ASoC: sun8i-codec: Set the BCLK divider
        ASoC: rt5663: Delay and retry reading rt5663 ID register
        ASoC: amd: use do_div rather than 64 bit division to fix 32 bit builds
        ASoC: cs42l56: Fix reset GPIO name in example DT binding
        ASoC: rt5514-spi: check irq status to schedule data copy in resume function
        ...
      4e4510fe
    • L
      Merge branch 'i2c/for-4.15' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 4008e6a9
      Linus Torvalds 提交于
      Pull i2c updates from Wolfram Sang:
       "This contains two bigger than usual tree-wide changes this time. They
        all have proper acks, caused no merge conflicts in linux-next where
        they have been for a while. They are namely:
      
         - to-gpiod conversion of the i2c-gpio driver and its users (touching
           arch/* and drivers/mfd/*)
      
         - adding a sbs-manager based on I2C core updates to SMBus alerts
           (touching drivers/power/*)
      
        Other notable changes:
      
         - i2c_boardinfo can now carry a dev_name to be used when the device
           is created. This is because some devices in ACPI world need fixed
           names to find the regulators.
      
         - the designware driver got a long discussed overhaul of its PM
           handling. img-scb and davinci got PM support, too.
      
         - at24 driver has way better OF support. And it has a new maintainer.
           Thanks Bartosz for stepping up!
      
        The rest is regular driver updates and fixes"
      
      * 'i2c/for-4.15' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (55 commits)
        ARM: sa1100: simpad: Correct I2C GPIO offsets
        i2c: aspeed: Deassert reset in probe
        eeprom: at24: Add OF device ID table
        MAINTAINERS: new maintainer for AT24 driver
        i2c: nuc900: remove platform_data, too
        i2c: thunderx: Remove duplicate NULL check
        i2c: taos-evm: Remove duplicate NULL check
        i2c: Make i2c_unregister_device() NULL-aware
        i2c: xgene-slimpro: Support v2
        i2c: mpc: remove useless variable initialization
        i2c: omap: Trigger bus recovery in lockup case
        i2c: gpio: Add support for named gpios in DT
        dt-bindings: i2c: i2c-gpio: Add support for named gpios
        i2c: gpio: Local vars in probe
        i2c: gpio: Augment all boardfiles to use open drain
        i2c: gpio: Enforce open drain through gpiolib
        gpio: Make it possible for consumers to enforce open drain
        i2c: gpio: Convert to use descriptors
        power: supply: sbs-message: fix some code style issues
        power: supply: sbs-battery: remove unchecked return var
        ...
      4008e6a9
    • L
      Merge tag 'gpio-v4.15-1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 6aa2f944
      Linus Torvalds 提交于
      Pull GPIO updates from Linus Walleij:
       "This is the bulk of GPIO changes for the v4.15 kernel cycle:
      
        Core:
      
         - Fix the semantics of raw GPIO to actually be raw. No inversion
           semantics as before, but also no open draining, and allow the raw
           operations to affect lines used for interrupts as the caller
           supposedly knows what they are doing if they are getting the big
           hammer.
      
         - Rewrote the __inner_function() notation calls to names that make
           more sense. I just find this kind of code disturbing.
      
         - Drop the .irq_base() field from the gpiochip since now all IRQs are
           mapped dynamically. This is nice.
      
         - Support for .get_multiple() in the core driver API. This allows us
           to read several GPIO lines with a single register read. This has
           high value for some usecases: it can be used to create
           oscilloscopes and signal analyzers and other things that rely on
           reading several lines at exactly the same instant. Also a generally
           nice optimization. This uses the new assign_bit() macro from the
           bitops lib that was ACKed by Andrew Morton and is implemented for
           two drivers, one of them being the generic MMIO driver so everyone
           using that will be able to benefit from this.
      
         - Do not allow requests of Open Drain and Open Source setting of a
           GPIO line simultaneously. If the hardware actually supports
           enabling both at the same time the electrical result would be
           disastrous.
      
         - A new interrupt chip core helper. This will be helpful to deal with
           "banked" GPIOs, which means GPIO controllers with several logical
           blocks of GPIO inside them. This is several gpiochips per device in
           the device model, in contrast to the case when there is a 1-to-1
           relationship between a device and a gpiochip.
      
        New drivers:
      
         - Maxim MAX3191x industrial serializer, a very interesting piece of
           professional I/O hardware.
      
         - Uniphier GPIO driver. This is the GPIO block from the recent
           Socionext (ex Fujitsu and Panasonic) platform.
      
         - Tegra 186 driver. This is based on the new banked GPIO
           infrastructure.
      
        Other improvements:
      
         - Some documentation improvements.
      
         - Wakeup support for the DesignWare DWAPB GPIO controller.
      
         - Reset line support on the DesignWare DWAPB GPIO controller.
      
         - Several non-critical bug fixes and improvements for the Broadcom
           BRCMSTB driver.
      
         - Misc non-critical bug fixes like exotic errorpaths, removal of dead
           code etc.
      
         - Explicit comments on fall-through switch() statements"
      
      * tag 'gpio-v4.15-1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (65 commits)
        gpio: tegra186: Remove tegra186_gpio_lock_class
        gpio: rcar: Add r8a77995 (R-Car D3) support
        pinctrl: bcm2835: Fix some merge fallout
        gpio: Fix undefined lock_dep_class
        gpio: Automatically add lockdep keys
        gpio: Introduce struct gpio_irq_chip.first
        gpio: Disambiguate struct gpio_irq_chip.nested
        gpio: Add Tegra186 support
        gpio: Export gpiochip_irq_{map,unmap}()
        gpio: Implement tighter IRQ chip integration
        gpio: Move lock_key into struct gpio_irq_chip
        gpio: Move irq_valid_mask into struct gpio_irq_chip
        gpio: Move irq_nested into struct gpio_irq_chip
        gpio: Move irq_chained_parent to struct gpio_irq_chip
        gpio: Move irq_default_type to struct gpio_irq_chip
        gpio: Move irq_handler to struct gpio_irq_chip
        gpio: Move irqdomain into struct gpio_irq_chip
        gpio: Move irqchip into struct gpio_irq_chip
        gpio: Introduce struct gpio_irq_chip
        pinctrl: armada-37xx: remove unused variable
        ...
      6aa2f944