1. 30 Jan, 2018 1 commit
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v4.16-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · aca21de2
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
        - first part of an overhaul of the NuBus subsystem, to bring it up to
          modern driver model standards
      
        - a race condition fix for Mac
      
        - defconfig updates
      
      * tag 'm68k-for-v4.16-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        MAINTAINERS: Add NuBus subsystem entry
        m68k/mac: Fix race conditions in OSS interrupt dispatch
        nubus: Add support for the driver model
        nubus: Add expansion_type values for various Mac models
        nubus: Adopt standard linked list implementation
        nubus: Rename struct nubus_dev
        nubus: Rework /proc/bus/nubus/s/ implementation
        nubus: Generalize block resource handling
        nubus: Clean up whitespace
        nubus: Remove redundant code
        nubus: Call proc_mkdir() not more than once per slot directory
        nubus: Validate slot resource IDs
        nubus: Fix log spam
        nubus: Use static functions where possible
        nubus: Fix up header split
        nubus: Avoid array underflow and overflow
        m68k/defconfig: Update defconfigs for v4.15-rc1
      aca21de2
  2. 29 Jan, 2018 39 commits
    • Linus Torvalds's avatar
      Merge tag 'for-4.16-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 31466f3e
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "Features or user visible changes:
      
         - fallocate: implement zero range mode
      
         - avoid losing data raid profile when deleting a device
      
         - tree item checker: more checks for directory items and xattrs
      
        Notable fixes:
      
         - raid56 recovery: don't use cached stripes, that could be
           potentially changed and a later RMW or recovery would lead to
           corruptions or failures
      
         - let raid56 try harder to rebuild damaged data, reading from all
           stripes if necessary
      
         - fix scrub to repair raid56 in a similar way as in the case above
      
        Other:
      
         - cleanups: device freeing, removed some call indirections, redundant
           bio_put/_get, unused parameters, refactorings and renames
      
         - RCU list traversal fixups
      
         - simplify mount callchain, remove recursing back when mounting a
           subvolume
      
         - plug for fsync, may improve bio merging on multiple devices
      
         - compression heurisic: replace heap sort with radix sort, gains some
           performance
      
         - add extent map selftests, buffered write vs dio"
      
      * tag 'for-4.16-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (155 commits)
        btrfs: drop devid as device_list_add() arg
        btrfs: get device pointer from device_list_add()
        btrfs: set the total_devices in device_list_add()
        btrfs: move pr_info into device_list_add
        btrfs: make btrfs_free_stale_devices() to match the path
        btrfs: rename btrfs_free_stale_devices() arg to skip_dev
        btrfs: make btrfs_free_stale_devices() argument optional
        btrfs: make btrfs_free_stale_device() to iterate all stales
        btrfs: no need to check for btrfs_fs_devices::seeding
        btrfs: Use IS_ALIGNED in btrfs_truncate_block instead of opencoding it
        Btrfs: noinline merge_extent_mapping
        Btrfs: add WARN_ONCE to detect unexpected error from merge_extent_mapping
        Btrfs: extent map selftest: dio write vs dio read
        Btrfs: extent map selftest: buffered write vs dio read
        Btrfs: add extent map selftests
        Btrfs: move extent map specific code to extent_map.c
        Btrfs: add helper for em merge logic
        Btrfs: fix unexpected EEXIST from btrfs_get_extent
        Btrfs: fix incorrect block_len in merge_extent_mapping
        btrfs: Remove unused readahead spinlock
        ...
      31466f3e
    • Linus Torvalds's avatar
      Merge tag '4.16-rc-SMB3' of git://git.samba.org/sfrench/cifs-2.6 · 6787dc24
      Linus Torvalds authored
      Pull cifs updates from Steve French:
       "Some fixes for stable, fixed SMB3 DFS support, SMB3 Direct (RDMA) and
        various bug fixes and cleanup"
      
      * tag '4.16-rc-SMB3' of git://git.samba.org/sfrench/cifs-2.6: (60 commits)
        fs/cifs/cifsacl.c Fixes typo in a comment
        update internal version number for cifs.ko
        cifs: add .splice_write
        CIFS: document tcon/ses/server refcount dance
        move a few externs to smbdirect.h to eliminate warning
        CIFS: zero sensitive data when freeing
        Cleanup some minor endian issues in smb3 rdma
        CIFS: dump IPC tcon in debug proc file
        CIFS: use tcon_ipc instead of use_ipc parameter of SMB2_ioctl
        CIFS: make IPC a regular tcon
        cifs: remove redundant duplicated assignment of pointer 'node'
        CIFS: SMBD: work around gcc -Wmaybe-uninitialized warning
        cifs: Fix autonegotiate security settings mismatch
        CIFS: SMBD: _smbd_get_connection() can be static
        CIFS: SMBD: Disable signing on SMB direct transport
        CIFS: SMBD: Add SMB Direct debug counters
        CIFS: SMBD: Upper layer performs SMB read via RDMA write through memory registration
        CIFS: SMBD: Read correct returned data length for RDMA write (SMB read) I/O
        CIFS: SMBD: Upper layer performs SMB write via RDMA read through memory registration
        CIFS: SMBD: Implement RDMA memory registration
        ...
      6787dc24
    • Linus Torvalds's avatar
      Merge tag 'iversion-v4.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux · a4b7fd7d
      Linus Torvalds authored
      Pull inode->i_version rework from Jeff Layton:
       "This pile of patches is a rework of the inode->i_version field. We
        have traditionally incremented that field on every inode data or
        metadata change. Typically this increment needs to be logged on disk
        even when nothing else has changed, which is rather expensive.
      
        It turns out though that none of the consumers of that field actually
        require this behavior. The only real requirement for all of them is
        that it be different iff the inode has changed since the last time the
        field was checked.
      
        Given that, we can optimize away most of the i_version increments and
        avoid dirtying inode metadata when the only change is to the i_version
        and no one is querying it. Queries of the i_version field are rather
        rare, so we can help write performance under many common workloads.
      
        This patch series converts existing accesses of the i_version field to
        a new API, and then converts all of the in-kernel filesystems to use
        it. The last patch in the series then converts the backend
        implementation to a scheme that optimizes away a large portion of the
        metadata updates when no one is looking at it.
      
        In my own testing this series significantly helps performance with
        small I/O sizes. I also got this email for Christmas this year from
        the kernel test robot (a 244% r/w bandwidth improvement with XFS over
        DAX, with 4k writes):
      
          https://lkml.org/lkml/2017/12/25/8
      
        A few of the earlier patches in this pile are also flowing to you via
        other trees (mm, integrity, and nfsd trees in particular)".
      
      * tag 'iversion-v4.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux: (22 commits)
        fs: handle inode->i_version more efficiently
        btrfs: only dirty the inode in btrfs_update_time if something was changed
        xfs: avoid setting XFS_ILOG_CORE if i_version doesn't need incrementing
        fs: only set S_VERSION when updating times if necessary
        IMA: switch IMA over to new i_version API
        xfs: convert to new i_version API
        ufs: use new i_version API
        ocfs2: convert to new i_version API
        nfsd: convert to new i_version API
        nfs: convert to new i_version API
        ext4: convert to new i_version API
        ext2: convert to new i_version API
        exofs: switch to new i_version API
        btrfs: convert to new i_version API
        afs: convert to new i_version API
        affs: convert to new i_version API
        fat: convert to new i_version API
        fs: don't take the i_lock in inode_inc_iversion
        fs: new API for handling inode->i_version
        ntfs: remove i_version handling
        ...
      a4b7fd7d
    • Linus Torvalds's avatar
      Merge tag 'upstream-4.16-rc1' of git://git.infradead.org/linux-ubifs · d1de762e
      Linus Torvalds authored
      Pull UBI/UBIFS updates from Richard Weinberger:
      
       - use the new fscrypt APIs
      
       - a fix for a Fastmap issue
      
       - other minor bug fixes
      
      * tag 'upstream-4.16-rc1' of git://git.infradead.org/linux-ubifs:
        ubi: block: Fix locking for idr_alloc/idr_remove
        mtd: ubi: wl: Fix error return code in ubi_wl_init()
        ubi: Fix copy/paste error in function documentation
        ubi: Fastmap: Fix typo
        ubifs: remove error message in ubifs_xattr_get
        ubi: fastmap: Erase outdated anchor PEBs during attach
        ubifs: switch to fscrypt_prepare_setattr()
        ubifs: switch to fscrypt_prepare_lookup()
        ubifs: switch to fscrypt_prepare_rename()
        ubifs: switch to fscrypt_prepare_link()
        ubifs: switch to fscrypt_file_open()
        ubi: fastmap: Clean up the initialization of pointer p
        ubi: fastmap: Use kmem_cache_free to deallocate memory
        ubi: Fix race condition between ubi volume creation and udev
        mtd: ubi: Use 'max_bad_blocks' to compute bad_peb_limit if available
        ubifs: Fix uninitialized variable in search_dh_cookie()
      d1de762e
    • Linus Torvalds's avatar
      Merge branch 'for-4.16/block' of git://git.kernel.dk/linux-block · 0a4b6e2f
      Linus Torvalds authored
      Pull block updates from Jens Axboe:
       "This is the main pull request for block IO related changes for the
        4.16 kernel. Nothing major in this pull request, but a good amount of
        improvements and fixes all over the map. This contains:
      
         - BFQ improvements, fixes, and cleanups from Angelo, Chiara, and
           Paolo.
      
         - Support for SMR zones for deadline and mq-deadline from Damien and
           Christoph.
      
         - Set of fixes for bcache by way of Michael Lyle, including fixes
           from himself, Kent, Rui, Tang, and Coly.
      
         - Series from Matias for lightnvm with fixes from Hans Holmberg,
           Javier, and Matias. Mostly centered around pblk, and the removing
           rrpc 1.2 in preparation for supporting 2.0.
      
         - A couple of NVMe pull requests from Christoph. Nothing major in
           here, just fixes and cleanups, and support for command tracing from
           Johannes.
      
         - Support for blk-throttle for tracking reads and writes separately.
           From Joseph Qi. A few cleanups/fixes also for blk-throttle from
           Weiping.
      
         - Series from Mike Snitzer that enables dm to register its queue more
           logically, something that's alwways been problematic on dm since
           it's a stacked device.
      
         - Series from Ming cleaning up some of the bio accessor use, in
           preparation for supporting multipage bvecs.
      
         - Various fixes from Ming closing up holes around queue mapping and
           quiescing.
      
         - BSD partition fix from Richard Narron, fixing a problem where we
           can't mount newer (10/11) FreeBSD partitions.
      
         - Series from Tejun reworking blk-mq timeout handling. The previous
           scheme relied on atomic bits, but it had races where we would think
           a request had timed out if it to reused at the wrong time.
      
         - null_blk now supports faking timeouts, to enable us to better
           exercise and test that functionality separately. From me.
      
         - Kill the separate atomic poll bit in the request struct. After
           this, we don't use the atomic bits on blk-mq anymore at all. From
           me.
      
         - sgl_alloc/free helpers from Bart.
      
         - Heavily contended tag case scalability improvement from me.
      
         - Various little fixes and cleanups from Arnd, Bart, Corentin,
           Douglas, Eryu, Goldwyn, and myself"
      
      * 'for-4.16/block' of git://git.kernel.dk/linux-block: (186 commits)
        block: remove smart1,2.h
        nvme: add tracepoint for nvme_complete_rq
        nvme: add tracepoint for nvme_setup_cmd
        nvme-pci: introduce RECONNECTING state to mark initializing procedure
        nvme-rdma: remove redundant boolean for inline_data
        nvme: don't free uuid pointer before printing it
        nvme-pci: Suspend queues after deleting them
        bsg: use pr_debug instead of hand crafted macros
        blk-mq-debugfs: don't allow write on attributes with seq_operations set
        nvme-pci: Fix queue double allocations
        block: Set BIO_TRACE_COMPLETION on new bio during split
        blk-throttle: use queue_is_rq_based
        block: Remove kblockd_schedule_delayed_work{,_on}()
        blk-mq: Avoid that blk_mq_delay_run_hw_queue() introduces unintended delays
        blk-mq: Rename blk_mq_request_direct_issue() into blk_mq_request_issue_directly()
        lib/scatterlist: Fix chaining support in sgl_alloc_order()
        blk-throttle: track read and write request individually
        block: add bdev_read_only() checks to common helpers
        block: fail op_is_write() requests to read-only partitions
        blk-throttle: export io_serviced_recursive, io_service_bytes_recursive
        ...
      0a4b6e2f
    • Linus Torvalds's avatar
      Merge tag 'edac_for_4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp · 9697e9da
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
      
       - new EDAC driver for some TI SOCs (Tero Kristo)
      
       - small cleanups
      
      * tag 'edac_for_4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
        EDAC, mv64x60: Fix an error handling path
        EDAC, ti: Add support for TI keystone and DRA7xx EDAC
        EDAC, octeon: Fix an uninitialized variable warning
      9697e9da
    • Linus Torvalds's avatar
      Merge tag 'regmap-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · b5856f97
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "A very busy release for regmap, all fairly specialist stuff but
        useful:
      
         - Support for disabling locking from Bartosz Golaszewski, allowing
           users that handle their own locking to save some overhead.
      
         - Support for hwspinlocks in syscons in MFD from Baolin Wang, this is
           going through the regmap tree since the first users turned up some
           some cases that needed interface tweaks with 0 being used as a
           syscon identifier.
      
         - Support for devices with no read or write flag from Andrew F.
           Davis.
      
         - Basic support for devices on SoundWire buses from Vinod Koul"
      
      * tag 'regmap-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        mfd: syscon: Add hardware spinlock support
        regmap: Allow empty read/write_flag_mask
        regcache: flat: Un-inline index lookup from cache access
        regmap: Add SoundWire bus support
        regmap: Add one flag to indicate if a hwlock should be used
        regmap: debugfs: document why we don't create the debugfs entries
        regmap: debugfs: emit a debug message when locking is disabled
        regmap: use proper part of work_buf for storing val
        regmap: potentially duplicate the name string stored in regmap
        regmap: Disable debugfs when locking is disabled
        regmap: rename regmap_lock_unlock_empty() to regmap_lock_unlock_none()
        regmap: allow to disable all locking mechanisms
        regmap: Remove the redundant config to select hwspinlock
      b5856f97
    • Linus Torvalds's avatar
      Merge tag 'regulator-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · dc38787a
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "This is a quiet release in terms of code volume but a fairly big one
        in terms of framework changes - we've got one long awaited feature in
        the form of runtime configuration of suspend and the start of coupled
        regulator support too:
      
         - Support for modifying the voltage and enable configuration devices
           will have in suspend, contributed by Chunyan Zhang.
      
         - Support for the Spreadtrum SC2731, contributed by Erick Chen.
      
         - The start of changes to support coupled regulators from Maciej
           Purski, the rest of the series should arrive for v4.17"
      
      * tag 'regulator-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: Fix build error
        regulator: core: Refactor regulator_list_voltage()
        regulator: core: Move of_find_regulator_by_node() to of_regulator.c
        regulator: add PM suspend and resume hooks
        regulator: empty the old suspend functions
        regulator: leave one item to record whether regulator is enabled
        regulator: make regulator voltage be an array to support more states
        regulator: added support for suspend states
        regulator: qcom_spmi: Use regmap helpers for enable/disable/is_enabled callback
        regulator: sc2731: Fix defines for SC2731_WR_UNLOCK and SC2731_PWR_WR_PROT_VALUE
        regulator: fix incorrect indentation of two assignment statements
        regulator: sc2731: Add regulator driver to support Spreadtrum SC2731 PMIC
        regulator: Add Spreadtrum SC2731 regulator documentation
        regulator: Update code examples in documentation
        MAINTAINERS: regulator: Add Documentation/power/regulator/
        regulator: tps65218: Add NULL test for devm_kzalloc call
        regulator: tps65218: Remove unused enum tps65218_regulators
      dc38787a
    • Linus Torvalds's avatar
      Merge tag 'spi-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 8e326471
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "Quite a quiet release for SPI, there are no changes at all to the core
        and not that many changes to drivers. Highlights of those driver
        changes include:
      
         - SH MSIOF support for GPIO chip selects contributed by Geert
           Uytterhoeven.
      
         - Full duplex support for a3700 contributed by Maxime Chevallier.
      
         - Support for DMA transfers on Atmel devices that require a bounce
           buffer contributed by Radu Pirea"
      
      * tag 'spi-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (31 commits)
        spi: dw: Remove unused members from struct chip_data
        spi: orion: Fix a resource leak if the optional "axi" clk is deferred
        spi: a3700: Remove endianness swapping for full-duplex transfers
        spi: a3700: Remove endianness swapping functions when accessing FIFOs
        spi: a3700: Add full-duplex support
        spi: a3700: Allow to enable or disable FIFO mode
        spi: a3700: Set frequency limits at startup
        spi: a3700: Clear DATA_OUT when performing a read
        spi: orion: Fix clock resource by adding an optional bus clock
        spi: s3c64xx: add SPDX identifier
        spi: imx: do not access registers while clocks disabled
        spi: atmel: Implements transfers with bounce buffer
        spi: sh-msiof: Fix timeout failures for TX-only DMA transfers
        spi: spi-fsl-dspi: account for const type of of_device_id.data
        spi: bcm53xx: simplify reading SPI data
        spi: sirf: account for const type of of_device_id.data
        spi: pxa2xx: Use gpiod_put() not gpiod_free()
        spi: pxa2xx: avoid redundant gpio_to_desc(desc_to_gpio()) round-trip
        spi: sh-msiof: Document hardware limitations related to chip selects
        spi: sh-msiof: Implement cs-gpios configuration
        ...
      8e326471
    • Linus Torvalds's avatar
      Merge tag 'mmc-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 0bae60fc
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
       "There are two major achievements for MMC in this release, which
        deserves to be specially highlighted.
      
        First, we have converted the MMC block device from using the legacy
        blk interface into using the modern blkmq interface. Not only do we
        get all the nice effects from using blkmq, but it also means that new
        fresh nice code replaces old rusty code. Great news to everybody that
        cares about MMC/SD!
      
        It should also be noted that converting to blkmq has not been trivial,
        mostly because of that we have been carrying too much of MMC specific
        optimizations for the I/O request path, rather than striving to move
        these to the generic blk layer. Hopefully we won't be doing that
        mistake, ever again.
      
        Special thanks to Adrian Hunter (Intel) and to Linus Walleij (Linaro),
        who both have been working on this for quite some time!
      
        Second, on top of the blkmq deployment, we have enabled full support
        the eMMC command queuing feature, introduced in the eMMC v.5.1 spec.
        This also includes an implementation of a host driver library,
        supporting the corresponding CQHCI HW. Ideally, those controllers that
        supports CQHCI should only need some minor adaptations to make this
        play.
      
        So far the sdhci-pci driver for the Intel GLKs and the sdhci-of-arasan
        driver used on Rockchip RK3399, have enabled support for eMMC command
        queueing.
      
        Worth to highlight is also that, implementing the eMMC command queuing
        support has been a collaborative effort, as several people from
        Codeaurora, Rockchip, Intel and Linaro have been involved. However,
        the work has been driven by Adrian Hunter (Intel).
      
        In some shadow of the above, here are the rest of the highlights:
      
        MMC core:
         - Don't remove non-removable cards during system suspend
         - Add a slot-gpio helper to check capability of GPIO WP detection
      
        MMC host:
         - sdhci: Cleanups and improvements of some wakeup related code
         - sdhci-pci-arasan: New variant to support Arasan PCI HW with integrated phy
         - sdhci-acpi: Avoid broken UHS transfer modes on Intel CHT
         - sdhci-acpi: Add support for ACPI HID of AMD Controller with HS400
         - sdhci_f_sdh30: Add ACPI support
         - sdhci-esdhc-imx: Enable/disable clock at runtime suspend/resume
         - sdhci-of-esdhc: A few minor fixes
         - mmci: Add support for new STM32 variant
         - renesas_sdhi: enable R-Car D3 (r8a77995) support
         - tmio/renesas_sdhi: Re-structuring, cleanups and modernizations"
      
      * tag 'mmc-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (96 commits)
        mmc: mmci: fix error return code in mmci_probe()
        mmc: davinci: suppress error message on EPROBE_DEFER
        mmc: davinci: dont' use module_platform_driver_probe()
        mmc: tmio: hide unused tmio_mmc_clk_disable/tmio_mmc_clk_enable functions
        mmc: mmci: Add STM32 variant
        mmc: mmci: Add support for setting pad type via pinctrl
        mmc: mmci: Don't pretend all variants to have OPENDRAIN bit
        mmc: mmci: Don't pretend all variants to have MCI_STARBITERR flag
        mmc: mmci: Don't pretend all variants to have MMCIMASK1 register
        mmc: tmio: refactor .get_ro hook
        mmc: slot-gpio: add a helper to check capability of GPIO WP detection
        mmc: tmio: remove dma_ops from tmio_mmc_host_probe() argument
        mmc: tmio: move {tmio_}mmc_of_parse() to tmio_mmc_host_alloc()
        mmc: tmio: move clk_enable/disable out of tmio_mmc_host_probe()
        mmc: tmio: ioremap memory resource in tmio_mmc_host_alloc()
        mmc: sh_mmcif: remove redundant initialization of 'opc'
        mmc: sdhci: Rework sdhci_enable_irq_wakeups()
        mmc: sdhci: Handle failure of enable_irq_wake()
        mmc: sdhci: Stop exporting sdhci_enable_irq_wakeups()
        mmc: sdhci-pci: Use device wakeup capability to determine MMC_PM_WAKE_SDIO_IRQ capability
        ...
      0bae60fc
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.16' of... · 47d5cc5b
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon updates from Guenter Roeck:
      
       - New driver for W83773G
      
       - Fan control support for PMBus drivers
      
       - Improvements and minor fixes in several drivers
      
      * tag 'hwmon-for-linus-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (32 commits)
        hwmon: (dell-smm) Disable fan support for Dell Vostro 3360
        hwmon: (dell-smm) Disable fan support for Dell Inspiron 7720
        hwmon: (dell-smm) Enable broken functionality via "force" module param
        hwmon: (k10temp) Add temperature offset for Ryzen 1900X
        hwmon: (lm75) Fix trailing semicolon
        hwmon: (ina2xx) Fix access to uninitialized mutex
        hwmon: (pmbus/ir35221) Remove unnecessary scaling
        hwmon: (sht3x) wait predefined limits loading complete before access
        hwmon: (pmbus/ibm-cffps) Add dependency on LEDS_CLASS
        hwmon: (pmbus/cffps) Add led class device for power supply fault led
        hwmon: (pmbus) cffps: Add PMBUS_SKIP_STATUS_CHECK
        hwmon: (aspeed-pwm-tacho) Deassert reset in probe
        dt-bindings: hwmon: aspeed-pwm-tacho: Add reset node
        hwmon: (pmbus) cffps: Add debugfs entries
        hwmon: (pmbus) Export pmbus device debugfs directory entry
        hwmon: (w83773g) Fix fault detection and reporting
        hwmon: (hih6130) Fix documentation of struct hih6130
        hwmon: (iio_hwmon) Fix documentation of struct iio_hwmon_state
        hwmon: (sht15) Fix parameter documentation of sht15_crc8()
        hwmon: (sht21) Fix documentation of struct sht21
        ...
      47d5cc5b
    • Linus Torvalds's avatar
      Merge tag 'mtd/for-4.16' of git://git.infradead.org/linux-mtd · 0fc7e746
      Linus Torvalds authored
      Pull MTD updates from Boris Brezillon:
       "MTD core changes:
         - Rework core functions to avoid duplicating generic checks in
           NAND/OneNAND sub-layers
         - Update the MAINTAINERS entry to reflect the fact that MTD
           maintainers now use a single git tree
      
        MTD driver changes:
         - CFI: use macros instead of inline functions to limit stack usage
           and make KASAN happy
      
        NAND core changes:
         - Fix NAND_CMD_NONE handling in nand_command[_lp]() hooks
         - Introduce the ->exec_op() infrastructure
         - Rework NAND buffers handling
         - Fix ECC requirements for K9F4G08U0D
         - Fix nand_do_read_oob() to return the number of bitflips
         - Mark K9F1G08U0E as not supporting subpage writes
      
        NAND driver changes:
         - MTK: Rework the driver to support new IP versions
         - OMAP OneNAND: Full rework to use new APIs (libgpio, dmaengine) and
           fix DT support
         - Marvell: Add a new driver to replace the pxa3xx one
      
        SPI NOR core changes:
         - Add support to new ISSI and Cypress/Spansion memory parts.
         - Fix support of Micron memories by checking error bits in the FSR.
         - Fix update of block-protection bits by reading back the SR.
         - Restore the internal state of the SPI flash memory when removing
           the device.
      
        SPI NOR driver changes:
         - Maintenance for Freescale, Intel and Metiatek drivers.
         - Add support of the direct access mode for the Cadence QSPI
           controller"
      
      * tag 'mtd/for-4.16' of git://git.infradead.org/linux-mtd: (93 commits)
        mtd: nand: sunxi: Fix ECC strength choice
        mtd: nand: gpmi: Fix subpage reads
        mtd: nand: Fix build issues due to an anonymous union
        mtd: nand: marvell: Fix missing memory allocation modifier
        mtd: nand: marvell: remove redundant variable 'oob_len'
        mtd: nand: marvell: fix spelling mistake: "suceed"-> "succeed"
        mtd: onenand: omap2: Remove redundant dev_err call in omap2_onenand_probe()
        mtd: Remove duplicate checks on mtd_oob_ops parameter
        mtd: Fallback to ->_read/write_oob() when ->_read/write() is missing
        mtd: mtdpart: Make ECC stat handling consistent
        mtd: onenand: omap2: print resource using %pR format string
        mtd: mtk-nor: modify functions' name more generally
        mtd: onenand: samsung: remove incorrect __iomem annotation
        MAINTAINERS: Add entry for Marvell NAND controller driver
        ARM: OMAP2+: Remove gpmc-onenand
        mtd: onenand: omap2: Configure driver from DT
        mtd: onenand: omap2: Decouple DMA enabling from INT pin availability
        mtd: onenand: omap2: Do not make delay for GPIO OMAP3 specific
        mtd: onenand: omap2: Convert to use dmaengine for memcpy
        mtd: onenand: omap2: Unify OMAP2 and OMAP3 DMA implementation
        ...
      0fc7e746
    • Linus Torvalds's avatar
      Merge tag 'for-backlight-next-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · aa5e75bc
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       "Fix-ups:
         - Deprecate pci_get_bus_and_slot() in apple_bl
      
        Bug Fixes:
         - Enable Chip Select when conducting SPI transfers in corgi_lcd,
           tdo24m, tosa_lcd"
      
      * tag 'for-backlight-next-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        backlight: tdo24m: Fix the SPI CS between transfers
        backlight: apple_bl: Deprecate pci_get_bus_and_slot()
      aa5e75bc
    • Linus Torvalds's avatar
      Merge tag 'mfd-next-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · bc4e1183
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "New Drivers:
         - Add support for RAVE Supervisory Processor
      
        Moved drivers:
         - Move Realtek Card Reader Driver to Misc
      
        New Device Support:
         - Add support for Pinctrl to axp20x
      
        New Functionality:
         - Add resume support to atmel-flexcom
      
        Fix-ups:
         - Split MFD (mfd) and userspace handlers (platform) in cros_ec
         - Fix trivial (whitespace, spelling) issue(s) in pcf50633-core
         - Clean-up error handling in ab8500-debugfs
         - General tidying up in tmio_core
         - Kconfig fix-ups for qcom-pm8xxx
         - Licensing changes (SPDX) to stm32-lptimer, stm32-timers
         - Device Tree fixups in mc13xxx
         - Simplify/remove unused code in cros_ec_spi, axp20x, ti_am335x_tscadc,
           kempld-core, intel_soc_pmic_core.c, ab8500-debugfs"
      
      * tag 'mfd-next-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (32 commits)
        mfd: lpc_ich: Do not touch SPI-NOR write protection bit on Apollo Lake
        mfd: axp20x: Mark axp288 CHRG_BAK_CTRL register volatile
        mfd: ab8500: Introduce DEFINE_SHOW_ATTRIBUTE() macro
        atmel_flexcom: Support resuming after a chip reset
        mfd: Remove duplicate includes
        dt-bindings: mfd: mc13xxx: Add the unit address to sysled
        mfd: stm32: Adopt SPDX identifier
        mfd: axp20x: Add pinctrl cell for AXP813
        mfd: pm8xxx: Make elegible for COMPILE_TEST
        mfd: kempld-core: Use resource_size function on resource object
        mfd: tmio: Move register macros to tmio_core.c
        mfd: cros ec: spi: Simplify delay handling between SPI messages
        mfd: palmas: Assign the right powerhold mask for tps65917
        mfd: ab8500-debugfs: Use common error handling code in ab8500_print_modem_registers()
        mfd: ti_am335x_tscadc: Remove redundant assignment to node
        mfd: pcf50633: Fix spelling mistake: 'Falied' -> 'Failed'
        dt-bindings: watchdog: Add bindings for RAVE SP watchdog driver
        watchdog: Add RAVE SP watchdog driver
        mfd: Add driver for RAVE Supervisory Processor
        serdev: Introduce devm_serdev_device_open()
        ...
      bc4e1183
    • Linus Torvalds's avatar
      Merge tag 'pnp-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 1c7385db
      Linus Torvalds authored
      Pull PNP updates from Rafael Wysocki:
       "These make pnpbios_thread_init() use PTR_ERR_OR_ZERO() and remove an
        unnecessary kallsyms include from drivers/pnp/quirks.c (Vasyl
        Gomonovych, Sergey Senozhatsky)"
      
      * tag 'pnp-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PNP: pnpbios: Use PTR_ERR_OR_ZERO()
        PNP: remove unneeded kallsyms include
      1c7385db
    • Anand Jain's avatar
      btrfs: drop devid as device_list_add() arg · 3acbcbfc
      Anand Jain authored
      As struct btrfs_disk_super is being passed, so it can get devid
      the same way its parent does.
      Signed-off-by: default avatarAnand Jain <anand.jain@oracle.com>
      Reviewed-by: default avatarJosef Bacik <jbacik@fb.com>
      Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
      3acbcbfc
    • Anand Jain's avatar
      btrfs: get device pointer from device_list_add() · e124ece5
      Anand Jain authored
      Instead of pointer to btrfs_fs_devices as an arg in device_list_add()
      better to get pointer to btrfs_device as return value, then we have
      both, pointer to btrfs_device and btrfs_fs_devices. btrfs_device is
      needed to handle reappearing missing device.
      Signed-off-by: default avatarAnand Jain <anand.jain@oracle.com>
      Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
      e124ece5
    • Linus Torvalds's avatar
      Merge tag 'acpi-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 1a9a126b
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "The majority of this is an update of the ACPICA kernel code to
        upstream revision 20171215 with a cosmetic change and a maintainers
        information update on top of it.
      
        The rest is mostly some minor fixes and cleanups in the ACPI drivers
        and cleanups to initialization on x86.
      
        Specifics:
      
         - Update the ACPICA kernel code to upstream revision 20171215 including:
            * Support for ACPI 6.0A changes in the NFIT table (Bob Moore)
            * Local 64-bit divide in string conversions (Bob Moore)
            * Fix for a regression in acpi_evaluate_object_type() (Bob Moore)
            * Fixes for memory leaks during package object resolution (Bob
              Moore)
            * Deployment of safe version of strncpy() (Bob Moore)
            * Debug and messaging updates (Bob Moore)
            * Support for PDTT, SDEV, TPM2 tables in iASL and tools (Bob
              Moore)
            * Null pointer dereference avoidance in Op and cleanups (Colin Ian
              King)
            * Fix for memory leak from building prefixed pathname (Erik
              Schmauss)
            * Coding style fixes, disassembler and compiler updates (Hanjun
              Guo, Erik Schmauss)
            * Additional PPTT flags from ACPI 6.2 (Jeremy Linton)
            * Fix for an off-by-one error in acpi_get_timer_duration()
              (Jung-uk Kim)
            * Infinite loop detection timeout and utilities cleanups (Lv
              Zheng)
            * Windows 10 version 1607 and 1703 OSI strings (Mario
              Limonciello)
      
         - Update ACPICA information in MAINTAINERS to reflect the current
           status of ACPICA maintenance and rename a local variable in one
           function to match the corresponding upstream code (Rafael Wysocki)
      
         - Clean up ACPI-related initialization on x86 (Andy Shevchenko)
      
         - Add support for Intel Merrifield to the ACPI GPIO code (Andy
           Shevchenko)
      
         - Clean up ACPI PMIC drivers (Andy Shevchenko, Arvind Yadav)
      
         - Fix the ACPI Generic Event Device (GED) driver to free IRQs on
           shutdown and clean up the PCI IRQ Link driver (Sinan Kaya)
      
         - Make the GHES code call into the AER driver on all errors and clean
           up the ACPI APEI code (Colin Ian King, Tyler Baicar)
      
         - Make the IA64 ACPI NUMA code parse all SRAT entries (Ganapatrao
           Kulkarni)
      
         - Add a lid switch blacklist to the ACPI button driver and make it
           print extra debug messages on lid events (Hans de Goede)
      
         - Add quirks for Asus GL502VSK and UX305LA to the ACPI battery driver
           and clean it up somewhat (Bjørn Mork, Kai-Heng Feng)
      
         - Add device link for CHT SD card dependency on I2C to the ACPI LPSS
           (Intel SoCs) driver and make it avoid creating platform device
           objects for devices without MMIO resources (Adrian Hunter, Hans de
           Goede)
      
         - Fix the ACPI GPE mask kernel command line parameter handling
           (Prarit Bhargava)
      
         - Fix the handling of (incorrectly exposed) backlight interfaces
           without LCD (Hans de Goede)
      
         - Fix the usage of debugfs_create_*() in the ACPI EC driver (Geert
           Uytterhoeven)"
      
      * tag 'acpi-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (62 commits)
        ACPI/PCI: pci_link: reduce verbosity when IRQ is enabled
        ACPI / LPSS: Do not instiate platform_dev for devs without MMIO resources
        ACPI / PMIC: Convert to use builtin_platform_driver() macro
        ACPI / x86: boot: Propagate error code in acpi_gsi_to_irq()
        ACPICA: Update version to 20171215
        ACPICA: trivial style fix, no functional change
        ACPICA: Fix a couple memory leaks during package object resolution
        ACPICA: Recognize the Windows 10 version 1607 and 1703 OSI strings
        ACPICA: DT compiler: prevent error if optional field at the end of table is not present
        ACPICA: Rename a global variable, no functional change
        ACPICA: Create and deploy safe version of strncpy
        ACPICA: Cleanup the global variables and update comments
        ACPICA: Debugger: fix slight indentation issue
        ACPICA: Fix a regression in the acpi_evaluate_object_type() interface
        ACPICA: Update for a few debug output statements
        ACPICA: Debug output, no functional change
        ACPI: EC: Fix debugfs_create_*() usage
        ACPI / video: Default lcd_only to true on Win8-ready and newer machines
        ACPI / x86: boot: Don't setup SCI on HW-reduced platforms
        ACPI / x86: boot: Use INVALID_ACPI_IRQ instead of 0 for acpi_sci_override_gsi
        ...
      1a9a126b
    • Linus Torvalds's avatar
      Merge tag 'pm-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 7f3fdd40
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "This includes some infrastructure changes in the PM core, mostly
        related to integration between runtime PM and system-wide suspend and
        hibernation, plus some driver changes depending on them and fixes for
        issues in that area which have become quite apparent recently.
      
        Also included are changes making more x86-based systems use the Low
        Power Sleep S0 _DSM interface by default, which turned out to be
        necessary to handle power button wakeups from suspend-to-idle on
        Surface Pro3.
      
        On the cpufreq front we have fixes and cleanups in the core, some new
        hardware support, driver updates and the removal of some unused code
        from the CPU cooling thermal driver.
      
        Apart from this, the Operating Performance Points (OPP) framework is
        prepared to be used with power domains in the future and there is a
        usual bunch of assorted fixes and cleanups.
      
        Specifics:
      
         - Define a PM driver flag allowing drivers to request that their
           devices be left in suspend after system-wide transitions to the
           working state if possible and add support for it to the PCI bus
           type and the ACPI PM domain (Rafael Wysocki).
      
         - Make the PM core carry out optimizations for devices with driver PM
           flags set in some cases and make a few drivers set those flags
           (Rafael Wysocki).
      
         - Fix and clean up wrapper routines allowing runtime PM device
           callbacks to be re-used for system-wide PM, change the generic
           power domains (genpd) framework to stop using those routines
           incorrectly and fix up a driver depending on that behavior of genpd
           (Rafael Wysocki, Ulf Hansson, Geert Uytterhoeven).
      
         - Fix and clean up the PM core's device wakeup framework and
           re-factor system-wide PM core code related to device wakeup
           (Rafael Wysocki, Ulf Hansson, Brian Norris).
      
         - Make more x86-based systems use the Low Power Sleep S0 _DSM
           interface by default (to fix power button wakeup from
           suspend-to-idle on Surface Pro3) and add a kernel command line
           switch to tell it to ignore the system sleep blacklist in the ACPI
           core (Rafael Wysocki).
      
         - Fix a race condition related to cpufreq governor module removal and
           clean up the governor management code in the cpufreq core (Rafael
           Wysocki).
      
         - Drop the unused generic code related to the handling of the static
           power energy usage model in the CPU cooling thermal driver along
           with the corresponding documentation (Viresh Kumar).
      
         - Add mt2712 support to the Mediatek cpufreq driver (Andrew-sh
           Cheng).
      
         - Add a new operating point to the imx6ul and imx6q cpufreq drivers
           and switch the latter to using clk_bulk_get() (Anson Huang, Dong
           Aisheng).
      
         - Add support for multiple regulators to the TI cpufreq driver along
           with a new DT binding related to that and clean up that driver
           somewhat (Dave Gerlach).
      
         - Fix a powernv cpufreq driver regression leading to incorrect CPU
           frequency reporting, fix that driver to deal with non-continguous
           P-states correctly and clean it up (Gautham Shenoy, Shilpasri
           Bhat).
      
         - Add support for frequency scaling on Armada 37xx SoCs through the
           generic DT cpufreq driver (Gregory CLEMENT).
      
         - Fix error code paths in the mvebu cpufreq driver (Gregory CLEMENT).
      
         - Fix a transition delay setting regression in the longhaul cpufreq
           driver (Viresh Kumar).
      
         - Add Skylake X (server) support to the intel_pstate cpufreq driver
           and clean up that driver somewhat (Srinivas Pandruvada).
      
         - Clean up the cpufreq statistics collection code (Viresh Kumar).
      
         - Drop cluster terminology and dependency on physical_package_id from
           the PSCI driver and drop dependency on arm_big_little from the SCPI
           cpufreq driver (Sudeep Holla).
      
         - Add support for system-wide suspend and resume to the RAPL power
           capping driver and drop a redundant semicolon from it (Zhen Han,
           Luis de Bethencourt).
      
         - Make SPI domain validation (in the SCSI SPI transport driver) and
           system-wide suspend mutually exclusive as they rely on the same
           underlying mechanism and cannot be carried out at the same time
           (Bart Van Assche).
      
         - Fix the computation of the amount of memory to preallocate in the
           hibernation core and clean up one function in there (Rainer Fiebig,
           Kyungsik Lee).
      
         - Prepare the Operating Performance Points (OPP) framework for being
           used with power domains and clean up one function in it (Viresh
           Kumar, Wei Yongjun).
      
         - Clean up the generic sysfs interface for device PM (Andy
           Shevchenko).
      
         - Fix several minor issues in power management frameworks and clean
           them up a bit (Arvind Yadav, Bjorn Andersson, Geert Uytterhoeven,
           Gustavo Silva, Julia Lawall, Luis de Bethencourt, Paul Gortmaker,
           Sergey Senozhatsky, gaurav jindal).
      
         - Make it easier to disable PM via Kconfig (Mark Brown).
      
         - Clean up the cpupower and intel_pstate_tracer utilities (Doug
           Smythies, Laura Abbott)"
      
      * tag 'pm-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (89 commits)
        PCI / PM: Remove spurious semicolon
        cpufreq: scpi: remove arm_big_little dependency
        drivers: psci: remove cluster terminology and dependency on physical_package_id
        powercap: intel_rapl: Fix trailing semicolon
        dmaengine: rcar-dmac: Make DMAC reinit during system resume explicit
        PM / runtime: Allow no callbacks in pm_runtime_force_suspend|resume()
        PM / hibernate: Drop unused parameter of enough_swap
        PM / runtime: Check ignore_children in pm_runtime_need_not_resume()
        PM / runtime: Rework pm_runtime_force_suspend/resume()
        PM / genpd: Stop/start devices without pm_runtime_force_suspend/resume()
        cpufreq: powernv: Dont assume distinct pstate values for nominal and pmin
        cpufreq: intel_pstate: Add Skylake servers support
        cpufreq: intel_pstate: Replace bxt_funcs with core_funcs
        platform/x86: surfacepro3: Support for wakeup from suspend-to-idle
        ACPI / PM: Use Low Power S0 Idle on more systems
        PM / wakeup: Print warn if device gets enabled as wakeup source during sleep
        PM / domains: Don't skip driver's ->suspend|resume_noirq() callbacks
        PM / core: Propagate wakeup_path status flag in __device_suspend_late()
        PM / core: Re-structure code for clearing the direct_complete flag
        powercap: add suspend and resume mechanism for SOC power limit
        ...
      7f3fdd40
    • Linus Torvalds's avatar
      Merge tag 'sound-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 1c1f395b
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "The major changes in the core API side in this cycle are the still
        on-going ASoC componentization works. Other than that, only few small
        changes such as 20bit PCM format support are found.
      
        Meanwhile the rest majority of changes are for ASoC drivers:
      
         - Large cleanups of some of the TI CODEC drivers
      
         - Continued work on Intel ASoC stuff for new quirks, ACPI GPIO
           handling, Kconfigs and lots of cleanups
      
         - Refactoring of the Freescale SSI driver, as preliminary work for
           the upcoming changes
      
         - Work on ST DFSDM driver, including the required IIO patches
      
         - New drivers for Allwinner A83T, Maxim MAX89373, SocioNext UiniPhier
           EVEA Tempo Semiconductor TSCS42xx and TI PCM816x, TAS5722 and
           TAS6424 devices
      
         - Removal of dead codes for SN95031 and board drivers
      
        Last but not least, a few HD-audio and USB-audio quirks are included
        as usual, too"
      
      * tag 'sound-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (303 commits)
        ALSA: hda - Reduce the suspend time consumption for ALC256
        ASoC: use seq_file to dump the contents of dai_list,platform_list and codec_list
        ASoC: soc-core: add missing EXPORT_SYMBOL_GPL() for snd_soc_rtdcom_lookup
        IIO: ADC: stm32-dfsdm: remove unused variable again
        ASoC: bcm2835: fix hw_params error when device is in prepared state
        ASoC: mxs-sgtl5000: Do not print error on probe deferral
        ASoC: sgtl5000: Do not print error on probe deferral
        ASoC: Intel: remove select on non-existing SND_SOC_INTEL_COMMON
        ALSA: usb-audio: Support changing input on Sound Blaster E1
        ASoC: Intel: remove second duplicated assignment to pointer 'res'
        ALSA: hda/realtek - update ALC215 depop optimize
        ALSA: hda/realtek - Support headset mode for ALC215/ALC285/ALC289
        ALSA: pcm: Fix trailing semicolon
        ASoC: add Component level .read/.write
        ASoC: cx20442: fix regression by adding back .read/.write
        ASoC: uda1380: fix regression by adding back .read/.write
        ASoC: tlv320dac33: fix regression by adding back .read/.write
        ALSA: hda - Use IS_REACHABLE() for dependency on input
        IIO: ADC: stm32-dfsdm: fix static check warning
        IIO: ADC: stm32-dfsdm: code optimization
        ...
      1c1f395b
    • Linus Torvalds's avatar
      Merge tag 'init_task-20180117' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · 49f9c355
      Linus Torvalds authored
      Pull init_task initializer cleanups from David Howells:
       "It doesn't seem useful to have the init_task in a header file rather
        than in a normal source file. We could consolidate init_task handling
        instead and expand out various macros.
      
        Here's a series of patches that consolidate init_task handling:
      
         (1) Make THREAD_SIZE available to vmlinux.lds for cris, hexagon and
             openrisc.
      
         (2) Alter the INIT_TASK_DATA linker script macro to set
             init_thread_union and init_stack rather than defining these in C.
      
             Insert init_task and init_thread_into into the init_stack area in
             the linker script as appropriate to the configuration, with
             different section markers so that they end up correctly ordered.
      
             We can then get merge ia64's init_task.c into the main one.
      
             We then have a bunch of single-use INIT_*() macros that seem only
             to be macros because they used to be used per-arch. We can then
             expand these in place of the user and get rid of a few lines and
             a lot of backslashes.
      
         (3) Expand INIT_TASK() in place.
      
         (4) Expand in place various small INIT_*() macros that are defined
             conditionally. Expand them and surround them by #if[n]def/#endif
             in the .c file as it takes fewer lines.
      
         (5) Expand INIT_SIGNALS() and INIT_SIGHAND() in place.
      
         (6) Expand INIT_STRUCT_PID in place.
      
        These macros can then be discarded"
      
      * tag 'init_task-20180117' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        Expand INIT_STRUCT_PID and remove
        Expand the INIT_SIGNALS and INIT_SIGHAND macros and remove
        Expand various INIT_* macros and remove
        Expand INIT_TASK() in init/init_task.c and remove
        Construct init thread stack in the linker script rather than by union
        openrisc: Make THREAD_SIZE available to vmlinux.lds
        hexagon: Make THREAD_SIZE available to vmlinux.lds
        cris: Make THREAD_SIZE available to vmlinux.lds
      49f9c355
    • Jeff Layton's avatar
      fs: handle inode->i_version more efficiently · f02a9ad1
      Jeff Layton authored
      Since i_version is mostly treated as an opaque value, we can exploit that
      fact to avoid incrementing it when no one is watching. With that change,
      we can avoid incrementing the counter on writes, unless someone has
      queried for it since it was last incremented. If the a/c/mtime don't
      change, and the i_version hasn't changed, then there's no need to dirty
      the inode metadata on a write.
      
      Convert the i_version counter to an atomic64_t, and use the lowest order
      bit to hold a flag that will tell whether anyone has queried the value
      since it was last incremented.
      
      When we go to maybe increment it, we fetch the value and check the flag
      bit.  If it's clear then we don't need to do anything if the update
      isn't being forced.
      
      If we do need to update, then we increment the counter by 2, and clear
      the flag bit, and then use a CAS op to swap it into place. If that
      works, we return true. If it doesn't then do it again with the value
      that we fetch from the CAS operation.
      
      On the query side, if the flag is already set, then we just shift the
      value down by 1 bit and return it. Otherwise, we set the flag in our
      on-stack value and again use cmpxchg to swap it into place if it hasn't
      changed. If it has, then we use the value from the cmpxchg as the new
      "old" value and try again.
      
      This method allows us to avoid incrementing the counter on writes (and
      dirtying the metadata) under typical workloads. We only need to increment
      if it has been queried since it was last changed.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Acked-by: default avatarDave Chinner <dchinner@redhat.com>
      Tested-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
      f02a9ad1
    • Jeff Layton's avatar
      btrfs: only dirty the inode in btrfs_update_time if something was changed · 3a8c7231
      Jeff Layton authored
      At this point, we know that "now" and the file times may differ, and we
      suspect that the i_version has been flagged to be bumped. Attempt to
      bump the i_version, and only mark the inode dirty if that actually
      occurred or if one of the times was updated.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Acked-by: default avatarDavid Sterba <dsterba@suse.com>
      Reviewed-by: default avatarLiu Bo <bo.li.liu@oracle.com>
      3a8c7231
    • Jeff Layton's avatar
      xfs: avoid setting XFS_ILOG_CORE if i_version doesn't need incrementing · d17260fd
      Jeff Layton authored
      If XFS_ILOG_CORE is already set then go ahead and increment it.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Acked-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
      Acked-by: default avatarDave Chinner <dchinner@redhat.com>
      d17260fd
    • Jeff Layton's avatar
      fs: only set S_VERSION when updating times if necessary · e38cf302
      Jeff Layton authored
      We only really need to update i_version if someone has queried for it
      since we last incremented it. By doing that, we can avoid having to
      update the inode if the times haven't changed.
      
      If the times have changed, then we go ahead and forcibly increment the
      counter, under the assumption that we'll be going to the storage
      anyway, and the increment itself is relatively cheap.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      e38cf302
    • Jeff Layton's avatar
      IMA: switch IMA over to new i_version API · 3b370b21
      Jeff Layton authored
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      3b370b21
    • Jeff Layton's avatar
    • Jeff Layton's avatar
      ufs: use new i_version API · bb8c2d66
      Jeff Layton authored
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      bb8c2d66
    • Jeff Layton's avatar
      ocfs2: convert to new i_version API · cc56c33e
      Jeff Layton authored
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      cc56c33e
    • Jeff Layton's avatar
      nfsd: convert to new i_version API · 1f15a550
      Jeff Layton authored
      Mostly just making sure we use the "get" wrappers so we know when
      it is being fetched for later use.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      1f15a550
    • Jeff Layton's avatar
      nfs: convert to new i_version API · 1eb5d98f
      Jeff Layton authored
      For NFS, we just use the "raw" API since the i_version is mostly
      managed by the server. The exception there is when the client
      holds a write delegation, but we only need to bump it once
      there anyway to handle CB_GETATTR.
      Tested-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      1eb5d98f
    • Jeff Layton's avatar
      ext4: convert to new i_version API · ee73f9a5
      Jeff Layton authored
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Acked-by: default avatarTheodore Ts'o <tytso@mit.edu>
      ee73f9a5
    • Jeff Layton's avatar
      ext2: convert to new i_version API · e1d747d9
      Jeff Layton authored
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      e1d747d9
    • Jeff Layton's avatar
      exofs: switch to new i_version API · 317bc947
      Jeff Layton authored
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      317bc947
    • Jeff Layton's avatar
      btrfs: convert to new i_version API · c7f88c4e
      Jeff Layton authored
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Acked-by: default avatarDavid Sterba <dsterba@suse.com>
      c7f88c4e
    • Jeff Layton's avatar
      afs: convert to new i_version API · a01179e6
      Jeff Layton authored
      For AFS, it's generally treated as an opaque value, so we use the
      *_raw variants of the API here.
      
      Note that AFS has quite a different definition for this counter. AFS
      only increments it on changes to the data to the data in regular files
      and contents of the directories. Inode metadata changes do not result
      in a version increment.
      
      We'll need to reconcile that somehow if we ever want to present this to
      userspace via statx.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      a01179e6
    • Jeff Layton's avatar
      affs: convert to new i_version API · 9dffe569
      Jeff Layton authored
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      9dffe569
    • Jeff Layton's avatar
      fat: convert to new i_version API · 2489dbab
      Jeff Layton authored
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      2489dbab
    • Jeff Layton's avatar
      fs: don't take the i_lock in inode_inc_iversion · 7594c461
      Jeff Layton authored
      The rationale for taking the i_lock when incrementing this value is
      lost in antiquity. The readers of the field don't take it (at least
      not universally), so my assumption is that it was only done here to
      serialize incrementors.
      
      If that is indeed the case, then we can drop the i_lock from this
      codepath and treat it as a atomic64_t for the purposes of
      incrementing it. This allows us to use inode_inc_iversion without
      any danger of lock inversion.
      
      Note that the read side is not fetched atomically with this change.
      The assumption here is that that is not a critical issue since the
      i_version is not fully synchronized with anything else anyway.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      7594c461