1. 26 May, 2016 1 commit
  2. 24 May, 2016 4 commits
  3. 17 May, 2016 35 commits
    • Nicholas Bellinger's avatar
      nvme/host: Add missing blk_integrity tag_size + flags assignments · ba36c21b
      Nicholas Bellinger authored
      While doing recent bring-up of nvme/host with target-core T10-PI,
      I noticed /sys/block/nvme*/integrity/device_is_integrity_capable
      was false, and /sys/block/nvme*/integrity/tag_size contained
      a bogus value.
      
      AFAICT outside of blk_integrity_compare() for DM + MD these
      are informational values, but go ahead and add the missing
      assignments for nvme/host to match what SCSI does within
      sd_dif_config_host() for consistency's sake.
      
      Cc: Keith Busch <keith.busch@intel.com>
      Cc: Jay Freyensee <james.p.freyensee@intel.com>
      Cc: Martin K. Petersen <martin.petersen@oracle.com>
      Cc: Sagi Grimberg <sagig@grimberg.me>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      Reviewed-by: Sagi Grimberg <sagi at grimberg.me>
      Reviewed-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      ba36c21b
    • Keith Busch's avatar
      NVMe: Add device ID's with stripe quirk · 99466e70
      Keith Busch authored
      Adds two Intel controllers that have the "stripe" quirk.
      Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      99466e70
    • Keith Busch's avatar
      NVMe: Short-cut removal on surprise hot-unplug · 0ff9d4e1
      Keith Busch authored
      This patch adds a new state that when set has the core automatically
      kill request queues prior to removing namespaces.
      
      If PCI device is not present at the time the nvme driver's remove is
      called, we can kill all IO queues immediately instead of waiting for
      the watchdog thread to do that at its polling interval. This improves
      scenarios where multiple hot plug events occur at the same time since
      it doesn't block the pci enumeration for as long.
      Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      0ff9d4e1
    • Keith Busch's avatar
      NVMe: Allow user initiated rescan · 9ec3bb2f
      Keith Busch authored
      This exposes ioctl and sysfs methods a user can invoke to request the
      driver rescan a controller and its namespaces. This is less harsh than
      doing a controller reset, which temporarilly halts all IO, just to
      surface a newly attached namespace.
      
      This is mainly useful for controllers that implement the namespace
      management command, but do not support the namespace notify change
      asynchronous event notification.
      Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      9ec3bb2f
    • Keith Busch's avatar
      NVMe: Reduce driver log spamming · d011fb31
      Keith Busch authored
      Reduce error logging when no corrective action is required.
      Suggessted-by: default avatarChris Petersen <cpetersen@fb.com>
      Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      d011fb31
    • Keith Busch's avatar
      NVMe: Unbind driver on failure · 921920ab
      Keith Busch authored
      Instead of removing the PCI device from the kernel's topology on
      controller failure, this patch simply requests unbinding the device
      from the driver. This avoids concurrently running pci removal with the
      hot plug event, which has been reported to be problematic when multiple
      surprise events occur near simultaneously.
      
      The other benefit is that we will have PCI config and memory space
      available to poke around for debugging a failed controller, assuming
      the device was not physically removed.
      
      The down side occurs if the platform and/or kernel do not support any
      type of surprise hot removal. The device will remain visible through
      sysfs (and therefore lspci), and some manual work is necessary to get
      the logical topology corrected. But if your platform and/or kernel don't
      support surprise removal, you probably shouldn't be doing that anyway.
      Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      921920ab
    • Keith Busch's avatar
      NVMe: Delete only created queues · 014a0d60
      Keith Busch authored
      Use the online queue count instead of the number of allocated queues. The
      controller should just return an invalid queue identifier error to the
      commands if a queue wasn't created. While it's not harmful, it's still
      not correct.
      Reported-by: default avatarSaar Gross <saar@annapurnalabs.com>
      Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      014a0d60
    • Keith Busch's avatar
      NVMe: Allocate queues only for online cpus · 2800b8e7
      Keith Busch authored
      The driver previously requested allocating queues for the total possible
      number of CPUs so that blk-mq could rebalance these if CPUs were added
      after initialization. The number of hardware contexts can now be changed
      at runtime, so we only need to allocate the number of online queues
      since we can add more later.
      Suggested-by: default avatarJeff Lien <jeff.lien@hgst.com>
      Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
      Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      2800b8e7
    • Linus Torvalds's avatar
      Merge branch 'for-4.7/drivers' of git://git.kernel.dk/linux-block · 24b9f0cf
      Linus Torvalds authored
      Pull block driver updates from Jens Axboe:
       "On top of the core pull request, this is the drivers pull request for
        this merge window.  This contains:
      
         - Switch drivers to the new write back cache API, and kill off the
           flush flags.  From me.
      
         - Kill the discard support for the STEC pci-e flash driver.  It's
           trivially broken, and apparently unmaintained, so it's safer to
           just remove it.  From Jeff Moyer.
      
         - A set of lightnvm updates from the usual suspects (Matias/Javier,
           and Simon), and fixes from Arnd, Jeff Mahoney, Sagi, and Wenwei
           Tao.
      
         - A set of updates for NVMe:
      
              - Turn the controller state management into a proper state
                machine.  From Christoph.
      
              - Shuffling of code in preparation for NVMe-over-fabrics, also
                from Christoph.
      
              - Cleanup of the command prep part from Ming Lin.
      
              - Rewrite of the discard support from Ming Lin.
      
              - Deadlock fix for namespace removal from Ming Lin.
      
              - Use the now exported blk-mq tag helper for IO termination.
                From Sagi.
      
              - Various little fixes from Christoph, Guilherme, Keith, Ming
                Lin, Wang Sheng-Hui.
      
         - Convert mtip32xx to use the now exported blk-mq tag iter function,
           from Keith"
      
      * 'for-4.7/drivers' of git://git.kernel.dk/linux-block: (74 commits)
        lightnvm: reserved space calculation incorrect
        lightnvm: rename nr_pages to nr_ppas on nvm_rq
        lightnvm: add is_cached entry to struct ppa_addr
        lightnvm: expose gennvm_mark_blk to targets
        lightnvm: remove mgt targets on mgt removal
        lightnvm: pass dma address to hardware rather than pointer
        lightnvm: do not assume sequential lun alloc.
        nvme/lightnvm: Log using the ctrl named device
        lightnvm: rename dma helper functions
        lightnvm: enable metadata to be sent to device
        lightnvm: do not free unused metadata on rrpc
        lightnvm: fix out of bound ppa lun id on bb tbl
        lightnvm: refactor set_bb_tbl for accepting ppa list
        lightnvm: move responsibility for bad blk mgmt to target
        lightnvm: make nvm_set_rqd_ppalist() aware of vblks
        lightnvm: remove struct factory_blks
        lightnvm: refactor device ops->get_bb_tbl()
        lightnvm: introduce nvm_for_each_lun_ppa() macro
        lightnvm: refactor dev->online_target to global nvm_targets
        lightnvm: rename nvm_targets to nvm_tgt_type
        ...
      24b9f0cf
    • Linus Torvalds's avatar
      Merge branch 'for-4.7/core' of git://git.kernel.dk/linux-block · a4d1dbed
      Linus Torvalds authored
      Pull core block layer updates from Jens Axboe:
       "This is the core block IO changes for this merge window.  Nothing
        earth shattering in here, it's mostly just fixes.  In detail:
      
         - Fix for a long standing issue where wrong ordering in blk-mq caused
           order_to_size() to spew a warning.  From Bart.
      
         - Async discard support from Christoph.  Basically just splitting our
           sync interface into a submit + wait part.
      
         - Add a cleaner interface for flagging whether a device has a write
           back cache or not.  We've previously overloaded blk_queue_flush()
           with this, but let's make it more explicit.  Drivers cleaned up and
           updated in the drivers pull request.  From me.
      
         - Fix for a double check for whether IO accounting is enabled or not.
           From Michael Callahan.
      
         - Fix for the async discard from Mike Snitzer, reinstating the early
           EOPNOTSUPP return if the device doesn't support discards.
      
         - Also from Mike, export bio_inc_remaining() so dm can drop it's
           private copy of it.
      
         - From Ming Lin, add support for passing in an offset for request
           payloads.
      
         - Tag function export from Sagi, which will be used in NVMe in the
           drivers pull.
      
         - Two blktrace related fixes from Shaohua.
      
         - Propagate NOMERGE flag when making a request from a bio, also from
           Shaohua.
      
         - An optimization to not parse cgroup paths in blk-throttle, if we
           don't need to.  From Shaohua"
      
      * 'for-4.7/core' of git://git.kernel.dk/linux-block:
        blk-mq: fix undefined behaviour in order_to_size()
        blk-throttle: don't parse cgroup path if trace isn't enabled
        blktrace: add missed mask name
        blktrace: delete garbage for message trace
        block: make bio_inc_remaining() interface accessible again
        block: reinstate early return of -EOPNOTSUPP from blkdev_issue_discard
        block: Minor blk_account_io_start usage cleanup
        block: add __blkdev_issue_discard
        block: remove struct bio_batch
        block: copy NOMERGE flag from bio to request
        block: add ability to flag write back caching on a device
        blk-mq: Export tagset iter function
        block: add offset in blk_add_request_payload()
        writeback: Fix performance regression in wb_over_bg_thresh()
      a4d1dbed
    • Linus Torvalds's avatar
      Merge branch 'work.preadv2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · c2e7b207
      Linus Torvalds authored
      Pull vfs cleanups from Al Viro:
       "More cleanups from Christoph"
      
      * 'work.preadv2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        nfsd: use RWF_SYNC
        fs: add RWF_DSYNC aand RWF_SYNC
        ceph: use generic_write_sync
        fs: simplify the generic_write_sync prototype
        fs: add IOCB_SYNC and IOCB_DSYNC
        direct-io: remove the offset argument to dio_complete
        direct-io: eliminate the offset argument to ->direct_IO
        xfs: eliminate the pos variable in xfs_file_dio_aio_write
        filemap: remove the pos argument to generic_file_direct_write
        filemap: remove pos variables in generic_file_read_iter
      c2e7b207
    • Linus Torvalds's avatar
      Merge branch 'work.const-path' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · c52b7618
      Linus Torvalds authored
      Pull 'struct path' constification update from Al Viro:
       "'struct path' is passed by reference to a bunch of Linux security
        methods; in theory, there's nothing to stop them from modifying the
        damn thing and LSM community being what it is, sooner or later some
        enterprising soul is going to decide that it's a good idea.
      
        Let's remove the temptation and constify all of those..."
      
      * 'work.const-path' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        constify ima_d_path()
        constify security_sb_pivotroot()
        constify security_path_chroot()
        constify security_path_{link,rename}
        apparmor: remove useless checks for NULL ->mnt
        constify security_path_{mkdir,mknod,symlink}
        constify security_path_{unlink,rmdir}
        apparmor: constify common_perm_...()
        apparmor: constify aa_path_link()
        apparmor: new helper - common_path_perm()
        constify chmod_common/security_path_chmod
        constify security_sb_mount()
        constify chown_common/security_path_chown
        tomoyo: constify assorted struct path *
        apparmor_path_truncate(): path->mnt is never NULL
        constify vfs_truncate()
        constify security_path_truncate()
        [apparmor] constify struct path * in a bunch of helpers
      c52b7618
    • Linus Torvalds's avatar
      Merge branch 'for-cifs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 681750c0
      Linus Torvalds authored
      Pull cifs xattr updates from Al Viro:
       "This is the remaining parts of the xattr work - the cifs bits"
      
      * 'for-cifs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        cifs: Switch to generic xattr handlers
        cifs: Fix removexattr for os2.* xattrs
        cifs: Check for equality with ACL_TYPE_ACCESS and ACL_TYPE_DEFAULT
        cifs: Fix xattr name checks
      681750c0
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 820c687b
      Linus Torvalds authored
      Pull UDF fixes from Jan Kara:
       "A fix for UDF crash on corrupted media and one UDF header fixup"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: Export superblock magic to userspace
        udf: Prevent stack overflow on corrupted filesystem mount
      820c687b
    • Linus Torvalds's avatar
      Merge tag 'jfs-4.7' of git://github.com/kleikamp/linux-shaggy · dba1e987
      Linus Torvalds authored
      Pull jfs updates from Dave Kleikamp:
       "Some jfs logging cleanups from Joe Perches"
      
      * tag 'jfs-4.7' of git://github.com/kleikamp/linux-shaggy:
        jfs: Coalesce some formats
        jfs: Remove unnecessary line continuations and terminating newlines
        jfs: Remove terminating newlines from jfs_info, jfs_warn, jfs_err uses
      dba1e987
    • Kees Cook's avatar
      exec: clarify reasoning for euid/egid reset · cb6fd68f
      Kees Cook authored
      This section of code initially looks redundant, but is required. This
      improves the comment to explain more clearly why the reset is needed.
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Acked-by: default avatarSerge E. Hallyn <serge.hallyn@ubuntu.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cb6fd68f
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 7f427d3a
      Linus Torvalds authored
      Pull parallel filesystem directory handling update from Al Viro.
      
      This is the main parallel directory work by Al that makes the vfs layer
      able to do lookup and readdir in parallel within a single directory.
      That's a big change, since this used to be all protected by the
      directory inode mutex.
      
      The inode mutex is replaced by an rwsem, and serialization of lookups of
      a single name is done by a "in-progress" dentry marker.
      
      The series begins with xattr cleanups, and then ends with switching
      filesystems over to actually doing the readdir in parallel (switching to
      the "iterate_shared()" that only takes the read lock).
      
      A more detailed explanation of the process from Al Viro:
       "The xattr work starts with some acl fixes, then switches ->getxattr to
        passing inode and dentry separately.  This is the point where the
        things start to get tricky - that got merged into the very beginning
        of the -rc3-based #work.lookups, to allow untangling the
        security_d_instantiate() mess.  The xattr work itself proceeds to
        switch a lot of filesystems to generic_...xattr(); no complications
        there.
      
        After that initial xattr work, the series then does the following:
      
         - untangle security_d_instantiate()
      
         - convert a bunch of open-coded lookup_one_len_unlocked() to calls of
           that thing; one such place (in overlayfs) actually yields a trivial
           conflict with overlayfs fixes later in the cycle - overlayfs ended
           up switching to a variant of lookup_one_len_unlocked() sans the
           permission checks.  I would've dropped that commit (it gets
           overridden on merge from #ovl-fixes in #for-next; proper resolution
           is to use the variant in mainline fs/overlayfs/super.c), but I
           didn't want to rebase the damn thing - it was fairly late in the
           cycle...
      
         - some filesystems had managed to depend on lookup/lookup exclusion
           for *fs-internal* data structures in a way that would break if we
           relaxed the VFS exclusion.  Fixing hadn't been hard, fortunately.
      
         - core of that series - parallel lookup machinery, replacing
           ->i_mutex with rwsem, making lookup_slow() take it only shared.  At
           that point lookups happen in parallel; lookups on the same name
           wait for the in-progress one to be done with that dentry.
      
           Surprisingly little code, at that - almost all of it is in
           fs/dcache.c, with fs/namei.c changes limited to lookup_slow() -
           making it use the new primitive and actually switching to locking
           shared.
      
         - parallel readdir stuff - first of all, we provide the exclusion on
           per-struct file basis, same as we do for read() vs lseek() for
           regular files.  That takes care of most of the needed exclusion in
           readdir/readdir; however, these guys are trickier than lookups, so
           I went for switching them one-by-one.  To do that, a new method
           '->iterate_shared()' is added and filesystems are switched to it
           as they are either confirmed to be OK with shared lock on directory
           or fixed to be OK with that.  I hope to kill the original method
           come next cycle (almost all in-tree filesystems are switched
           already), but it's still not quite finished.
      
         - several filesystems get switched to parallel readdir.  The
           interesting part here is dealing with dcache preseeding by readdir;
           that needs minor adjustment to be safe with directory locked only
           shared.
      
           Most of the filesystems doing that got switched to in those
           commits.  Important exception: NFS.  Turns out that NFS folks, with
           their, er, insistence on VFS getting the fuck out of the way of the
           Smart Filesystem Code That Knows How And What To Lock(tm) have
           grown the locking of their own.  They had their own homegrown
           rwsem, with lookup/readdir/atomic_open being *writers* (sillyunlink
           is the reader there).  Of course, with VFS getting the fuck out of
           the way, as requested, the actual smarts of the smart filesystem
           code etc. had become exposed...
      
         - do_last/lookup_open/atomic_open cleanups.  As the result, open()
           without O_CREAT locks the directory only shared.  Including the
           ->atomic_open() case.  Backmerge from #for-linus in the middle of
           that - atomic_open() fix got brought in.
      
         - then comes NFS switch to saner (VFS-based ;-) locking, killing the
           homegrown "lookup and readdir are writers" kinda-sorta rwsem.  All
           exclusion for sillyunlink/lookup is done by the parallel lookups
           mechanism.  Exclusion between sillyunlink and rmdir is a real rwsem
           now - rmdir being the writer.
      
           Result: NFS lookups/readdirs/O_CREAT-less opens happen in parallel
           now.
      
         - the rest of the series consists of switching a lot of filesystems
           to parallel readdir; in a lot of cases ->llseek() gets simplified
           as well.  One backmerge in there (again, #for-linus - rockridge
           fix)"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (74 commits)
        ext4: switch to ->iterate_shared()
        hfs: switch to ->iterate_shared()
        hfsplus: switch to ->iterate_shared()
        hostfs: switch to ->iterate_shared()
        hpfs: switch to ->iterate_shared()
        hpfs: handle allocation failures in hpfs_add_pos()
        gfs2: switch to ->iterate_shared()
        f2fs: switch to ->iterate_shared()
        afs: switch to ->iterate_shared()
        befs: switch to ->iterate_shared()
        befs: constify stuff a bit
        isofs: switch to ->iterate_shared()
        get_acorn_filename(): deobfuscate a bit
        btrfs: switch to ->iterate_shared()
        logfs: no need to lock directory in lseek
        switch ecryptfs to ->iterate_shared
        9p: switch to ->iterate_shared()
        fat: switch to ->iterate_shared()
        romfs, squashfs: switch to ->iterate_shared()
        more trivial ->iterate_shared conversions
        ...
      7f427d3a
    • Linus Torvalds's avatar
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ede40902
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "This update delivers:
      
         - Yet another interrupt chip diver (LPC32xx)
         - Core functions to handle partitioned per-cpu interrupts
         - Enhancements to the IPI core
         - Proper handling of irq type configuration
         - A large set of ARM GIC enhancements
         - The usual pile of small fixes, cleanups and enhancements"
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)
        irqchip/bcm2836: Use a more generic memory barrier call
        irqchip/bcm2836: Fix compiler warning on 64-bit build
        irqchip/bcm2836: Drop smp_set_ops on arm64 builds
        irqchip/gic: Add helper functions for GIC setup and teardown
        irqchip/gic: Store GIC configuration parameters
        irqchip/gic: Pass GIC pointer to save/restore functions
        irqchip/gic: Return an error if GIC initialisation fails
        irqchip/gic: Remove static irq_chip definition for eoimode1
        irqchip/gic: Don't initialise chip if mapping IO space fails
        irqchip/gic: WARN if setting the interrupt type for a PPI fails
        irqchip/gic: Don't unnecessarily write the IRQ configuration
        irqchip: Mask the non-type/sense bits when translating an IRQ
        genirq: Ensure IRQ descriptor is valid when setting-up the IRQ
        irqchip/gic-v3: Configure all interrupts as non-secure Group-1
        irqchip/gic-v2m: Add workaround for Broadcom NS2 GICv2m erratum
        irqchip/irq-alpine-msi: Don't use <asm-generic/msi.h>
        irqchip/mbigen: Checking for IS_ERR() instead of NULL
        irqchip/gic-v3: Remove inexistant register definition
        irqchip/gicv3-its: Don't allow devices whose ID is outside range
        irqchip: Add LPC32xx interrupt controller driver
        ...
      ede40902
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 91e8d0cb
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
       "A rather small set of patches from the timer departement:
      
         - Some more y2038 work
         - Yet another new clocksource driver
         - The usual set of small fixes, cleanups and enhancements"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clocksource/drivers/tegra: Remove unused suspend/resume code
        clockevents/driversi/mps2: add MPS2 Timer driver
        dt-bindings: document the MPS2 timer bindings
        clocksource/drivers/mtk_timer: Add __init attribute
        clockevents/drivers/dw_apb_timer: Implement ->set_state_oneshot_stopped()
        time: Introduce do_sys_settimeofday64()
        security: Introduce security_settime64()
        clocksource: Add missing include of of.h.
      91e8d0cb
    • Linus Torvalds's avatar
      Merge tag 'trace-fixes-v4.6-rc7' of... · 2fe2edf8
      Linus Torvalds authored
      Merge tag 'trace-fixes-v4.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull tracing ring-buffer fixes from Steven Rostedt:
       "Hao Qin reported an integer overflow possibility with signed and
        unsigned numbers in the ring-buffer code.
      
          https://bugzilla.kernel.org/show_bug.cgi?id=118001
      
        At first I did not think this was too much of an issue, because the
        overflow would be caught later when either too much data was allocated
        or it would trigger RB_WARN_ON() which shuts down the ring buffer.
      
        But looking closer into it, I found that the right settings could
        bypass the checks and crash the kernel.  Luckily, this is only
        accessible by root.
      
        The first fix is to convert all the variables into long, such that we
        don't get into issues between 32 bit variables being assigned 64 bit
        ones.  This fixes the RB_WARN_ON() triggering.
      
        The next fix is to get rid of a duplicate DIV_ROUND_UP() that when
        called twice with the right value, can cause a kernel crash.
      
        The first DIV_ROUND_UP() is to normalize the input and it is checked
        against the minimum allowable value.  But then DIV_ROUND_UP() is
        called again, which can overflow due to the (a + b - 1)/b, logic.  The
        first called upped the value, the second can overflow (with the +b
        part).
      
        The second call to DIV_ROUND_UP() came in via a second change a while
        ago and the code is cleaned up to remove it"
      
      * tag 'trace-fixes-v4.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        ring-buffer: Prevent overflow of size in ring_buffer_resize()
        ring-buffer: Use long for nr_pages to avoid overflow failures
      2fe2edf8
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 9a07a796
      Linus Torvalds authored
      Pull crypto update from Herbert Xu:
       "API:
      
         - Crypto self tests can now be disabled at boot/run time.
         - Add async support to algif_aead.
      
        Algorithms:
      
         - A large number of fixes to MPI from Nicolai Stange.
         - Performance improvement for HMAC DRBG.
      
        Drivers:
      
         - Use generic crypto engine in omap-des.
         - Merge ppc4xx-rng and crypto4xx drivers.
         - Fix lockups in sun4i-ss driver by disabling IRQs.
         - Add DMA engine support to ccp.
         - Reenable talitos hash algorithms.
         - Add support for Hisilicon SoC RNG.
         - Add basic crypto driver for the MXC SCC.
      
        Others:
      
         - Do not allocate crypto hash tfm in NORECLAIM context in ecryptfs"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (77 commits)
        crypto: qat - change the adf_ctl_stop_devices to void
        crypto: caam - fix caam_jr_alloc() ret code
        crypto: vmx - comply with ABIs that specify vrsave as reserved.
        crypto: testmgr - Add a flag allowing the self-tests to be disabled at runtime.
        crypto: ccp - constify ccp_actions structure
        crypto: marvell/cesa - Use dma_pool_zalloc
        crypto: qat - make adf_vf_isr.c dependant on IOV config
        crypto: qat - Fix typo in comments
        lib: asn1_decoder - add MODULE_LICENSE("GPL")
        crypto: omap-sham - Use dma_request_chan() for requesting DMA channel
        crypto: omap-des - Use dma_request_chan() for requesting DMA channel
        crypto: omap-aes - Use dma_request_chan() for requesting DMA channel
        crypto: omap-des - Integrate with the crypto engine framework
        crypto: s5p-sss - fix incorrect usage of scatterlists api
        crypto: s5p-sss - Fix missed interrupts when working with 8 kB blocks
        crypto: s5p-sss - Use common BIT macro
        crypto: mxc-scc - fix unwinding in mxc_scc_crypto_register()
        crypto: mxc-scc - signedness bugs in mxc_scc_ablkcipher_req_init()
        crypto: talitos - fix ahash algorithms registration
        crypto: ccp - Ensure all dependencies are specified
        ...
      9a07a796
    • Al Viro's avatar
      Merge branch 'ovl-fixes' into for-linus · 0e0162bb
      Al Viro authored
      Backmerge to resolve a conflict in ovl_lookup_real();
      "ovl_lookup_real(): use lookup_one_len_unlocked()" instead,
      but it was too late in the cycle to rebase.
      0e0162bb
    • Linus Torvalds's avatar
      Merge tag 'device-properties-4.7-rc1' of... · 16490980
      Linus Torvalds authored
      Merge tag 'device-properties-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
      
      Pull device properties update from Rafael Wysocki:
       "Generic device properties framework update.
      
        Just one commit reworking the handling of built-in properties
        initialization and updating a few drivers in accordance with the core
        framework changes"
      
      * tag 'device-properties-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        device property: don't bother the drivers with struct property_set
      16490980
    • Linus Torvalds's avatar
      Merge tag 'acpi-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 46c13450
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "The new features here are ACPI 6.1 support (and some previously
        missing bits of ACPI 6.0 support) in ACPICA and two new drivers, a
        driver for the ACPI Generic Event Device (GED) feature introduced by
        ACPI 6.1 and the INT3406 thermal driver for display thermal
        management.  Also the value returned by the _HRV (hardware revision)
        ACPI object will be exported to user space via sysfs now.
      
        In addition to that, ACPI on ARM64 will not depend on EXPERT any more.
      
        The rest is mostly fixes and cleanups and some code reorganization.
      
        Specifics:
      
         - In-kernel ACPICA code update to the upstream release 20160422
           adding support for ACPI 6.1 along with some previously missing bits
           of ACPI 6.0 support, making a fair amount of fixes and cleanups and
           reducing divergences between the upstream ACPICA and the in-kernel
           code (Bob Moore, Lv Zheng, Al Stone, Aleksey Makarov, Will Miles)
      
         - ACPI Generic Event Device (GED) support and a fix for it (Sinan
           Kaya, Paul Gortmaker)
      
         - INT3406 thermal driver for display thermal management and ACPI
           backlight support code reorganization related to it (Aaron Lu, Arnd
           Bergmann)
      
         - Support for exporting the value returned by the _HRV (hardware
           revision) ACPI object via sysfs (Betty Dall)
      
         - Removal of the EXPERT dependency for ACPI on ARM64 (Mark Brown)
      
         - Rework of the handling of ACPI _OSI mechanism allowing the
           _OSI("Darwin") support to be overridden from the kernel command
           line among other things (Lv Zheng, Chen Yu)
      
         - Rework of the ACPI tables override mechanism to prepare it for the
           introduction of overlays support going forward (Lv Zheng, Rafael
           Wysocki)
      
         - Fixes related to the ECDT support and module-level execution of AML
           (Lv Zheng)
      
         - ACPI PCI interrupts management update to make it work better on
           ARM64 mostly (Sinan Kaya)
      
         - ACPI SRAT handling update to make the code process all entires in
           the table order regardless of the entry type (Lukasz Anaczkowski)
      
         - EFI power off support for full-hardware ACPI platforms that don't
           support ACPI S5 (Chen Yu)
      
         - Fixes and cleanups related to the ACPI core's sysfs interface (Dan
           Carpenter, Betty Dall)
      
         - acpi_dev_present() API rework to reduce possible confusion related
           to it (Lukas Wunner)
      
         - Removal of CLK_IS_ROOT from two ACPI drivers (Stephen Boyd)"
      
      * tag 'acpi-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (82 commits)
        ACPI / video: mark acpi_video_get_levels() inline
        Thermal / ACPI / video: add INT3406 thermal driver
        ACPI / GED: make evged.c explicitly non-modular
        ACPI / tables: Fix DSDT override mechanism
        ACPI / sysfs: fix error code in get_status()
        ACPICA: Update version to 20160422
        ACPICA: Move all ASCII utilities to a common file
        ACPICA: ACPI 2.0, Hardware: Add access_width/bit_offset support for acpi_hw_write()
        ACPICA: ACPI 2.0, Hardware: Add access_width/bit_offset support in acpi_hw_read()
        ACPICA: Executer: Introduce a set of macros to handle bit width mask generation
        ACPICA: Hardware: Add optimized access bit width support
        ACPICA: Utilities: Add ACPI_IS_ALIGNED() macro
        ACPICA: Renamed some #defined flag constants for clarity
        ACPICA: ACPI 6.0, tools/iasl: Add support for new resource descriptors
        ACPICA: ACPI 6.0: Update _BIX support for new package element
        ACPICA: ACPI 6.1: Support for new PCCT subtable
        ACPICA: Refactor evaluate_object to reduce nesting
        ACPICA: Divergence: remove unwanted spaces for typedef
        ACPI,PCI,IRQ: remove SCI penalize function
        ACPI,PCI,IRQ: remove redundant code in acpi_irq_penalty_init()
        ..
      46c13450
    • Linus Torvalds's avatar
      Merge tag 'pm-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · d57d3943
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "The majority of changes go into the cpufreq subsystem this time.
      
        To me, quite obviously, the biggest ticket item is the new "schedutil"
        governor.  Interestingly enough, it's the first new cpufreq governor
        since the beginning of the git era (except for some out-of-the-tree
        ones).
      
        There are two main differences between it and the existing governors.
        First, it uses the information provided by the scheduler directly for
        making its decisions, so it doesn't have to track anything by itself.
        Second, it can invoke drivers (supporting that feature) to adjust CPU
        performance right away without having to spawn work items to be
        executed in process context or similar.  Currently, the acpi-cpufreq
        driver is the only one supporting that mode of operation, but then it
        is used on a large number of systems.
      
        The "schedutil" governor as included here is very simple and mostly
        regarded as a foundation for future work on the integration of the
        scheduler with CPU power management (in fact, there is work in
        progress on top of it already).  Nevertheless it works and the
        preliminary results obtained with it are encouraging.
      
        There also is some consolidation of CPU frequency management for ARM
        platforms that can add their machine IDs the the new stub dt-platdev
        driver now and that will take care of creating the requisite platform
        device for cpufreq-dt, so it is not necessary to do that in platform
        code any more.  Several ARM platforms are switched over to using this
        generic mechanism.
      
        In addition to that, the intel_pstate driver is now going to respect
        CPU frequency limits set by the platform firmware (or a BMC) and
        provided via the ACPI _PPC object.
      
        The devfreq subsystem is getting a new "passive" governor for SoCs
        subsystems that will depend on somebody else to manage their voltage
        rails and its support for Samsung Exynos SoCs is consolidated.
      
        The rest is support for new hardware (Intel Broxton support in
        intel_idle for one example), bug fixes, optimizations and cleanups in
        a number of places.
      
        Specifics:
      
         - New cpufreq "schedutil" governor (making decisions based on CPU
           utilization information provided by the scheduler and capable of
           switching CPU frequencies right away if the underlying driver
           supports that) and support for fast frequency switching in the
           acpi-cpufreq driver (Rafael Wysocki)
      
         - Consolidation of CPU frequency management on ARM platforms allowing
           them to get rid of some platform-specific boilerplate code if they
           are going to use the cpufreq-dt driver (Viresh Kumar, Finley Xiao,
           Marc Gonzalez)
      
         - Support for ACPI _PPC and CPU frequency limits in the intel_pstate
           driver (Srinivas Pandruvada)
      
         - Fixes and cleanups in the cpufreq core and generic governor code
           (Rafael Wysocki, Sai Gurrappadi)
      
         - intel_pstate driver optimizations and cleanups (Rafael Wysocki,
           Philippe Longepe, Chen Yu, Joe Perches)
      
         - cpufreq powernv driver fixes and cleanups (Akshay Adiga, Shilpasri
           Bhat)
      
         - cpufreq qoriq driver fixes and cleanups (Jia Hongtao)
      
         - ACPI cpufreq driver cleanups (Viresh Kumar)
      
         - Assorted cpufreq driver updates (Ashwin Chaugule, Geliang Tang,
           Javier Martinez Canillas, Paul Gortmaker, Sudeep Holla)
      
         - Assorted cpufreq fixes and cleanups (Joe Perches, Arnd Bergmann)
      
         - Fixes and cleanups in the OPP (Operating Performance Points)
           framework, mostly related to OPP sharing, and reorganization of
           OF-dependent code in it (Viresh Kumar, Arnd Bergmann, Sudeep Holla)
      
         - New "passive" governor for devfreq (for SoC subsystems that will
           rely on someone else for the management of their power resources)
           and consolidation of devfreq support for Exynos platforms, coding
           style and typo fixes for devfreq (Chanwoo Choi, MyungJoo Ham)
      
         - PM core fixes and cleanups, mostly to make it work better with the
           generic power domains (genpd) framework, and updates for that
           framework (Ulf Hansson, Thierry Reding, Colin Ian King)
      
         - Intel Broxton support for the intel_idle driver (Len Brown)
      
         - cpuidle core optimization and fix (Daniel Lezcano, Dave Gerlach)
      
         - ARM cpuidle cleanups (Jisheng Zhang)
      
         - Intel Kabylake support for the RAPL power capping driver (Jacob
           Pan)
      
         - AVS (Adaptive Voltage Switching) rockchip-io driver update (Heiko
           Stuebner)
      
         - Updates for the cpupower tool (Arjun Sreedharan, Colin Ian King,
           Mattia Dongili, Thomas Renninger)"
      
      * tag 'pm-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (112 commits)
        intel_pstate: Clean up get_target_pstate_use_performance()
        intel_pstate: Use sample.core_avg_perf in get_avg_pstate()
        intel_pstate: Clarify average performance computation
        intel_pstate: Avoid unnecessary synchronize_sched() during initialization
        cpufreq: schedutil: Make default depend on CONFIG_SMP
        cpufreq: powernv: del_timer_sync when global and local pstate are equal
        cpufreq: powernv: Move smp_call_function_any() out of irq safe block
        intel_pstate: Clean up intel_pstate_get()
        cpufreq: schedutil: Make it depend on CONFIG_SMP
        cpufreq: governor: Fix handling of special cases in dbs_update()
        PM / OPP: Move CONFIG_OF dependent code in a separate file
        cpufreq: intel_pstate: Ignore _PPC processing under HWP
        cpufreq: arm_big_little: use generic OPP functions for {init, free}_opp_table
        PM / OPP: add non-OF versions of dev_pm_opp_{cpumask_, }remove_table
        cpufreq: tango: Use generic platdev driver
        PM / OPP: pass cpumask by reference
        cpufreq: Fix GOV_LIMITS handling for the userspace governor
        cpupower: fix potential memory leak
        PM / devfreq: style/typo fixes
        PM / devfreq: exynos: Add the detailed correlation for Exynos5422 bus
        ..
      d57d3943
    • Linus Torvalds's avatar
      Merge tag 'mmc-v4.7' of git://git.linaro.org/people/ulf.hansson/mmc · 3e21e5dd
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
       "MMC core:
         - Add TRACE support to be able to debug request flow
         - Extend/improve reset support for (e)MMC
         - Convert MMC pwrseq to platform device drivers
         - Use IDA for indexes
         - Some additional minor improvements
      
        MMC host:
         - sdhci: Re-factoring, clean-ups and improvements
         - sdhci-acpi|pci: Use MMC_CAP_AGGRESSIVE_PM for Broxton
         - omap/omap_hsmmc: Convert to use dma_request_chan()
         - usdhi6rol0: Add support for UHS modes
         - sh_mmcif: Update runtime PM support
         - tmio: Wolfram Sang steps in as maintainer
         - tmio: Add UHS-I mode support
         - sh_mobile_sdhi: Add UHS-I mode support
         - tmio/sdhi: Re-factoring, clean-ups and improvements
         - dw_mmc: Re-factoring and clean-ups
         - davinci: Convert to use dma_request_chan()"
      
      * tag 'mmc-v4.7' of git://git.linaro.org/people/ulf.hansson/mmc: (99 commits)
        mmc: mmc: Fix partition switch timeout for some eMMCs
        mmc: sh_mobile_sdhi: enable SDIO IRQs for RCar Gen3
        mmc: sdio: fall back to SDIO 1.0 for broken 1.1 cards
        mmc: sdhci-st: correct name of sd-uhs-sdr50 property
        MAINTAINERS: update entry for TMIO MMC driver
        mmc: block: improve logging of handling emmc timeouts
        mmc: sdhci: removed unneeded function wrappers
        mmc: core: remove the invalid message in mmc_select_timing
        mmc: core: fix using wrong io voltage if mmc_select_hs200 fails
        mmc: sdhci-of-arasan: fix set_clock when a phy is supported
        mmc: omap: Use dma_request_chan() for requesting DMA channel
        mmc: mmc: Attempt to flush cache before reset
        mmc: sh_mobile_sdhi: check return value when changing clk
        mmc: sh_mobile_sdhi: only change the clock on RCar Gen2+
        mmc: tmio/sdhi: introduce flag for RCar 2+ specific features
        mmc: sh_mobile_sdhi: make clk_update function more compact
        mmc: omap_hsmmc: Use dma_request_chan() for requesting DMA channel
        mmc: sdhci-of-at91: add presets setup
        mmc: usdhi6rol0: add pinctrl to set pin drive strength
        mmc: usdhi6rol0: add support for UHS modes
        ...
      3e21e5dd
    • Linus Torvalds's avatar
      Merge tag 'regulator-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · d9dce51c
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "A few core enhancements to deal with some of the slightly more
        complicated edge cases that have started cropping up in systems, both
        new ones and old ones that people started worrying about upstream, but
        otherwise a quiet release for the regulator API:
      
         - When applying constraints at system image if we have a voltage
           range specified and the regulator is currently configured outside
           the bounds of that range bring the regulator to the nearest end of
           the range.
      
         - When regulators are in non-regulating bypass modes make sure that
           we always use the voltage from the parent regulator.
      
         - Support for LP873x, PV88080, PM8894 and FAN53555 chips"
      
      * tag 'regulator-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (71 commits)
        regulator: rk808: Migrate to regulator core's simplified DT parsing code
        regulator: lp873x: Add support for lp873x PMIC regulators
        regulator: tps65917/palmas: Simplify multiple dereference of match->of_node
        regulator: tps65917/palmas: Handle possible memory allocation failure
        regulator: tps65917/palmas: Simplify multiple dereference of pdata->reg_init[idx]
        regulator: tps65917/palmas: Simplify multiple dereference of ddata->palmas_matches[idx]
        regulator: pwm: Use pwm_get_args() where appropriate
        pwm: Introduce the pwm_args concept
        regulator: max77686: Configure enable time to properly handle regulator enable
        regulator: rk808: Add rk808_reg_ops_ranges for LDO3
        regulator: core: Add early supply resolution for regulators
        regulator: axp20x: Fix axp22x ldo_io voltage ranges
        regulator: tps65917/palmas: Add bypass "On" value
        regulator: rk808: remove unused rk808_reg_ops_ranges
        regulator: refactor valid_ops_mask checking code
        regulator: rk808: remove linear range definitions with a single range
        regulator: max77620: Add support for device specific ramp rate setting
        regulator: max77620: Add details of device specific ramp rate setting
        regulator: helpers: Ensure bypass register field matches ON value
        regulator: core: Move registration of regulator device
        ...
      d9dce51c
    • Linus Torvalds's avatar
      Merge tag 'regmap-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · e2ca5425
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "The updates for this kernel release really are trivial:
      
         - Check that max_register is set for the flat cache to avoid a crash
           on initialization
      
         - Fix a typo in the documentation"
      
      * tag 'regmap-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regcache: flat: Require max_registers to be set
        regmap: cache: Fix typo in cache_bypass parameter description
      e2ca5425
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.7' of git://git.code.sf.net/p/openipmi/linux-ipmi · 27d6cafa
      Linus Torvalds authored
      Pull IPMI updates from Corey Minyard:
       "Some small fixes and cleanups, these latest have been in linux-next
        for a few weeks"
      
      * tag 'for-linus-4.7' of git://git.code.sf.net/p/openipmi/linux-ipmi:
        ipmi: Fix the I2C address extraction from SPMI tables
        IPMI: reserve memio regions separately
        ipmi: Fix some minor coding style issues
      27d6cafa
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.7' of... · fdb8a291
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon updates from Guenter Roeck:
      
       - major rework of it87 driver: cleanup, added support for additional
         attributes, added support for two chips in the system, added support
         for IT8728E
      
       - fam17h_power driver now reports accumulated power consumption
      
       - new driver for MAX31722/MAX31723 temperature sensors
      
       - minor fixes to sch5636 and ads7828 drivers
      
      * tag 'hwmon-for-linus-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (35 commits)
        hwmon: (sch5636) trivial fix of spelling mistake on revision
        hwmon: (it87) Add support for IT8628E
        hwmon: (it87) Fix pwm_temp_map for system with 6 pwm channels
        hwmon: (it87) Support automatic pwm control on newer chips
        hwmon: (it87) Enhance validation for fan4 and fan5
        hwmon: (it87) Support disabling fan control for all pwm control and chips
        hwmon: (it87) Formatting cleanup
        hwmon: (it87) Use defines for array sizes and sensor counts
        hwmon: (it87) Use BIT macro
        hwmon: (it87) Add support for VIN7 to VIN10 on IT8620E
        hwmon: (it87) Simplify reading voltage registers
        hwmon: (it87) Support up to 6 temperature sensors on IT8620E
        hwmon: (it87) Convert to use new hwmon API
        hwmon: (it87) Use single group and is_visible for miscellaneous attributes
        hwmon: (it87) Use is_visible for pwm attributes
        hwmon: (it87) Use is_visible for fan attributes
        hwmon: (it87) Use is_visible for temperature sensors
        hwmon: (it87) Use is_visible for voltage sensors
        hwmon: (it87) Rearrange code to avoid forward declarations
        hwmon: (it87) Add support for second Super-IO chip
        ...
      fdb8a291
    • Linus Torvalds's avatar
      Merge tag 'edac_for_4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp · 1cc3880a
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
       "It was pretty busy in EDAC land this time:
      
         - Altera Arria10 L2 cache and On-Chip RAM ECC handling (Thor Thayer)
      
         - Remove ad-hoc buffering of MCE records in sb_edac and i7core_edac
           (Tony Luck)
      
         - Do not register sb_edac with pci_register_driver() (Tony Luck)
      
         - Add support for Skylake to ie31200_edac (Jason Baron)
      
         - Do not register amd64_edac with pci_register_driver() (Borislav
           Petkov)
      
        ... plus the usual round of cleanups and fixes all over the place"
      
      * tag 'edac_for_4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: (25 commits)
        EDAC, amd64_edac: Drop pci_register_driver() use
        EDAC, ie31200_edac: Add Skylake support
        EDAC, sb_edac: Use cpu family/model in driver detection
        EDAC, i7core: Remove double buffering of error records
        EDAC, amd64_edac: Issue driver banner only on success
        ARM: socfpga: Initialize Arria10 OCRAM ECC on startup
        EDAC: Increment correct counter in edac_inc_ue_error()
        EDAC, sb_edac: Remove double buffering of error records
        EDAC: Fix used after kfree() error in edac_unregister_sysfs()
        EDAC, altera: Avoid unused function warnings
        EDAC, altera: Remove useless casts
        ARM: socfpga: Enable Arria10 OCRAM ECC on startup
        EDAC, altera: Add Arria10 OCRAM ECC support
        Documentation: dt: socfpga: Add Altera Arria10 OCRAM binding
        EDAC, altera: Make OCRAM ECC dependency check generic
        EDAC, altera: Add register offset for ECC Enable
        EDAC, altera: Extract error inject operations to a struct fops
        ARM: socfpga: Enable Arria10 L2 cache ECC on startup
        EDAC, altera: Add Arria10 L2 Cache ECC handling
        Documentation, dt, socfpga: Add Altera Arria10 L2 cache binding
        ...
      1cc3880a
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds · 490e1422
      Linus Torvalds authored
      Pull LED updates from Jacek Anaszewski:
       "In this merge cycle we had an interaction with MTD subsystem, that
        included converting drivers/mtd/nand/nand_base.c to use newly
        introduced MTD (NAND/NOR) LED trigger instead of implementing it on
        its own.
      
        Related MTD patches are intended to be merged through the LED tree,
        before MTD tree is merged, since further MTD development is based on
        those modifications.
      
        Summary:
      
        LEDs:
         - Introduce a kernel panic LED trigger
      
         - Introduce a MTD (NAND/NOR) trigger
      
         - led-tca6507: silence an uninitialized variable warning
      
         - ledtrig-ide-disk: Move ide_blink_delay to ledtrig_ide_activity()
      
         - leds-ss4200: Add depend on x86 arch
      
         - leds-ss4200: add DMI data for FSC SCALEO Home Server
      
         - leds-triggers: Allow to switch the trigger to "panic" on a kernel panic
      
         - devicetree: leds: Introduce "panic-indicator" optional property
      
         - leds-gpio: Support the "panic-indicator" firmware property
      
        MTD:
         - Uninline mtd_write_oob and move it to mtdcore.c
      
         - Remove the "nand-disk" LED trigger
      
         - Hook I/O activity to the MTD LED trigger"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
        leds: gpio: Support the "panic-indicator" firmware property
        devicetree: leds: Introduce "panic-indicator" optional property
        leds: triggers: Allow to switch the trigger to "panic" on a kernel panic
        leds: ss4200: add DMI data for FSC SCALEO Home Server
        leds: ss4200: Add depend on x86 arch
        leds: ledtrig-ide-disk: Move ide_blink_delay to ledtrig_ide_activity()
        leds: tca6507: silence an uninitialized variable warning
        mtd: Hook I/O activity to the MTD LED trigger
        mtd: nand: Remove the "nand-disk" LED trigger
        leds: trigger: Introduce a MTD (NAND/NOR) trigger
        mtd: Uninline mtd_write_oob and move it to mtdcore.c
        leds: trigger: Introduce a kernel panic LED trigger
      490e1422
    • Corey Minyard's avatar
      ipmi: Fix the I2C address extraction from SPMI tables · 70f95b76
      Corey Minyard authored
      Unlike everywhere else in the IPMI specification, the I2C address
      specified in the SPMI table is not shifted to the left one bit with
      the LSB zero.  Instead it is not shifted with the MSB zero.
      Reported-by: default avatarSanjeev <singhsan@codeaurora.org>
      Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
      70f95b76
    • Corey Minyard's avatar
      IPMI: reserve memio regions separately · 57a38f13
      Corey Minyard authored
      Commit d61a3ead ("[PATCH] IPMI: reserve I/O ports separately")
      changed the way I/O ports were reserved and includes this comment in
      log:
      
       Some BIOSes reserve disjoint I/O regions in their ACPI tables for the IPMI
       controller.  This causes problems when trying to register the entire I/O
       region.  Therefore we must register each I/O port separately.
      
      There is a similar problem with memio regions on an arm64 platform
      (AMD Seattle). Where I see:
      
       ipmi message handler version 39.2
       ipmi_si AMDI0300:00: probing via device tree
       ipmi_si AMDI0300:00: ipmi_si: probing via ACPI
       ipmi_si AMDI0300:00: [mem 0xe0010000] regsize 1 spacing 4 irq 23
       ipmi_si: Adding ACPI-specified kcs state machine
       IPMI System Interface driver.
       ipmi_si: Trying ACPI-specified kcs state machine at mem \
                address 0xe0010000, slave address 0x0, irq 23
       ipmi_si: Could not set up I/O space
      
      The problem is that the ACPI core registers disjoint regions for the
      platform device:
      
      e0010000-e0010000 : AMDI0300:00
      e0010004-e0010004 : AMDI0300:00
      
      and the ipmi_si driver tries to register one region e0010000-e0010004.
      
      Based on a patch from Mark Salter <msalter@redhat.com>, who also wrote
      all the above text.
      Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
      Tested-by: default avatarMark Salter <msalter@redhat.com>
      57a38f13
    • Corey Minyard's avatar
      76824852