1. 03 Mar, 2016 12 commits
    • Tejun Heo's avatar
      cgroup: introduce cgroup_{save|propagate|restore}_control() · 15a27c36
      Tejun Heo authored
      While controllers are being enabled and disabled in
      cgroup_subtree_control_write(), the original subsystem masks are
      stashed in local variables so that they can be restored if the
      operation fails in the middle.
      
      This patch adds dedicated fields to struct cgroup to be used instead
      of the local variables and implements functions to stash the current
      values, propagate the changes and restore them recursively.  Combined
      with the previous changes, this makes subsystem management operations
      fully recursive and modularlized.  This will be used to expand cgroup
      core functionalities.
      
      While at it, remove now unused @css_enable and @css_disable from
      cgroup_subtree_control_write().
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarZefan Li <lizefan@huawei.com>
      15a27c36
    • Tejun Heo's avatar
      cgroup: make cgroup_drain_offline() and cgroup_apply_control_{disable|enable}() recursive · ce3f1d9d
      Tejun Heo authored
      The three factored out css management operations -
      cgroup_drain_offline() and cgroup_apply_control_{disable|enable}() -
      only depend on the current state of the target cgroups and idempotent
      and thus can be easily made to operate on the subtree instead of the
      immediate children.
      
      This patch introduces the iterators which walk live subtree and
      converts the three functions to operate on the subtree including self
      instead of the children.  While this leads to spurious walking and be
      slightly more expensive, it will allow them to be used for wider scope
      of operations.
      
      Note that cgroup_drain_offline() now tests for whether a css is dying
      before trying to drain it.  This is to avoid trying to drain live
      csses as there can be mix of live and dying csses in a subtree unlike
      children of the same parent.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarZefan Li <lizefan@huawei.com>
      ce3f1d9d
    • Tejun Heo's avatar
      cgroup: factor out cgroup_apply_control_enable() from cgroup_subtree_control_write() · bdb53bd7
      Tejun Heo authored
      Factor out css enabling and showing into cgroup_apply_control_enable().
      
      * Nest subsystem walk inside child walk.  The child walk will later be
        converted to subtree walk which is a bit more expensive.
      
      * Instead of operating on the differential masks @css_enable, simply
        enable or show csses according to the current cgroup_control() and
        cgroup_ss_mask().  This leads to the same result and is simpler and
        more robust.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarZefan Li <lizefan@huawei.com>
      bdb53bd7
    • Tejun Heo's avatar
      cgroup: factor out cgroup_apply_control_disable() from cgroup_subtree_control_write() · 12b3bb6a
      Tejun Heo authored
      Factor out css disabling and hiding into cgroup_apply_control_disable().
      
      * Nest subsystem walk inside child walk.  The child walk will later be
        converted to subtree walk which is a bit more expensive.
      
      * Instead of operating on the differential masks @css_enable and
        @css_disable, simply disable or hide csses according to the current
        cgroup_control() and cgroup_ss_mask().  This leads to the same
        result and is simpler and more robust.
      
      * This allows error handling path to share the same code.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarZefan Li <lizefan@huawei.com>
      12b3bb6a
    • Tejun Heo's avatar
      cgroup: factor out cgroup_drain_offline() from cgroup_subtree_control_write() · 1b9b96a1
      Tejun Heo authored
      Factor out async css offline draining into cgroup_drain_offline().
      
      * Nest subsystem walk inside child walk.  The child walk will later be
        converted to subtree walk which is a bit more expensive.
      
      * Relocate the draining above subsystem mask preparation, which
        doesn't create any behavior differences but helps further
        refactoring.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarZefan Li <lizefan@huawei.com>
      1b9b96a1
    • Tejun Heo's avatar
      cgroup: introduce cgroup_control() and cgroup_ss_mask() · 5531dc91
      Tejun Heo authored
      When a controller is enabled and visible on a non-root cgroup is
      determined by subtree_control and subtree_ss_mask of the parent
      cgroup.  For a root cgroup, by the type of the hierarchy and which
      controllers are attached to it.  Deciding the above on each usage is
      fragile and unnecessarily complicates the users.
      
      This patch introduces cgroup_control() and cgroup_ss_mask() which
      calculate and return the [visibly] enabled subsyste mask for the
      specified cgroup and conver the existing usages.
      
      * cgroup_e_css() is restructured for simplicity.
      
      * cgroup_calc_subtree_ss_mask() and cgroup_subtree_control_write() no
        longer need to distinguish root and non-root cases.
      
      * With cgroup_control(), cgroup_controllers_show() can now handle both
        root and non-root cases.  cgroup_root_controllers_show() is removed.
      
      v2: cgroup_control() updated to yield the correct result on v1
          hierarchies too.  cgroup_subtree_control_write() converted.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarZefan Li <lizefan@huawei.com>
      5531dc91
    • Tejun Heo's avatar
      cgroup: factor out cgroup_create() out of cgroup_mkdir() · a5bca215
      Tejun Heo authored
      We're in the process of refactoring cgroup and css management paths to
      separate them out to eventually allow cgroups which aren't visible
      through cgroup fs.  This patch factors out cgroup_create() out of
      cgroup_mkdir().  cgroup_create() contains all internal object creation
      and initialization.  cgroup_mkdir() uses cgroup_create() to create the
      internal cgroup and adds interface directory and file creation.
      
      This patch doesn't cause any behavior differences.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarZefan Li <lizefan@huawei.com>
      a5bca215
    • Tejun Heo's avatar
      cgroup: reorder operations in cgroup_mkdir() · 195e9b6c
      Tejun Heo authored
      Currently, operations to initialize internal objects and create
      interface directory and files are intermixed in cgroup_mkdir().  We're
      in the process of refactoring cgroup and css management paths to
      separate them out to eventually allow cgroups which aren't visible
      through cgroup fs.
      
      This patch reorders operations inside cgroup_mkdir() so that interface
      directory and file handling comes after internal object
      initialization.  This will enable further refactoring.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarZefan Li <lizefan@huawei.com>
      195e9b6c
    • Tejun Heo's avatar
      cgroup: explicitly track whether a cgroup_subsys_state is visible to userland · 88cb04b9
      Tejun Heo authored
      Currently, whether a css (cgroup_subsys_state) has its interface files
      created is not tracked and assumed to change together with the owning
      cgroup's lifecycle.  cgroup directory and interface creation is being
      separated out from internal object creation to help refactoring and
      eventually allow cgroups which are not visible through cgroupfs.
      
      This patch adds CSS_VISIBLE to track whether a css has its interface
      files created and perform management operations only when necessary
      which helps decoupling interface file handling from internal object
      lifecycle.  After this patch, all css interface file management
      functions can be called regardless of the current state and will
      achieve the expected result.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarZefan Li <lizefan@huawei.com>
      88cb04b9
    • Tejun Heo's avatar
      cgroup: separate out interface file creation from css creation · 6cd0f5bb
      Tejun Heo authored
      Currently, interface files are created when a css is created depending
      on whether @visible is set.  This patch separates out the two into
      separate steps to help code refactoring and eventually allow cgroups
      which aren't visible through cgroup fs.
      
      Move css_populate_dir() out of create_css() and drop @visible.  While
      at it, rename the function to css_create() for consistency.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarZefan Li <lizefan@huawei.com>
      6cd0f5bb
    • Tejun Heo's avatar
      cgroup: suppress spurious de-populated events · 20b454a6
      Tejun Heo authored
      During task migration, tasks may transfer between two css_sets which
      are associated with the same cgroup.  If those tasks are the only
      tasks in the cgroup, this currently triggers a spurious de-populated
      event on the cgroup.
      
      Fix it by bumping up populated count before bumping it down during
      migration to ensure that it doesn't reach zero spuriously.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarZefan Li <lizefan@huawei.com>
      20b454a6
    • Tejun Heo's avatar
      cgroup: re-hash init_css_set after subsystems are initialized · 2378d8b8
      Tejun Heo authored
      css_sets are hashed by their subsys[] contents and in cgroup_init()
      init_css_set is hashed early, before subsystem inits, when all entries
      in its subsys[] are NULL, so that cgroup_dfl_root initialization can
      find and link to it.  As subsystems are initialized,
      init_css_set.subsys[] is filled up but the hashing is never updated
      making init_css_set hashed in the wrong place.  While incorrect, this
      doesn't cause a critical failure as css_set management code would
      create an identical css_set dynamically.
      
      Fix it by rehashing init_css_set after subsystems are initialized.
      While at it, drop unnecessary @key local variable.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarZefan Li <lizefan@huawei.com>
      2378d8b8
  2. 01 Mar, 2016 1 commit
    • Vladimir Davydov's avatar
      cgroup: reset css on destruction · fa06235b
      Vladimir Davydov authored
      An associated css can be around for quite a while after a cgroup
      directory has been removed. In general, it makes sense to reset it to
      defaults so as not to worry about any remnants. For instance, memory
      cgroup needs to reset memory.low, otherwise pages charged to a dead
      cgroup might never get reclaimed. There's ->css_reset callback, which
      would fit perfectly for the purpose. Currently, it's only called when a
      subsystem is disabled in the unified hierarchy and there are other
      subsystems dependant on it. Let's call it on css destruction as well.
      Suggested-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Signed-off-by: default avatarVladimir Davydov <vdavydov@virtuozzo.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      fa06235b
  3. 27 Feb, 2016 1 commit
  4. 23 Feb, 2016 10 commits
  5. 16 Feb, 2016 1 commit
  6. 12 Feb, 2016 1 commit
    • Johannes Weiner's avatar
      cgroup: provide cgroup_nov1= to disable controllers in v1 mounts · 223ffb29
      Johannes Weiner authored
      Testing cgroup2 can be painful with system software automatically
      mounting and populating all cgroup controllers in v1 mode. Sometimes
      they can be unmounted from rc.local, sometimes even that is too late.
      
      Provide a commandline option to disable certain controllers in v1
      mounts, so that they remain available for cgroup2 mounts.
      
      Example use:
      
      cgroup_no_v1=memory,cpu
      cgroup_no_v1=all
      
      Disabling will be confirmed at boot-time as such:
      
      [    0.013770] Disabling cpu control group subsystem in v1 mounts
      [    0.016004] Disabling memory control group subsystem in v1 mounts
      Signed-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      223ffb29
  7. 31 Jan, 2016 1 commit
  8. 29 Jan, 2016 1 commit
  9. 22 Jan, 2016 6 commits
    • Tejun Heo's avatar
      cgroup: make sure a parent css isn't freed before its children · 8bb5ef79
      Tejun Heo authored
      There are three subsystem callbacks in css shutdown path -
      css_offline(), css_released() and css_free().  Except for
      css_released(), cgroup core didn't guarantee the order of invocation.
      css_offline() or css_free() could be called on a parent css before its
      children.  This behavior is unexpected and led to bugs in cpu and
      memory controller.
      
      The previous patch updated ordering for css_offline() which fixes the
      cpu controller issue.  While there currently isn't a known bug caused
      by misordering of css_free() invocations, let's fix it too for
      consistency.
      
      css_free() ordering can be trivially fixed by moving putting of the
      parent css below css_free() invocation.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      8bb5ef79
    • Tejun Heo's avatar
      cgroup: make sure a parent css isn't offlined before its children · aa226ff4
      Tejun Heo authored
      There are three subsystem callbacks in css shutdown path -
      css_offline(), css_released() and css_free().  Except for
      css_released(), cgroup core didn't guarantee the order of invocation.
      css_offline() or css_free() could be called on a parent css before its
      children.  This behavior is unexpected and led to bugs in cpu and
      memory controller.
      
      This patch updates offline path so that a parent css is never offlined
      before its children.  Each css keeps online_cnt which reaches zero iff
      itself and all its children are offline and offline_css() is invoked
      only after online_cnt reaches zero.
      
      This fixes the memory controller bug and allows the fix for cpu
      controller.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-and-tested-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      Reported-by: default avatarBrian Christiansen <brian.o.christiansen@gmail.com>
      Link: http://lkml.kernel.org/g/5698A023.9070703@de.ibm.com
      Link: http://lkml.kernel.org/g/CAKB58ikDkzc8REt31WBkD99+hxNzjK4+FBmhkgS+NVrC9vjMSg@mail.gmail.com
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: stable@vger.kernel.org
      aa226ff4
    • Tejun Heo's avatar
      cpuset: make mm migration asynchronous · e93ad19d
      Tejun Heo authored
      If "cpuset.memory_migrate" is set, when a process is moved from one
      cpuset to another with a different memory node mask, pages in used by
      the process are migrated to the new set of nodes.  This was performed
      synchronously in the ->attach() callback, which is synchronized
      against process management.  Recently, the synchronization was changed
      from per-process rwsem to global percpu rwsem for simplicity and
      optimization.
      
      Combined with the synchronous mm migration, this led to deadlocks
      because mm migration could schedule a work item which may in turn try
      to create a new worker blocking on the process management lock held
      from cgroup process migration path.
      
      This heavy an operation shouldn't be performed synchronously from that
      deep inside cgroup migration in the first place.  This patch punts the
      actual migration to an ordered workqueue and updates cgroup process
      migration and cpuset config update paths to flush the workqueue after
      all locks are released.  This way, the operations still seem
      synchronous to userland without entangling mm migration with process
      management synchronization.  CPU hotplug can also invoke mm migration
      but there's no reason for it to wait for mm migrations and thus
      doesn't synchronize against their completions.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-and-tested-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      Cc: stable@vger.kernel.org # v4.4+
      e93ad19d
    • Linus Torvalds's avatar
      Merge branch 'for-4.5/nvme' of git://git.kernel.dk/linux-block · 3e1e21c7
      Linus Torvalds authored
      Pull NVMe updates from Jens Axboe:
       "Last branch for this series is the nvme changes.  It's in a separate
        branch to avoid splitting too much between core and NVMe changes,
        since NVMe is still helping drive some blk-mq changes.  That said, not
        a huge amount of core changes in here.  The grunt of the work is the
        continued split of the code"
      
      * 'for-4.5/nvme' of git://git.kernel.dk/linux-block: (67 commits)
        uapi: update install list after nvme.h rename
        NVMe: Export NVMe attributes to sysfs group
        NVMe: Shutdown controller only for power-off
        NVMe: IO queue deletion re-write
        NVMe: Remove queue freezing on resets
        NVMe: Use a retryable error code on reset
        NVMe: Fix admin queue ring wrap
        nvme: make SG_IO support optional
        nvme: fixes for NVME_IOCTL_IO_CMD on the char device
        nvme: synchronize access to ctrl->namespaces
        nvme: Move nvme_freeze/unfreeze_queues to nvme core
        PCI/AER: include header file
        NVMe: Export namespace attributes to sysfs
        NVMe: Add pci error handlers
        block: remove REQ_NO_TIMEOUT flag
        nvme: merge iod and cmd_info
        nvme: meta_sg doesn't have to be an array
        nvme: properly free resources for cancelled command
        nvme: simplify completion handling
        nvme: special case AEN requests
        ...
      3e1e21c7
    • Linus Torvalds's avatar
      Merge branch 'for-4.5/lightnvm' of git://git.kernel.dk/linux-block · 0a13daed
      Linus Torvalds authored
      Pull lightnvm fixes and updates from Jens Axboe:
       "This should have been part of the drivers branch, but it arrived a bit
        late and wasn't based on the official core block driver branch.  So
        they got a small scolding, but got a pass since it's still new.  Hence
        it's in a separate branch.
      
        This is mostly pure fixes, contained to lightnvm/, and minor feature
        additions"
      
      * 'for-4.5/lightnvm' of git://git.kernel.dk/linux-block: (26 commits)
        lightnvm: ensure that nvm_dev_ops can be used without CONFIG_NVM
        lightnvm: introduce factory reset
        lightnvm: use system block for mm initialization
        lightnvm: introduce ioctl to initialize device
        lightnvm: core on-disk initialization
        lightnvm: introduce mlc lower page table mappings
        lightnvm: add mccap support
        lightnvm: manage open and closed blocks separately
        lightnvm: fix missing grown bad block type
        lightnvm: reference rrpc lun in rrpc block
        lightnvm: introduce nvm_submit_ppa
        lightnvm: move rq->error to nvm_rq->error
        lightnvm: support multiple ppas in nvm_erase_ppa
        lightnvm: move the pages per block check out of the loop
        lightnvm: sectors first in ppa list
        lightnvm: fix locking and mempool in rrpc_lun_gc
        lightnvm: put block back to gc list on its reclaim fail
        lightnvm: check bi_error in gc
        lightnvm: return the get_bb_tbl return value
        lightnvm: refactor end_io functions for sync
        ...
      0a13daed
    • Linus Torvalds's avatar
      Merge branch 'for-4.5/drivers' of git://git.kernel.dk/linux-block · 64120354
      Linus Torvalds authored
      Pull block driver updates from Jens Axboe:
       "This is the block driver pull request for 4.5, with the exception of
        NVMe, which is in a separate branch and will be posted after this one.
      
        This pull request contains:
      
         - A set of bcache stability fixes, which have been acked by Kent.
           These have been used and tested for more than a year by the
           community, so it's about time that they got in.
      
         - A set of drbd updates from the drbd team (Andreas, Lars, Philipp)
           and Markus Elfring, Oleg Drokin.
      
         - A set of fixes for xen blkback/front from the usual suspects, (Bob,
           Konrad) as well as community based fixes from Kiri, Julien, and
           Peng.
      
         - A 2038 time fix for sx8 from Shraddha, with a fix from me.
      
         - A small mtip32xx cleanup from Zhu Yanjun.
      
         - A null_blk division fix from Arnd"
      
      * 'for-4.5/drivers' of git://git.kernel.dk/linux-block: (71 commits)
        null_blk: use sector_div instead of do_div
        mtip32xx: restrict variables visible in current code module
        xen/blkfront: Fix crash if backend doesn't follow the right states.
        xen/blkback: Fix two memory leaks.
        xen/blkback: make st_ statistics per ring
        xen/blkfront: Handle non-indirect grant with 64KB pages
        xen-blkfront: Introduce blkif_ring_get_request
        xen-blkback: clear PF_NOFREEZE for xen_blkif_schedule()
        xen/blkback: Free resources if connect_ring failed.
        xen/blocks: Return -EXX instead of -1
        xen/blkback: make pool of persistent grants and free pages per-queue
        xen/blkback: get the number of hardware queues/rings from blkfront
        xen/blkback: pseudo support for multi hardware queues/rings
        xen/blkback: separate ring information out of struct xen_blkif
        xen/blkfront: correct setting for xen_blkif_max_ring_order
        xen/blkfront: make persistent grants pool per-queue
        xen/blkfront: Remove duplicate setting of ->xbdev.
        xen/blkfront: Cleanup of comments, fix unaligned variables, and syntax errors.
        xen/blkfront: negotiate number of queues/rings to be used with backend
        xen/blkfront: split per device io_lock
        ...
      64120354
  10. 21 Jan, 2016 6 commits
    • Linus Torvalds's avatar
      Merge branch 'uaccess' (batched user access infrastructure) · 404a4741
      Linus Torvalds authored
      Expose an interface to allow users to mark several accesses together as
      being user space accesses, allowing batching of the surrounding user
      space access markers (SMAP on x86, PAN on arm64, domain register
      switching on arm).
      
      This is currently only used for the user string lenth and copying
      functions, where the SMAP overhead on x86 drowned the actual user
      accesses (only noticeable on newer microarchitectures that support SMAP
      in the first place, of course).
      
      * user access batching branch:
        Use the new batched user accesses in generic user string handling
        Add 'unsafe' user access functions for batched accesses
        x86: reorganize SMAP handling in user space accesses
      404a4741
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · eae21770
      Linus Torvalds authored
      Merge third patch-bomb from Andrew Morton:
       "I'm pretty much done for -rc1 now:
      
         - the rest of MM, basically
      
         - lib/ updates
      
         - checkpatch, epoll, hfs, fatfs, ptrace, coredump, exit
      
         - cpu_mask simplifications
      
         - kexec, rapidio, MAINTAINERS etc, etc.
      
         - more dma-mapping cleanups/simplifications from hch"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (109 commits)
        MAINTAINERS: add/fix git URLs for various subsystems
        mm: memcontrol: add "sock" to cgroup2 memory.stat
        mm: memcontrol: basic memory statistics in cgroup2 memory controller
        mm: memcontrol: do not uncharge old page in page cache replacement
        Documentation: cgroup: add memory.swap.{current,max} description
        mm: free swap cache aggressively if memcg swap is full
        mm: vmscan: do not scan anon pages if memcg swap limit is hit
        swap.h: move memcg related stuff to the end of the file
        mm: memcontrol: replace mem_cgroup_lruvec_online with mem_cgroup_online
        mm: vmscan: pass memcg to get_scan_count()
        mm: memcontrol: charge swap to cgroup2
        mm: memcontrol: clean up alloc, online, offline, free functions
        mm: memcontrol: flatten struct cg_proto
        mm: memcontrol: rein in the CONFIG space madness
        net: drop tcp_memcontrol.c
        mm: memcontrol: introduce CONFIG_MEMCG_LEGACY_KMEM
        mm: memcontrol: allow to disable kmem accounting for cgroup2
        mm: memcontrol: account "kmem" consumers in cgroup2 memory controller
        mm: memcontrol: move kmem accounting code to CONFIG_MEMCG
        mm: memcontrol: separate kmem code from legacy tcp accounting code
        ...
      eae21770
    • Linus Torvalds's avatar
      Merge branch 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs · e9f57ebc
      Linus Torvalds authored
      Pull overlayfs updates from Miklos Szeredi:
       "This contains several bug fixes and a new mount option
        'default_permissions' that allows read-only exported NFS
        filesystems to be used as lower layer"
      
      * 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
        ovl: check dentry positiveness in ovl_cleanup_whiteouts()
        ovl: setattr: check permissions before copy-up
        ovl: root: copy attr
        ovl: move super block magic number to magic.h
        ovl: use a minimal buffer in ovl_copy_xattr
        ovl: allow zero size xattr
        ovl: default permissions
      e9f57ebc
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · 5c89e9ea
      Linus Torvalds authored
      Pull fuse updates from Miklos Szeredi:
       "This adds SEEK_HOLE and SEEK_DATA support in lseek"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        fuse: add support for SEEK_HOLE and SEEK_DATA in lseek
      5c89e9ea
    • Linus Torvalds's avatar
      Merge tag 'pci-v4.5-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · d4342156
      Linus Torvalds authored
      Pull PCI updates from Bjorn Helgaas:
       "PCI changes for the v4.5 merge window:
      
        Enumeration:
         - Simplify config space size computation (Bjorn Helgaas)
         - Avoid iterating through ROM outside the resource window (Edward O'Callaghan)
         - Support PCIe devices with short cfg_size (Jason S. McMullan)
         - Add Netronome vendor and device IDs (Jason S. McMullan)
         - Limit config space size for Netronome NFP6000 family (Jason S. McMullan)
         - Add Netronome NFP4000 PF device ID (Simon Horman)
         - Limit config space size for Netronome NFP4000 (Simon Horman)
         - Print warnings for all invalid expansion ROM headers (Vladis Dronov)
      
        Resource management:
         - Fix minimum allocation address overwrite (Christoph Biedl)
      
        PCI device hotplug:
         - acpiphp_ibm: Fix null dereferences on null ibm_slot (Colin Ian King)
         - pciehp: Always protect pciehp_disable_slot() with hotplug mutex (Guenter Roeck)
         - shpchp: Constify hpc_ops structure (Julia Lawall)
         - ibmphp: Remove unneeded NULL test (Julia Lawall)
      
        Power management:
         - Make ASPM sysfs link_state_store() consistent with link_state_show() (Andy Lutomirski)
      
        Virtualization
         - Add function 1 DMA alias quirk for Lite-On/Plextor M6e/Marvell 88SS9183 (Tim Sander)
      
        MSI:
         - Remove empty pci_msi_init_pci_dev() (Bjorn Helgaas)
         - Mark PCIe/PCI (MSI) IRQ cascade handlers as IRQF_NO_THREAD (Grygorii Strashko)
         - Initialize MSI capability for all architectures (Guilherme G. Piccoli)
         - Relax msi_domain_alloc() to support parentless MSI irqdomains (Liu Jiang)
      
        ARM Versatile host bridge driver:
         - Remove unused pci_sys_data structures (Lorenzo Pieralisi)
      
        Broadcom iProc host bridge driver:
         - Hide CONFIG_PCIE_IPROC (Arnd Bergmann)
         - Do not use 0x in front of %pap (Dmitry V. Krivenok)
         - Update iProc PCIe device tree binding (Ray Jui)
         - Add PAXC interface support (Ray Jui)
         - Add iProc PCIe MSI device tree binding (Ray Jui)
         - Add iProc PCIe MSI support (Ray Jui)
      
        Freescale i.MX6 host bridge driver:
         - Use gpio_set_value_cansleep() (Fabio Estevam)
         - Add support for active-low reset GPIO (Petr Štetiar)
      
        HiSilicon host bridge driver:
         - Add support for HiSilicon Hip06 PCIe host controllers (Gabriele Paoloni)
      
        Intel VMD host bridge driver:
         - Export irq_domain_set_info() for module use (Keith Busch)
         - x86/PCI: Allow DMA ops specific to a PCI domain (Keith Busch)
         - Use 32 bit PCI domain numbers (Keith Busch)
         - Add driver for Intel Volume Management Device (VMD) (Keith Busch)
      
        Qualcomm host bridge driver:
         - Document PCIe devicetree bindings (Stanimir Varbanov)
         - Add Qualcomm PCIe controller driver (Stanimir Varbanov)
         - dts: apq8064: add PCIe devicetree node (Stanimir Varbanov)
         - dts: ifc6410: enable PCIe DT node for this board (Stanimir Varbanov)
      
        Renesas R-Car host bridge driver:
         - Add support for R-Car H3 to pcie-rcar (Harunobu Kurokawa)
         - Allow DT to override default window settings (Phil Edworthy)
         - Convert to DT resource parsing API (Phil Edworthy)
         - Revert "PCI: rcar: Build pcie-rcar.c only on ARM" (Phil Edworthy)
         - Remove unused pci_sys_data struct from pcie-rcar (Phil Edworthy)
         - Add runtime PM support to pcie-rcar (Phil Edworthy)
         - Add Gen2 PHY setup to pcie-rcar (Phil Edworthy)
         - Add gen2 fallback compatibility string for pci-rcar-gen2 (Simon Horman)
         - Add gen2 fallback compatibility string for pcie-rcar (Simon Horman)
      
        Synopsys DesignWare host bridge driver:
         - Simplify control flow (Bjorn Helgaas)
         - Make config accessor override checking symmetric (Bjorn Helgaas)
         - Ensure ATU is enabled before IO/conf space accesses (Stanimir Varbanov)
      
        Miscellaneous:
         - Add of_pci_get_host_bridge_resources() stub (Arnd Bergmann)
         - Check for PCI_HEADER_TYPE_BRIDGE equality, not bitmask (Bjorn Helgaas)
         - Fix all whitespace issues (Bogicevic Sasa)
         - x86/PCI: Simplify pci_bios_{read,write} (Geliang Tang)
         - Use to_pci_dev() instead of open-coding it (Geliang Tang)
         - Use kobj_to_dev() instead of open-coding it (Geliang Tang)
         - Use list_for_each_entry() to simplify code (Geliang Tang)
         - Fix typos in <linux/msi.h> (Thomas Petazzoni)
         - x86/PCI: Clarify AMD Fam10h config access restrictions comment (Tomasz Nowicki)"
      
      * tag 'pci-v4.5-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (58 commits)
        PCI: Add function 1 DMA alias quirk for Lite-On/Plextor M6e/Marvell 88SS9183
        PCI: Limit config space size for Netronome NFP4000
        PCI: Add Netronome NFP4000 PF device ID
        x86/PCI: Add driver for Intel Volume Management Device (VMD)
        PCI/AER: Use 32 bit PCI domain numbers
        x86/PCI: Allow DMA ops specific to a PCI domain
        irqdomain: Export irq_domain_set_info() for module use
        PCI: host: Add of_pci_get_host_bridge_resources() stub
        genirq/MSI: Relax msi_domain_alloc() to support parentless MSI irqdomains
        PCI: rcar: Add Gen2 PHY setup to pcie-rcar
        PCI: rcar: Add runtime PM support to pcie-rcar
        PCI: designware: Make config accessor override checking symmetric
        PCI: ibmphp: Remove unneeded NULL test
        ARM: dts: ifc6410: enable PCIe DT node for this board
        ARM: dts: apq8064: add PCIe devicetree node
        PCI: hotplug: Use list_for_each_entry() to simplify code
        PCI: rcar: Remove unused pci_sys_data struct from pcie-rcar
        PCI: hisi: Add support for HiSilicon Hip06 PCIe host controllers
        PCI: Avoid iterating through memory outside the resource window
        PCI: acpiphp_ibm: Fix null dereferences on null ibm_slot
        ...
      d4342156
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-4.5-rc1' of... · 859e7625
      Linus Torvalds authored
      Merge tag 'pwm/for-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "This set of changes contains a new driver for OMAP (using the
        dual-mode timers) as well as an assortment of fixes all across the
        board"
      
      * tag 'pwm/for-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
        pwm: Mark all devices as "might sleep"
        pwm: omap-dmtimer: Potential NULL dereference on error
        pwm: add HAS_IOMEM dependency to PWM_FSL_FTM
        pwm: Add PWM driver for OMAP using dual-mode timers
        pwm: rcar: Improve accuracy of frequency division setting
        pwm: lpc32xx: return ERANGE, if requested period is not supported
        pwm: lpc32xx: fix and simplify duty cycle and period calculations
        pwm: lpc32xx: make device usable with common clock framework
        pwm: lpc32xx: correct number of PWM channels from 2 to 1
        dt: lpc32xx: pwm: update documentation of LPC32xx PWM device
        dt: lpc32xx: pwm: correct LPC32xx PWM device node example
        pwm: fsl-ftm: Fix clock enable/disable when using PM
        pwm: lpss: Rework the sequence of programming PWM_SW_UPDATE
        pwm: lpss: Select core part automatically
        pwm: lpss: Update PWM setting for Broxton
        pwm: bcm2835: Fix email address specification
        pwm: bcm2835: Prevent division by zero
        pwm: bcm2835: Calculate scaler in ->config()
        pwm: lpss: Remove ->free() callback
      859e7625