1. 18 Jun, 2015 3 commits
    • Tejun Heo's avatar
      cgroup: require write perm on common ancestor when moving processes on the default hierarchy · 187fe840
      Tejun Heo authored
      On traditional hierarchies, if a task has write access to "tasks" or
      "cgroup.procs" file of a cgroup and its euid agrees with the target,
      it can move the target to the cgroup; however, consider the following
      scenario.  The owner of each cgroup is in the parentheses.
      
       R (root) - 0 (root) - 00 (user1) - 000 (user1)
                |                       \ 001 (user1)
                \ 1 (root) - 10 (user1)
      
      The subtrees of 00 and 10 are delegated to user1; however, while both
      subtrees may belong to the same user, it is clear that the two
      subtrees are to be isolated - they're under completely separate
      resource limits imposed by 0 and 1, respectively.  Note that 0 and 1
      aren't strictly necessary but added to ease illustrating the issue.
      
      If user1 is allowed to move processes between the two subtrees, the
      intention of the hierarchy - keeping a given group of processes under
      a subtree with certain resource restrictions while delegating
      management of the subtree - can be circumvented by user1.
      
      This happens because migration permission check doesn't consider the
      hierarchical nature of cgroups.  To fix the issue, this patch adds an
      extra permission requirement when userland tries to migrate a process
      in the default hierarchy - the issuing task must have write access to
      the common ancestor of "cgroup.procs" file of the ancestor in addition
      to the destination's.
      
      Conceptually, the issuer must be able to move the target process from
      the source cgroup to the common ancestor of source and destination
      cgroups and then to the destination.  As long as delegation is done in
      a proper top-down way, this guarantees that a delegatee can't smuggle
      processes across disjoint delegation domains.
      
      The next patch will add documentation on the delegation model on the
      default hierarchy.
      
      v2: Fixed missing !ret test.  Spotted by Li Zefan.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Cc: Li Zefan <lizefan@huawei.com>
      187fe840
    • Tejun Heo's avatar
      cgroup: separate out cgroup_procs_write_permission() from __cgroup_procs_write() · dedf22e9
      Tejun Heo authored
      Separate out task / process migration permission check from
      __cgroup_procs_write() into cgroup_procs_write_permission().
      
      * Permission check is moved right above the actual migration and no
        longer performed while holding rcu_read_lock().
        cgroup_procs_write_permission() uses get_task_cred() / put_cred()
        instead of __task_cred().  Also, !root trying to migrate kthreadd or
        PF_NO_SETAFFINITY tasks will now fail with -EINVAL rather than
        -EACCES which should be fine.
      
      * The same permission check is now performed even when moving self by
        specifying 0 as pid.  This always succeeds so there's no functional
        difference.  We'll add more permission checks later and the benefits
        of keeping both cases consistent outweigh the minute overhead of
        doing perm checks on pid 0 case.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      dedf22e9
    • Tejun Heo's avatar
      kernfs: make kernfs_get_inode() public · fb02915f
      Tejun Heo authored
      Move kernfs_get_inode() prototype from fs/kernfs/kernfs-internal.h to
      include/linux/kernfs.h.  It obtains the matching inode for a
      kernfs_node.
      
      It will be used by cgroup for inode based permission checks for now
      but is generally useful.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      fb02915f
  2. 15 Jun, 2015 1 commit
  3. 10 Jun, 2015 1 commit
  4. 08 Jun, 2015 2 commits
  5. 29 May, 2015 1 commit
    • Arnd Bergmann's avatar
      cgroup: add seq_file forward declaration for struct cftype · c80ef9e0
      Arnd Bergmann authored
      Recent header file changes for cgroup caused lots of warnings
      about a missing struct seq_file form declaration for every
      inclusion of include/linux/cgroup-defs.h.
      
      As some files are built with -Werror, this leads to build
      failure like:
      
                       from /git/arm-soc/drivers/gpu/drm/tilcdc/tilcdc_crtc.c:18:
      /git/arm-soc/include/linux/cgroup-defs.h:354:25: error: 'struct seq_file' declared inside parameter list [-Werror]
      cc1: all warnings being treated as errors
      make[6]: *** [drivers/gpu/drm/tilcdc/tilcdc_crtc.o] Error 1
      
      This patch adds the declaration, which resolves both the
      warnings and the drm failure.
      
      tj: Moved it where other type declarations are.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Fixes: b4a04ab7 ("cgroup: separate out include/linux/cgroup-defs.h")
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      c80ef9e0
  6. 27 May, 2015 3 commits
    • Tejun Heo's avatar
      cgroup: simplify threadgroup locking · b5ba75b5
      Tejun Heo authored
      Now that threadgroup locking is made global, code paths around it can
      be simplified.
      
      * lock-verify-unlock-retry dancing removed from __cgroup_procs_write().
      
      * Race protection against de_thread() removed from
        cgroup_update_dfl_csses().
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      b5ba75b5
    • Tejun Heo's avatar
      sched, cgroup: replace signal_struct->group_rwsem with a global percpu_rwsem · d59cfc09
      Tejun Heo authored
      The cgroup side of threadgroup locking uses signal_struct->group_rwsem
      to synchronize against threadgroup changes.  This per-process rwsem
      adds small overhead to thread creation, exit and exec paths, forces
      cgroup code paths to do lock-verify-unlock-retry dance in a couple
      places and makes it impossible to atomically perform operations across
      multiple processes.
      
      This patch replaces signal_struct->group_rwsem with a global
      percpu_rwsem cgroup_threadgroup_rwsem which is cheaper on the reader
      side and contained in cgroups proper.  This patch converts one-to-one.
      
      This does make writer side heavier and lower the granularity; however,
      cgroup process migration is a fairly cold path, we do want to optimize
      thread operations over it and cgroup migration operations don't take
      enough time for the lower granularity to matter.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      d59cfc09
    • Tejun Heo's avatar
      sched, cgroup: reorganize threadgroup locking · 7d7efec3
      Tejun Heo authored
      threadgroup_change_begin/end() are used to mark the beginning and end
      of threadgroup modifying operations to allow code paths which require
      a threadgroup to stay stable across blocking operations to synchronize
      against those sections using threadgroup_lock/unlock().
      
      It's currently implemented as a general mechanism in sched.h using
      per-signal_struct rwsem; however, this never grew non-cgroup use cases
      and becomes noop if !CONFIG_CGROUPS.  It turns out that cgroups is
      gonna be better served with a different sycnrhonization scheme and is
      a bit silly to keep cgroups specific details as a general mechanism.
      
      What's general here is identifying the places where threadgroups are
      modified.  This patch restructures threadgroup locking so that
      threadgroup_change_begin/end() become a place where subsystems which
      need to sycnhronize against threadgroup changes can hook into.
      
      cgroup_threadgroup_change_begin/end() which operate on the
      per-signal_struct rwsem are created and threadgroup_lock/unlock() are
      moved to cgroup.c and made static.
      
      This is pure reorganization which doesn't cause any functional
      changes.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      7d7efec3
  7. 18 May, 2015 3 commits
    • Aleksa Sarai's avatar
      cgroup: switch to unsigned long for bitmasks · 8ab456ac
      Aleksa Sarai authored
      Switch the type of all internal cgroup masks to (unsigned long), which
      is the correct type for bitmasks. This is in preparation for the
      for_each_subsys_which patch.
      Signed-off-by: default avatarAleksa Sarai <cyphar@cyphar.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      8ab456ac
    • Tejun Heo's avatar
      cgroup: reorganize include/linux/cgroup.h · c326aa2b
      Tejun Heo authored
      From c4d440938b5e2015c70594fe6666a099c844f929 Mon Sep 17 00:00:00 2001
      From: Tejun Heo <tj@kernel.org>
      Date: Wed, 13 May 2015 16:21:40 -0400
      
      Over time, cgroup.h grew organically and doesn't have much logical
      structure at this point.  Separation of cgroup-defs.h in the previous
      patch gives us a good chance for reorganizing cgroup.h as changes to
      the header are likely to cause conflicts anyway.
      
      This patch reorganizes cgroup.h so that it has consistent logical
      grouping.
      
      This is pure reorganization.
      
      v2: Relocating #ifdef CONFIG_CGROUPS caused build failure when cgroup
          is disabled.  Dropped.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      c326aa2b
    • Tejun Heo's avatar
      cgroup: separate out include/linux/cgroup-defs.h · b4a04ab7
      Tejun Heo authored
      From 2d728f74bfc071df06773e2fd7577dd5dab6425d Mon Sep 17 00:00:00 2001
      From: Tejun Heo <tj@kernel.org>
      Date: Wed, 13 May 2015 15:37:01 -0400
      
      This patch separates out cgroup-defs.h from cgroup.h which has grown a
      lot of dependencies.  cgroup-defs.h currently only contains constant
      and type definitions and can be used to break circular include
      dependency.  While moving, definitions are reordered so that
      cgroup-defs.h has consistent logical structure.
      
      This patch is pure reorganization.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      b4a04ab7
  8. 23 Apr, 2015 1 commit
  9. 22 Apr, 2015 25 commits
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.infradead.org/users/pcmoore/audit · 27cf3a16
      Linus Torvalds authored
      Pull audit fixes from Paul Moore:
       "Seven audit patches for v4.1, all bug fixes.
      
        The largest, and perhaps most significant commit helps resolve some
        memory pressure issues related to the inode cache and audit, there are
        also a few small commits which help resolve some timing issues with
        the audit log queue, and the rest fall into the always popular "code
        clean-up" category.
      
        In general, nothing really substantial, just a nice set of maintenance
        patches"
      
      * 'upstream' of git://git.infradead.org/users/pcmoore/audit:
        audit: Remove condition which always evaluates to false
        audit: reduce mmap_sem hold for mm->exe_file
        audit: consolidate handling of mm->exe_file
        audit: code clean up
        audit: don't reset working wait time accidentally with auditd
        audit: don't lose set wait time on first successful call to audit_log_start()
        audit: move the tree pruning to a dedicated thread
      27cf3a16
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20150422' of git://git.infradead.org/linux-mtd · a62d016c
      Linus Torvalds authored
      Pull MTD updates from Brian Norris:
       "Common MTD:
      
         - Add Kconfig option for keeping both the 'master' and 'partition'
           MTDs registered as devices.  This would really make a better
           default if we could do it over, as it allows a lot more flexibility
           in (1) determining the flash topology of the system from user-space
           and (2) adding temporary partitions at runtime (ioctl(BLKPG)).
      
           Unfortunately, this would possibly cause user-space breakage, as it
           will cause renumbering of the /dev/mtdX devices.  We'll see if we
           can change this in the future, as there have already been a few
           people looking for this feature, and I know others have just been
           working around our current limitations instead of fixing them this
           way.
      
         - Along with the previous change, add some additional information to
           sysfs, so user-space can read the offset of each partition within
           its master device
      
        SPI NOR:
      
         - add new device tree compatible binding to represent the
           mostly-compatible class of SPI NOR flash which can be detected by
           their extended JEDEC ID bytes, cutting down the duplication of our
           ID tables
      
         - misc.  new IDs
      
        Various other miscellaneous fixes and changes"
      
      * tag 'for-linus-20150422' of git://git.infradead.org/linux-mtd: (53 commits)
        mtd: spi-nor: Add support for Macronix mx25u6435f serial flash
        mtd: spi-nor: Add support for Winbond w25q64dw serial flash
        mtd: spi-nor: add support for the Winbond W25X05 flash
        mtd: spi-nor: support en25s64 device
        mtd: m25p80: bind to "nor-jedec" ID, for auto-detection
        Documentation: devicetree: m25p80: add "nor-jedec" binding
        mtd: Make MTD tests cancelable
        mtd: mtd_oobtest: Fix bitflip_limit usage in test case 3
        mtd: docg3: remove invalid __exit annotations
        mtd: fsl_ifc_nand: use msecs_to_jiffies for time conversion
        mtd: atmel_nand: don't map the ROM table if no pmecc table offset in DT
        mtd: atmel_nand: add a definition for the oob reserved bytes
        mtd: part: Remove partition overlap checks
        mtd: part: Add sysfs variable for offset of partition
        mtd: part: Create the master device node when partitioned
        mtd: ts5500_flash: Fix typo in MODULE_DESCRIPTION in ts5500_flash.c
        mtd: denali: Disable sub-page writes in Denali NAND driver
        mtd: pxa3xx_nand: cleanup wait_for_completion handling
        mtd: nand: gpmi: Check for scan_bbt() error
        mtd: nand: gpmi: fixup return type of wait_for_completion_timeout
        ...
      a62d016c
    • Linus Torvalds's avatar
      Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · 7c034dfd
      Linus Torvalds authored
      Pull InfiniBand/RDMA updates from Roland Dreier:
      
       - IPoIB fixes from Doug Ledford and Erez Shitrit
      
       - iSER updates from Sagi Grimberg
      
       - mlx4 GUID handling changes from Yishai Hadas
      
       - other misc fixes
      
      * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (51 commits)
        mlx5: wrong page mask if CONFIG_ARCH_DMA_ADDR_T_64BIT enabled for 32Bit architectures
        IB/iser: Rewrite bounce buffer code path
        IB/iser: Bump version to 1.6
        IB/iser: Remove code duplication for a single DMA entry
        IB/iser: Pass struct iser_mem_reg to iser_fast_reg_mr and iser_reg_sig_mr
        IB/iser: Modify struct iser_mem_reg members
        IB/iser: Make fastreg pool cache friendly
        IB/iser: Move PI context alloc/free to routines
        IB/iser: Move fastreg descriptor pool get/put to helper functions
        IB/iser: Merge build page-vec into register page-vec
        IB/iser: Get rid of struct iser_rdma_regd
        IB/iser: Remove redundant assignments in iser_reg_page_vec
        IB/iser: Move memory reg/dereg routines to iser_memory.c
        IB/iser: Don't pass ib_device to fall_to_bounce_buff routine
        IB/iser: Remove a redundant struct iser_data_buf
        IB/iser: Remove redundant cmd_data_len calculation
        IB/iser: Fix wrong calculation of protection buffer length
        IB/iser: Handle fastreg/local_inv completion errors
        IB/iser: Fix unload during ep_poll wrong dereference
        ib_srpt: convert printk's to pr_* functions
        ...
      7c034dfd
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 1204c464
      Linus Torvalds authored
      Pull Ceph updates from Sage Weil:
       "This time around we have a collection of CephFS fixes from Zheng
        around MDS failure handling and snapshots, support for a new CRUSH
        straw2 algorithm (to sync up with userspace) and several RBD cleanups
        and fixes from Ilya, an error path leak fix from Taesoo, and then an
        assorted collection of cleanups from others"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (28 commits)
        rbd: rbd_wq comment is obsolete
        libceph: announce support for straw2 buckets
        crush: straw2 bucket type with an efficient 64-bit crush_ln()
        crush: ensuring at most num-rep osds are selected
        crush: drop unnecessary include from mapper.c
        ceph: fix uninline data function
        ceph: rename snapshot support
        ceph: fix null pointer dereference in send_mds_reconnect()
        ceph: hold on to exclusive caps on complete directories
        libceph: simplify our debugfs attr macro
        ceph: show non-default options only
        libceph: expose client options through debugfs
        libceph, ceph: split ceph_show_options()
        rbd: mark block queue as non-rotational
        libceph: don't overwrite specific con error msgs
        ceph: cleanup unsafe requests when reconnecting is denied
        ceph: don't zero i_wrbuffer_ref when reconnecting is denied
        ceph: don't mark dirty caps when there is no auth cap
        ceph: keep i_snap_realm while there are writers
        libceph: osdmap.h: Add missing format newlines
        ...
      1204c464
    • Linus Torvalds's avatar
      Merge tag 'trace-v4.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 4f211235
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
       "This adds three fixes for the tracing code.
      
        The first is a bug when ftrace_dump_on_oops is triggered in atomic
        context and function graph tracer is the tracer that is being
        reported.
      
        The second fix is bad parsing of the trace_events from the kernel
        command line, where it would ignore specific events if the system name
        is used with defining the event(it enables all events within the
        system).
      
        The last one is a fix to the TRACE_DEFINE_ENUM(), where a check was
        missing to see if the ptr was incremented to the end of the string,
        but the loop increments it again and can miss the nul delimiter to
        stop processing"
      
      * tag 'trace-v4.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Fix possible out of bounds memory access when parsing enums
        tracing: Fix incorrect enabling of trace events by boot cmdline
        tracing: Handle ftrace_dump() atomic context in graph_trace_open()
      4f211235
    • Linus Torvalds's avatar
      Merge tag 'pci-v4.1-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 9b60afee
      Linus Torvalds authored
      Pull PCI fixes from Bjorn Helgaas:
       "These fix an ia64 regression caused by tighter resource checking we
        merged during the merge window and remove an invalid email address
        from MAINTAINERS.
      
        Resource management:
          - ia64: Treat all Address Space Descriptors as windows (Bjorn Helgaas)
      
        Miscellaneous:
          - MAINTAINERS: Remove Mohit Kumar (email bounces) (Bjorn Helgaas)"
      
      * tag 'pci-v4.1-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        ia64/PCI: Treat all host bridge Address Space Descriptors (even consumers) as windows
        MAINTAINERS: Remove Mohit Kumar (email bounces)
      9b60afee
    • Linus Torvalds's avatar
      Merge git://www.linux-watchdog.org/linux-watchdog · 7dcca3e9
      Linus Torvalds authored
      Pull watchdog updates from Wim Van Sebroeck:
       "This contains following changes:
      
         - Octeon: convert to watchdog-API and apply some fixes
         - Cadence wdt: remove dependency on ARCH
         - add DT bindings for qcom + msm
         - bcm281xx: Remove use of seq_printf return value
         - stmp3xxx_rtc_wdt + pnx4008_wdt: fix broken email addresses"
      
      * git://www.linux-watchdog.org/linux-watchdog:
        watchdog: stmp3xxx_rtc_wdt: fix broken email address
        watchdog: pnx4008_wdt: fix broken email address
        watchdog: octeon: use fixed length string for register names
        watchdog: octeon: fix some trivial coding style issues
        watchdog: octeon: convert to WATCHDOG_CORE API
        watchdog: cadence: Remove Kconfig dependency on ARCH
        ARM: msm: add watchdog entries to DT timer binding doc
        ARM: qcom: add description of KPSS WDT for IPQ8064
        watchdog: qcom: use timer devicetree binding
        watchdog: bcm281xx: Remove use of seq_printf return value
      7dcca3e9
    • Linus Torvalds's avatar
      Merge tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux · b9bb6fb7
      Linus Torvalds authored
      Pull virtio updates from Rusty Russell:
       "Some virtio internal cleanups, a new virtio device "virtio input", and
        a change to allow the legacy virtio balloon.
      
        Most excitingly, some lguest work! No seriously, I got some cleanup
        patches"
      
      * tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
        virtio: drop virtio_device_is_legacy_only
        virtio_pci: support non-legacy balloon devices
        virtio_mmio: support non-legacy balloon devices
        virtio_ccw: support non-legacy balloon devices
        virtio: balloon might not be a legacy device
        virtio_balloon: transitional interface
        virtio_ring: Update weak barriers to use dma_wmb/rmb
        virtio_pci_modern: switch to type-safe io accessors
        virtio_pci_modern: type-safe io accessors
        lguest: handle traps on the "interrupt suppressed" iret instruction.
        virtio: drop a useless config read
        virtio_config: reorder functions
        Add virtio-input driver.
        lguest: suppress interrupts for single insn, not range.
        lguest: simplify lguest_iret
        lguest: rename i386_head.S in the comments
        lguest: explicitly set miscdevice's private_data NULL
        lguest: fix pending interrupt test.
      b9bb6fb7
    • Brian Norris's avatar
      Merge MTD fixes from 4.0 into -next · 3e550d23
      Brian Norris authored
      3e550d23
    • Linus Torvalds's avatar
      Merge tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux · 15ce2658
      Linus Torvalds authored
      Pull module updates from Rusty Russell:
       "Quentin opened a can of worms by adding extable entry checking to
        modpost, but most architectures seem fixed now.  Thanks to all
        involved.
      
        Last minute rebase because I noticed a "[PATCH]" had snuck into a
        commit message somehow"
      
      * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
        modpost: don't emit section mismatch warnings for compiler optimizations
        modpost: expand pattern matching to support substring matches
        modpost: do not try to match the SHT_NUL section.
        modpost: fix extable entry size calculation.
        modpost: fix inverted logic in is_extable_fault_address().
        modpost: handle -ffunction-sections
        modpost: Whitelist .text.fixup and .exception.text
        params: handle quotes properly for values not of form foo="bar".
        modpost: document the use of struct section_check.
        modpost: handle relocations mismatch in __ex_table.
        scripts: add check_extable.sh script.
        modpost: mismatch_handler: retrieve tosym information only when needed.
        modpost: factorize symbol pretty print in get_pretty_name().
        modpost: add handler function pointer to sectioncheck.
        modpost: add .sched.text and .kprobes.text to the TEXT_SECTIONS list.
        modpost: add strict white-listing when referencing sections.
        module: do not print allocation-fail warning on bogus user buffer size
        kernel/module.c: fix typos in message about unused symbols
      15ce2658
    • Linus Torvalds's avatar
      Revert "mm: avoid tail page refcounting on non-THP compound pages" · f3ca10dd
      Linus Torvalds authored
      This reverts commit 8d63d99a.
      
      It causes in VM mapping refcount errors:
      
        page:ffffea0010a15040 count:0 mapcount:1 mapping:          (null) index:0x0
        flags: 0x8000000000008014(referenced|dirty|tail)
        page dumped because: VM_BUG_ON_PAGE(page_mapcount(page) != 0)
        ------------[ cut here ]------------
        kernel BUG at mm/swap.c:134!
      
      as reported by Borislav Petkov
      Reported-and-tested-by: default avatarBorislav Petkov <bp@alien8.de>
      Cc: Kirill A. Shutemov <kirill@shutemov.name>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: linux-mm@kvack.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f3ca10dd
    • Linus Torvalds's avatar
      Merge tag 'mmc-4.1-rc1' of git://git.linaro.org/people/ulf.hansson/mmc · 5e6c94a9
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
       "Here is two mmc core fixes for v.4.1 rc1:
      
         - fix error code propagation in mmc_pwrseq_simple_alloc()
      
         - revert 'mmc: core: Convert mmc_driver to device_driver'"
      
      * tag 'mmc-4.1-rc1' of git://git.linaro.org/people/ulf.hansson/mmc:
        Revert "mmc: core: Convert mmc_driver to device_driver"
        mmc: pwrseq: Fix error code propagation in mmc_pwrseq_simple_alloc()
      5e6c94a9
    • Vinod Koul's avatar
      dmaengine: hsu: don't prompt for hsu_core part · 3cfe2137
      Vinod Koul authored
      HSU_DMA is selected by the HSU_DMA_PCI driver, this should be user selected
      so remove the user prompt for this
      Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3cfe2137
    • Linus Torvalds's avatar
      Merge tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 8b3c8ba3
      Linus Torvalds authored
      Pull ARM SoC late changes from Olof Johansson:
       "We were expecting to sit on this branch through most of the merge
        window since the contents was merged into our tree late, but we ended
        up sitting on all of our contents so it can go in with the rest.
      
        The contents here is:
      
         - a large branch of cleanups of the CM/PRM blocks on OMAP.
      
         - a couple of patches plumbing up CM/PRM on OMAP5 and DRA7.
      
         - a branch with DT updates for Freescale i.MX.  including some
           shuffling from .dts to .dtsi (include) files that causes a little
           churn"
      
      * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (78 commits)
        ARM: OMAP2+: Fix booting with configs that don't have MFD_SYSCON
        ARM: OMAP4+: control: add support for initializing control module via DT
        ARM: dts: dra7: add minimal l4 bus layout with control module support
        ARM: dts: omap5: add minimal l4 bus layout with control module support
        ARM: OMAP4+: control: remove support for legacy pad read/write
        ARM: OMAP4: display: convert display to use syscon for dsi muxing
        ARM: dts: omap4: add minimal l4 bus layout with control module support
        ARM: dts: am4372: add minimal l4 bus layout with control module support
        ARM: dts: am43xx-epos-evm: fix pinmux node layout
        ARM: dts: am33xx: add minimal l4 bus layout with control module support
        ARM: dts: omap3: add minimal l4 bus layout with control module support
        ARM: dts: omap24xx: add minimal l4 bus layout with control module support
        ARM: OMAP2+: control: add syscon support for register accesses
        ARM: OMAP2+: id: cache omap_type value
        ARM: OMAP2+: control: remove API for getting control module base address
        ARM: OMAP2+: clock: add low-level support for regmap
        ARM: OMAP4+: PRM: get rid of cpu_is_omap44xx calls from interrupt init
        ARM: OMAP4+: PRM: setup prm_features from the PRM init time flags
        ARM: OMAP2+: CM: move SoC specific init calls within a generic API
        ARM: OMAP4+: PRM: determine prm_device_inst based on DT compatibility
        ...
      8b3c8ba3
    • Linus Torvalds's avatar
      Merge tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · d34dc4f9
      Linus Torvalds authored
      Pull ARM SoC 64-bit changes from Olof Johansson:
       "Mostly DT updates for arm64, but also a couple of Kconfig additions.
      
        Main contents:
      
         - Qualcomm MSM8916/APQ8016
      
         - Spreadtrum SC9836
      
         - Xilinx ZynqMP
      
         - pincontrol entries for MediaTek MT8173"
      
      * tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        arm64: dts: add interrupt-affinity property to pmu node for juno
        arm64: dts: Add Qualcomm APQ8016 SBC evaluation board dts
        arm64: dts: Add Qualcomm MSM8916 SoC and evaluation board dts
        arm64: dts: sprd: adding coresight entries to Spreadtrum SC9836
        arm64: Add support for Spreadtrum's Sharkl64 Platform in Kconfig and defconfig
        arm64: dts: Add support for Spreadtrum SC9836 SoC in dts and Makefile
        ARM64: Add new Xilinx ZynqMP SoC
        arm64: qcom: Add support for Qualcomm MSM8916 SoC
        arm64: dts: mt8173: Add pinctrl/GPIO/EINT node for mt8173.
        arm64: mediatek: Select PINCTRL for Mediatek platform
      d34dc4f9
    • Linus Torvalds's avatar
      Merge tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 2144de82
      Linus Torvalds authored
      Pull ARM SoC defconfig updates from Olof Johansson:
       "We keep collecting defconfig updates in a separate branch mostly to
        encourage people to handle them separately and avoid conflicts between
        different topics.
      
        Most of these are enablement of new drivers that have come in, or
        minor config refreshes due to reorderings in Kconfig files, etc.  I.e.
        mostly minor churn of various kinds.
      
        We might start folding this branch into something else for upstream
        merge since it's so small, but keep it independent in our own tree for
        the above reasons"
      
      * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (38 commits)
        ARM: multi_v7_defconfig: enable alpine platform
        ARM: multi_v7_defconfig: Add gpio-restart driver
        ARM: multi_v7_defconfig: Build the Marvell WiFi-Ex driver as a module
        ARM: multi_v7_defconfig: Enable support for ELAN i2c trackpads
        ARM: multi_v7_defconfig: Enable Tegra ACTMON support
        ARM: configs: remove all CONFIG_RCAR_AUDMAC_PP from ARM defconfigs
        ARM: configs: enable Marvell Armada 39x in multi_v7_defconfig
        ARM: exynos_defconfig: Enable HDMI support
        ARM: exynos_defconfig: Enable options to mount a rootfs via NFS
        ARM: qcom: Increase MMC_BLOCK_MINORS in defconfig
        ARM: mvebu: Enable perf support in mvebu_v7_defconfig
        ARM: exynos_defconfig: Enable ChromeOS EC chardev driver
        ARM: exynos_defconfig: Enable CPU idle
        ARM: exynos_defconfig: Enable Marvell WiFi-Ex support
        arm: qcom: Update defconfig
        arm: qcom: Enable lpass clock driver in defconfig
        ARM: omap2plus_defconfig: Enable n900 modem as loadable modules
        ARM: omap2plus_defconfig: Update bluetooth options
        ARM: omap2plus_defconfig: Enable leds-pwm
        ARM: omap1_defconfig: drop obsolete Kconfig symbols
        ...
      2144de82
    • Linus Torvalds's avatar
      Merge tag 'armsoc-multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · e5ac320d
      Linus Torvalds authored
      Pull ARM SoC multiplatform code changes from Olof Johansson:
       "The changes here belong to two main platforms:
      
         - Atmel At91 is flipping the bit and going multiplatform.  This
           includes some cleanups and removal of code, and the final flip of
           config dependencies
      
         - Shmobile has several platforms that are going multiplatform, but
           this branch also contains a bunch of cleanups that they weren't
           able to keep separate in a good way.  THere's also a removal of one
           of their SoCs and the corresponding boards (sh7372 and mackerel)"
      
      * tag 'armsoc-multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (67 commits)
        ARM: at91/pm: move AT91_MEMCTRL_* to pm.h
        ARM: at91/pm: move the standby functions to pm.c
        ARM: at91: fix pm_suspend.S compilation when ARMv6 is selected
        ARM: at91: add a Kconfig dependency on multi-platform
        ARM: at91: drop AT91_TIMER_HZ
        ARM: at91: remove hardware.h
        ARM: at91: remove SoC headers
        ARM: at91: remove useless mach/cpu.h
        ARM: at91: remove unused headers
        ARM: at91: switch at91_dt_defconfig to multiplatform
        ARM: at91: switch to multiplatform
        ARM: shmobile: r8a7778: enable multiplatform target
        ARM: shmobile: bockw: add sound to DT
        ARM: shmobile: r8a7778: add sound to DT
        ARM: shmobile: bockw: add devices hooked up to i2c0 to DT
        DT: i2c: add trivial binding for OKI ML86V7667 video decoder
        ARM: shmobile: r8a7778: common clock framework CPG driver
        ARM: shmobile: bockw dts: set extal clock frequency
        ARM: shmobile: bockw dts: Move Ethernet node to BSC
        ARM: shmobile: r8a73a4: Remove legacy code
        ...
      e5ac320d
    • Linus Torvalds's avatar
      Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 7d2b6ef1
      Linus Torvalds authored
      Pull ARM SoC driver updates from Olof Johansson:
       "Driver updates for v4.1.  Some of these are for drivers/soc, where we
        find more and more SoC-specific drivers these days.  Some are for
        other driver subsystems where we have received acks from the
        appropriate maintainers.
      
        The larger parts of this branch are:
      
         - MediaTek support for their PMIC wrapper interface, a high-level
           interface for talking to the system PMIC over a dedicated I2C
           interface.
      
         - Qualcomm SCM driver has been moved to drivers/firmware.  It's used
           for CPU up/down and needs to be in a shared location for arm/arm64
           common code.
      
         - cleanup of ARM-CCI PMU code.
      
         - another set of cleanusp to the OMAP GPMC code"
      
      * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (43 commits)
        soc/mediatek: Remove unused variables
        clocksource: atmel-st: select MFD_SYSCON
        soc: mediatek: Add PMIC wrapper for MT8135 and MT8173 SoCs
        arm-cci: Fix CCI PMU event validation
        arm-cci: Split the code for PMU vs driver support
        arm-cci: Get rid of secure transactions for PMU driver
        arm-cci: Abstract the CCI400 PMU specific definitions
        arm-cci: Rearrange code for splitting PMU vs driver code
        drivers: cci: reject groups spanning multiple HW PMUs
        ARM: at91: remove useless include
        clocksource: atmel-st: remove mach/hardware dependency
        clocksource: atmel-st: use syscon/regmap
        ARM: at91: time: move the system timer driver to drivers/clocksource
        ARM: at91: properly initialize timer
        ARM: at91: at91rm9200: remove deprecated arm_pm_restart
        watchdog: at91rm9200: implement restart handler
        watchdog: at91rm9200: use the system timer syscon
        mfd: syscon: Add atmel system timer registers definition
        ARM: at91/dt: declare atmel,at91rm9200-st as a syscon
        soc: qcom: gsbi: Add support for ADM CRCI muxing
        ...
      7d2b6ef1
    • Linus Torvalds's avatar
      Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 5c73cc4b
      Linus Torvalds authored
      Pull ARM DT updates from Olof Johansson:
       "As always, this tends to be one of our bigger branches.  There are
        lots of updates this release, but not that many jumps out as something
        that needs more detailed coverage.  Some of the highlights are:
      
         - DTs for the new Annapurna Labs Alpine platform
      
         - more graphics DT pieces falling into place on Exynos, bridges,
           clocks.
      
         - plenty of DT updates for Qualcomm platforms for various IP blocks
      
         - some churn on Tegra due to switch-over to tool-generated pinctrl
           data
      
         - misc fixes and updates for Atmel at91 platforms
      
         - various DT updates to add IP block support on Broadcom's Cygnus
           platforms
      
         - more updates for Renesas platforms as DT support is added for
           various IP blocks (IPMMU, display, audio, etc)"
      
      * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (231 commits)
        ARM: dts: alpine: add internal pci
        Revert "ARM: dts: mt8135: Add pinctrl/GPIO/EINT node for mt8135."
        ARM: mvebu: use 0xf1000000 as internal registers on Armada 370 DB
        ARM: dts: qcom: Add idle state device nodes for 8064
        ARM: dts: qcom: Add idle states device nodes for 8084
        ARM: dts: qcom: Add idle states device nodes for 8974/8074
        ARM: dts: qcom: Update power-controller device node for 8064 Krait CPUs
        ARM: dts: qcom: Add power-controller device node for 8084 Krait CPUs
        ARM: dts: qcom: Add power-controller device node for 8074 Krait CPUs
        devicetree: bindings: Document qcom,idle-states
        devicetree: bindings: Update qcom,saw2 node bindings
        dt-bindings: Add #defines for MSM8916 clocks and resets
        arm: dts: qcom: Add LPASS Audio HW to IPQ8064 device tree
        arm: dts: qcom: Add APQ8084 chipset SPMI PMIC's nodes
        arm: dts: qcom: Add 8x74 chipset SPMI PMIC's nodes
        arm: dts: qcom: Add SPMI PMIC Arbiter nodes for APQ8084 and MSM8974
        arm: dts: qcom: Add LCC nodes
        arm: dts: qcom: Add TCSR support for MSM8960
        arm: dts: qcom: Add TCSR support for MSM8660
        arm: dts: qcom: Add TCSR support for IPQ8064
        ...
      5c73cc4b
    • Linus Torvalds's avatar
      Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · e6c81cce
      Linus Torvalds authored
      Pull ARM SoC platform updates from Olof Johansson:
       "Our SoC branch usually contains expanded support for new SoCs and
        other core platform code.  In this case, that includes:
      
         - support for the new Annapurna Labs "Alpine" platform
      
         - a rework greatly simplifying adding new platform support to the
           MCPM subsystem (Multi-cluster power management)
      
         - cpuidle and PM improvements for Exynos3250
      
         - misc updates for Renesas, OMAP, Meson, i.MX.  Some of these could
           have gone in other branches but ended up here for various reasons"
      
      * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (53 commits)
        ARM: alpine: add support for generic pci
        ARM: Exynos: migrate DCSCB to the new MCPM backend abstraction
        ARM: vexpress: migrate DCSCB to the new MCPM backend abstraction
        ARM: vexpress: DCSCB: tighten CPU validity assertion
        ARM: vexpress: migrate TC2 to the new MCPM backend abstraction
        ARM: MCPM: move the algorithmic complexity to the core code
        ARM: EXYNOS: allow cpuidle driver usage on Exynos3250 SoC
        ARM: EXYNOS: add AFTR mode support for Exynos3250
        ARM: EXYNOS: add code for setting/clearing boot flag
        ARM: EXYNOS: fix CPU1 hotplug on Exynos3250
        ARM: S3C64XX: Use fixed IRQ bases to avoid conflicts on Cragganmore
        ARM: cygnus: fix const declaration bcm_cygnus_dt_compat
        ARM: DRA7: hwmod: Fix the hwmod class for GPTimer4
        ARM: DRA7: hwmod: Add data for GPTimers 13 through 16
        ARM: EXYNOS: Remove left over 'extra_save'
        ARM: EXYNOS: Constify exynos_pm_data array
        ARM: EXYNOS: use static in suspend.c
        ARM: EXYNOS: Use platform device name as power domain name
        ARM: EXYNOS: add support for async-bridge clocks for pm_domains
        ARM: omap-device: add missed callback for suspend-to-disk
        ...
      e6c81cce
    • Linus Torvalds's avatar
      Merge tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · d0440c59
      Linus Torvalds authored
      Pull ARM SoC cleanups from Olof Johansson:
       "We've got a fairly large cleanup branch this time.  The bulk of this
        is removal of non-DT platforms of several flavors:
      
         - Atmel at91 platforms go full-DT, with removal of remaining
           board-file based support
      
         - OMAP removes legacy board files for three more platforms
      
         - removal of non-DT mach-msm, newer Qualcomm platforms now live in
           mach-qcom
      
         - Freescale i.MX25 also removes non-DT platform support"
      
      Most of the rest of the changes here are fallout from the above, i.e. for
      example removal of drivers that now lack platforms, etc.
      
      * tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (58 commits)
        mmc: Remove msm_sdcc driver
        gpio: Remove gpio-msm-v1 driver
        ARM: Remove mach-msm and associated ARM architecture code
        ARM: shmobile: cpuidle: Remove the pointless default driver
        ARM: davinci: dm646x: Add interrupt resource for McASPs
        ARM: davinci: irqs: Correct McASP1 TX interrupt definition for DM646x
        ARM: davinci: dm646x: Clean up the McASP DMA resources
        ARM: davinci: devices-da8xx: Add support for McASP2 on da830
        ARM: davinci: devices-da8xx: Clean up and correct the McASP device creation
        ARM: davinci: devices-da8xx: Add interrupt resource to McASP structs
        ARM: davinci: devices-da8xx: Add resource name for the McASP DMA request
        ARM: OMAP2+: Remove legacy support for omap3 TouchBook
        ARM: OMAP3: Remove legacy support for devkit8000
        ARM: OMAP3: Remove legacy support for EMA-Tech Stalker board
        ARM: shmobile: Consolidate the pm code for R-Car Gen2
        ARM: shmobile: r8a7791: Correct SYSCIER value
        ARM: shmobile: r8a7790: Correct SYSCIER value
        ARM: at91: remove old setup
        ARM: at91: sama5d4: remove useless map_io
        ARM: at91: sama5 use SoC detection infrastructure
        ...
      d0440c59
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 38eb1dbb
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "Here's the usual "low-priority fixes that didn't make it into the last
        few -rcs, with a twist: We had a fixes pull request that I didn't send
        in time to get into 4.0, so we'll send some of them to Greg for
        -stable as well.
      
        Contents here is as usual not all that controversial:
      
         - a handful of randconfig fixes from Arnd, in particular for older
           Samsung platforms
      
         - Exynos fixes, !SMP building, DTS updates for MMC and lid switch
      
         - Kbuild fix to create output subdirectory for DTB files
      
         - misc minor fixes for OMAP"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (23 commits)
        ARM: at91/dt: sama5d3 xplained: add phy address for macb1
        kbuild: Create directory for target DTB
        ARM: mvebu: Disable CPU Idle on Armada 38x
        ARM: DRA7: Enable Cortex A15 errata 798181
        ARM: dts: am57xx-beagle-x15: Add thermal map to include fan and tmp102
        ARM: dts: DRA7: Add bandgap and related thermal nodes
        bus: ocp2scp: SYNC2 value should be changed to 0x6
        ARM: dts: am4372: Add "ti,am437x-ocp2scp" as compatible string for OCP2SCP
        ARM: OMAP2+: remove superfluous NULL pointer check
        ARM: EXYNOS: Fix build breakage cpuidle on !SMP
        ARM: dts: fix lid and power pin-functions for exynos5250-spring
        ARM: dts: fix mmc node updates for exynos5250-spring
        ARM: OMAP4: remove dead kconfig option OMAP4_ERRATA_I688
        MAINTAINERS: add OMAP defconfigs under OMAP SUPPORT
        ARM: OMAP1: PM: fix some build warnings on 1510-only Kconfigs
        ARM: cns3xxx: don't export static symbol
        ARM: S3C24XX: avoid a Kconfig warning
        ARM: S3C24XX: fix header file inclusions
        ARM: S3C24XX: fix building without PM_SLEEP
        ARM: S3C24XX: use SAMSUNG_WAKEMASK for s3c2416
        ...
      38eb1dbb
    • Ilya Dryomov's avatar
      rbd: rbd_wq comment is obsolete · f77303bd
      Ilya Dryomov authored
      After the switch to blk-mq rbd_wq processes requests, not devices.
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      f77303bd
    • Ilya Dryomov's avatar
      libceph: announce support for straw2 buckets · 7c1c4747
      Ilya Dryomov authored
      Sync up feature bits and enable CEPH_FEATURE_CRUSH_V4.
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      7c1c4747
    • Ilya Dryomov's avatar
      crush: straw2 bucket type with an efficient 64-bit crush_ln() · 958a2765
      Ilya Dryomov authored
      This is an improved straw bucket that correctly avoids any data movement
      between items A and B when neither A nor B's weights are changed.  Said
      differently, if we adjust the weight of item C (including adding it anew
      or removing it completely), we will only see inputs move to or from C,
      never between other items in the bucket.
      
      Notably, there is not intermediate scaling factor that needs to be
      calculated.  The mapping function is a simple function of the item weights.
      
      The below commits were squashed together into this one (mostly to avoid
      adding and then yanking a ~6000 lines worth of crush_ln_table):
      
      - crush: add a straw2 bucket type
      - crush: add crush_ln to calculate nature log efficently
      - crush: improve straw2 adjustment slightly
      - crush: change crush_ln to provide 32 more digits
      - crush: fix crush_get_bucket_item_weight and bucket destroy for straw2
      - crush/mapper: fix divide-by-0 in straw2
        (with div64_s64() for draw = ln / w and INT64_MIN -> S64_MIN - need
         to create a proper compat.h in ceph.git)
      
      Reflects ceph.git commits 242293c908e923d474910f2b8203fa3b41eb5a53,
                                32a1ead92efcd351822d22a5fc37d159c65c1338,
                                6289912418c4a3597a11778bcf29ed5415117ad9,
                                35fcb04e2945717cf5cfe150b9fa89cb3d2303a1,
                                6445d9ee7290938de1e4ee9563912a6ab6d8ee5f,
                                b5921d55d16796e12d66ad2c4add7305f9ce2353.
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      958a2765