1. 10 Jul, 2019 12 commits
    • Damien Le Moal's avatar
      block: Disable write plugging for zoned block devices · b49773e7
      Damien Le Moal authored
      Simultaneously writing to a sequential zone of a zoned block device
      from multiple contexts requires mutual exclusion for BIO issuing to
      ensure that writes happen sequentially. However, even for a well
      behaved user correctly implementing such synchronization, BIO plugging
      may interfere and result in BIOs from the different contextx to be
      reordered if plugging is done outside of the mutual exclusion section,
      e.g. the plug was started by a function higher in the call chain than
      the function issuing BIOs.
      
               Context A                     Context B
      
         | blk_start_plug()
         | ...
         | seq_write_zone()
           | mutex_lock(zone)
           | bio-0->bi_iter.bi_sector = zone->wp
           | zone->wp += bio_sectors(bio-0)
           | submit_bio(bio-0)
           | bio-1->bi_iter.bi_sector = zone->wp
           | zone->wp += bio_sectors(bio-1)
           | submit_bio(bio-1)
           | mutex_unlock(zone)
           | return
         | -----------------------> | seq_write_zone()
        				| mutex_lock(zone)
           				| bio-2->bi_iter.bi_sector = zone->wp
           				| zone->wp += bio_sectors(bio-2)
      				| submit_bio(bio-2)
      				| mutex_unlock(zone)
         | <------------------------- |
         | blk_finish_plug()
      
      In the above example, despite the mutex synchronization ensuring the
      correct BIO issuing order 0, 1, 2, context A BIOs 0 and 1 end up being
      issued after BIO 2 of context B, when the plug is released with
      blk_finish_plug().
      
      While this problem can be addressed using the blk_flush_plug_list()
      function (in the above example, the call must be inserted before the
      zone mutex lock is released), a simple generic solution in the block
      layer avoid this additional code in all zoned block device user code.
      The simple generic solution implemented with this patch is to introduce
      the internal helper function blk_mq_plug() to access the current
      context plug on BIO submission. This helper returns the current plug
      only if the target device is not a zoned block device or if the BIO to
      be plugged is not a write operation. Otherwise, the caller context plug
      is ignored and NULL returned, resulting is all writes to zoned block
      device to never be plugged.
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      b49773e7
    • Damien Le Moal's avatar
      block: Fix elevator name declaration · 9305d5d7
      Damien Le Moal authored
      The elevator_name field in struct elevator_type is declared as an array
      of characters (ELV_NAME_MAX size) but in practice used as a string
      pointer with its initialization done statically within each
      elevator elevator_type structure declaration.
      
      Change the declaration of elevator_name to the more appropriate
      "const char *" type.
      Acked-by: default avatarMarcos Paulo de Souza <marcos.souza.org@gmail.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      9305d5d7
    • Damien Le Moal's avatar
      block: Remove unused definitions · 36847a00
      Damien Le Moal authored
      The ELV_MQUEUE_XXX definitions in include/linux/elevator.h are unused
      since the removal of elevator_may_queue_fn in kernel 5.0. Remove these
      definitions and also remove the documentation of elevator_may_queue_fn
      in Documentiation/block/biodoc.txt.
      Acked-by: default avatarMarcos Paulo de Souza <marcos.souza.org@gmail.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      36847a00
    • Konstantin Khlebnikov's avatar
      blk-throttle: fix zero wait time for iops throttled group · 3a10f999
      Konstantin Khlebnikov authored
      After commit 991f61fe ("Blk-throttle: reduce tail io latency when
      iops limit is enforced") wait time could be zero even if group is
      throttled and cannot issue requests right now. As a result
      throtl_select_dispatch() turns into busy-loop under irq-safe queue
      spinlock.
      
      Fix is simple: always round up target time to the next throttle slice.
      
      Fixes: 991f61fe ("Blk-throttle: reduce tail io latency when iops limit is enforced")
      Signed-off-by: default avatarKonstantin Khlebnikov <khlebnikov@yandex-team.ru>
      Cc: stable@vger.kernel.org # v4.19+
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      3a10f999
    • Damien Le Moal's avatar
      block: Fix potential overflow in blk_report_zones() · 113ab72e
      Damien Le Moal authored
      For large values of the number of zones reported and/or large zone
      sizes, the sector increment calculated with
      
      blk_queue_zone_sectors(q) * n
      
      in blk_report_zones() loop can overflow the unsigned int type used for
      the calculation as both "n" and blk_queue_zone_sectors() value are
      unsigned int. E.g. for a device with 256 MB zones (524288 sectors),
      overflow happens with 8192 or more zones reported.
      
      Changing the return type of blk_queue_zone_sectors() to sector_t, fixes
      this problem and avoids overflow problem for all other callers of this
      helper too. The same change is also applied to the bdev_zone_sectors()
      helper.
      
      Fixes: e76239a3 ("block: add a report_zones method")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      113ab72e
    • Tejun Heo's avatar
      blkcg: implement REQ_CGROUP_PUNT · d3f77dfd
      Tejun Heo authored
      When a shared kthread needs to issue a bio for a cgroup, doing so
      synchronously can lead to priority inversions as the kthread can be
      trapped waiting for that cgroup.  This patch implements
      REQ_CGROUP_PUNT flag which makes submit_bio() punt the actual issuing
      to a dedicated per-blkcg work item to avoid such priority inversions.
      
      This will be used to fix priority inversions in btrfs compression and
      should be generally useful as we grow filesystem support for
      comprehensive IO control.
      
      Cc: Chris Mason <clm@fb.com>
      Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      d3f77dfd
    • Tejun Heo's avatar
      blkcg, writeback: Implement wbc_blkcg_css() · 653c45c6
      Tejun Heo authored
      Add a helper to determine the target blkcg from wbc.
      Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      653c45c6
    • Tejun Heo's avatar
      blkcg, writeback: Add wbc->no_cgroup_owner · 27b36d8f
      Tejun Heo authored
      When writeback IOs are bounced through async layers, the IOs should
      only be accounted against the wbc from the original bdi writeback to
      avoid confusing cgroup inode ownership arbitration.  Add
      wbc->no_cgroup_owner to allow disabling wbc cgroup owner accounting.
      This will be used make btrfs compression work well with cgroup IO
      control.
      
      v2: Renamed from no_wbc_acct to no_cgroup_owner and added comment as
          per Jan.
      Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      27b36d8f
    • Tejun Heo's avatar
      blkcg, writeback: Rename wbc_account_io() to wbc_account_cgroup_owner() · 34e51a5e
      Tejun Heo authored
      wbc_account_io() does a very specific job - try to see which cgroup is
      actually dirtying an inode and transfer its ownership to the majority
      dirtier if needed.  The name is too generic and confusing.  Let's
      rename it to something more specific.
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      34e51a5e
    • Tejun Heo's avatar
      cgroup, blkcg: Prepare some symbols for module and !CONFIG_CGROUP usages · 9b0eb69b
      Tejun Heo authored
      btrfs is going to use css_put() and wbc helpers to improve cgroup
      writeback support.  Add dummy css_get() definition and export wbc
      helpers to prepare for module and !CONFIG_CGROUP builds.
      Reported-by: default avatarkbuild test robot <lkp@intel.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      9b0eb69b
    • Josef Bacik's avatar
      blk-cgroup: turn on psi memstall stuff · fd112c74
      Josef Bacik authored
      With the psi stuff in place we can use the memstall flag to indicate
      pressure that happens from throttling.
      Signed-off-by: default avatarJosef Bacik <jbacik@fb.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      fd112c74
    • Josef Bacik's avatar
      block: init flush rq ref count to 1 · b554db14
      Josef Bacik authored
      We discovered a problem in newer kernels where a disconnect of a NBD
      device while the flush request was pending would result in a hang.  This
      is because the blk mq timeout handler does
      
              if (!refcount_inc_not_zero(&rq->ref))
                      return true;
      
      to determine if it's ok to run the timeout handler for the request.
      Flush_rq's don't have a ref count set, so we'd skip running the timeout
      handler for this request and it would just sit there in limbo forever.
      
      Fix this by always setting the refcount of any request going through
      blk_init_rq() to 1.  I tested this with a nbd-server that dropped flush
      requests to verify that it hung, and then tested with this patch to
      verify I got the timeout as expected and the error handling kicked in.
      Thanks,
      Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      b554db14
  2. 09 Jul, 2019 28 commits
    • Linus Torvalds's avatar
      Merge tag 'for-5.3/libata-20190708' of git://git.kernel.dk/linux-block · cdc5ffc4
      Linus Torvalds authored
      Pull libata updates from Jens Axboe:
       "These are the changes that are reviewed, tested, and queued up for
        this merge window. This contains:
      
         - Removal of redundant memset after dmam_alloc_coherent (Fuqian)
      
         - Expand blacklist check for ST1000LM024, making it independent of
           firmware version (Hans)
      
         - Request sense fix (Tejun)
      
         - ahci_sunxi FIFO fix (Uenal)"
      
      * tag 'for-5.3/libata-20190708' of git://git.kernel.dk/linux-block:
        drivers: ata: ahci_sunxi: Increased SATA/AHCI DMA TX/RX FIFOs
        libata: Drop firmware version check from the ST1000LM024 quirk
        ata: sata_sil24: Remove call to memset after dmam_alloc_coherent
        ata:sata_qstor: Remove call to memset after dmam_alloc_coherent
        ata: sata_nv: Remove call to memset after dmam_alloc_coherent
        ata: pdc_adma: Remove call to memset after dmam_alloc_coherent
        ata: libahci: Remove call to memset after dmam_alloc_coherent
        ata: acard-ahci: Remove call to memset after dmam_alloc_coherent
        libata: don't request sense data on !ZAC ATA devices
      cdc5ffc4
    • Linus Torvalds's avatar
      Merge tag 'for-5.3/block-20190708' of git://git.kernel.dk/linux-block · 3b99107f
      Linus Torvalds authored
      Pull block updates from Jens Axboe:
       "This is the main block updates for 5.3. Nothing earth shattering or
        major in here, just fixes, additions, and improvements all over the
        map. This contains:
      
         - Series of documentation fixes (Bart)
      
         - Optimization of the blk-mq ctx get/put (Bart)
      
         - null_blk removal race condition fix (Bob)
      
         - req/bio_op() cleanups (Chaitanya)
      
         - Series cleaning up the segment accounting, and request/bio mapping
           (Christoph)
      
         - Series cleaning up the page getting/putting for bios (Christoph)
      
         - block cgroup cleanups and moving it to where it is used (Christoph)
      
         - block cgroup fixes (Tejun)
      
         - Series of fixes and improvements to bcache, most notably a write
           deadlock fix (Coly)
      
         - blk-iolatency STS_AGAIN and accounting fixes (Dennis)
      
         - Series of improvements and fixes to BFQ (Douglas, Paolo)
      
         - debugfs_create() return value check removal for drbd (Greg)
      
         - Use struct_size(), where appropriate (Gustavo)
      
         - Two lighnvm fixes (Heiner, Geert)
      
         - MD fixes, including a read balance and corruption fix (Guoqing,
           Marcos, Xiao, Yufen)
      
         - block opal shadow mbr additions (Jonas, Revanth)
      
         - sbitmap compare-and-exhange improvemnts (Pavel)
      
         - Fix for potential bio->bi_size overflow (Ming)
      
         - NVMe pull requests:
             - improved PCIe suspent support (Keith Busch)
             - error injection support for the admin queue (Akinobu Mita)
             - Fibre Channel discovery improvements (James Smart)
             - tracing improvements including nvmetc tracing support (Minwoo Im)
             - misc fixes and cleanups (Anton Eidelman, Minwoo Im, Chaitanya
               Kulkarni)"
      
         - Various little fixes and improvements to drivers and core"
      
      * tag 'for-5.3/block-20190708' of git://git.kernel.dk/linux-block: (153 commits)
        blk-iolatency: fix STS_AGAIN handling
        block: nr_phys_segments needs to be zero for REQ_OP_WRITE_ZEROES
        blk-mq: simplify blk_mq_make_request()
        blk-mq: remove blk_mq_put_ctx()
        sbitmap: Replace cmpxchg with xchg
        block: fix .bi_size overflow
        block: sed-opal: check size of shadow mbr
        block: sed-opal: ioctl for writing to shadow mbr
        block: sed-opal: add ioctl for done-mark of shadow mbr
        block: never take page references for ITER_BVEC
        direct-io: use bio_release_pages in dio_bio_complete
        block_dev: use bio_release_pages in bio_unmap_user
        block_dev: use bio_release_pages in blkdev_bio_end_io
        iomap: use bio_release_pages in iomap_dio_bio_end_io
        block: use bio_release_pages in bio_map_user_iov
        block: use bio_release_pages in bio_unmap_user
        block: optionally mark pages dirty in bio_release_pages
        block: move the BIO_NO_PAGE_REF check into bio_release_pages
        block: skd_main.c: Remove call to memset after dma_alloc_coherent
        block: mtip32xx: Remove call to memset after dma_alloc_coherent
        ...
      3b99107f
    • Linus Torvalds's avatar
      Merge tag 'devprop-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 0415052d
      Linus Torvalds authored
      Pull device properties framework updates from Rafael Wysocki:
       "These add helpers for counting items in a property array and extend
        the "software nodes" support to be more convenient for representing
        device properties supplied by drivers and make the intel_cht_int33fe
        driver use that.
      
        Specifics:
      
         - Add helpers to count items in a property array (Andy Shevchenko).
      
         - Extend "software nodes" support to be more convenient for
           representing device properties supplied by drivers (Heikki
           Krogerus).
      
         - Add device_find_child_by_name() helper to the driver core (Heikki
           Krogerus).
      
         - Extend device connection code to also look for references provided
           via fwnode pointers (Heikki Krogerus).
      
         - Start to register proper struct device objects for USB Type-C muxes
           and orientation switches (Heikki Krogerus).
      
         - Update the intel_cht_int33fe driver to describe devices in a more
           general way with the help of "software nodes" (Heikki Krogerus)"
      
      * tag 'devprop-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        device property: Add helpers to count items in an array
        platform/x86: intel_cht_int33fe: Replacing the old connections with references
        platform/x86: intel_cht_int33fe: Supply fwnodes for the external dependencies
        platform/x86: intel_cht_int33fe: Provide fwnode for the USB connector
        platform/x86: intel_cht_int33fe: Provide software nodes for the devices
        platform/x86: intel_cht_int33fe: Remove unused fusb302 device property
        platform/x86: intel_cht_int33fe: Register max17047 in its own function
        usb: typec: Registering real device entries for the muxes
        device connection: Find connections also by checking the references
        device property: Introduce fwnode_find_reference()
        ACPI / property: Don't limit named child node matching to data nodes
        driver core: Add helper device_find_child_by_name()
        software node: Add software_node_get_reference_args()
        software node: Use kobject name when finding child nodes by name
        software node: Add support for static node descriptors
        software node: Simplify software_node_release() function
        software node: Allow node creation without properties
      0415052d
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 4b470452
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "These update the ACPICA code in the kernel to upstream revision
        20190703, fix up the handling of GPEs in ACPICA, allow some more ACPI
        code to be built on ARM64 platforms, allow BGRT to be overridden, fix
        minor issues and clean up assorted pieces of ACPI code.
      
        Specifics:
      
         - Update the ACPICA code in the kernel to upstream revision 20190703
           including:
             - Initial/default namespace creation simplification (Bob Moore).
             - Object initialization sequence update (Bob Moore).
             - Removal of legacy module-level (dead) code (Erik Schmauss).
             - Table load object initialization update (Erik Schmauss,
               Nikolaus Voss).
      
         - Fix GPE enabling issue in ACPICA causing premature wakeups from
           suspend-to-idle to occur (Rafael Wysocki).
      
         - Allow ACPI AC and battery drivers to be built on non-X86 (Ard
           Biesheuvel).
      
         - Fix address space handler removal in the ACPI PMIC driver for Intel
           platforms (Andy Shevchenko).
      
         - Allow BGRT to be overridden via initrd or configfs (Andrea
           Oliveri).
      
         - Fix object resolution on table loads via configfs (Nikolaus Voss).
      
         - Clean up assorted pieces of ACPI code and tools (Colin Ian King,
           Liguang Zhang, Masahiro Yamada).
      
         - Fix documentation build warning, convert the extcon document to
           ReST and add it to the ACPI documentation (Mauro Carvalho Chehab,
           Qian Cai)"
      
      * tag 'acpi-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / APEI: Remove needless __ghes_check_estatus() calls
        ACPICA: Update version to 20190703
        ACPICA: Update table load object initialization
        ACPICA: Update for object initialization sequence
        ACPICA: remove legacy module-level code due to deprecation
        ACPICA: Namespace: simplify creation of the initial/default namespace
        ACPI / PMIC: intel: Drop double removal of address space handler
        ACPI: APD: remove redundant assignment to pointer clk
        docs: extcon: convert it to ReST and move to ACPI dir
        ACPI: Make AC and battery drivers available on !X86
        ACPICA: Clear status of GPEs on first direct enable
        ACPI: configfs: Resolve objects on host-directed table loads
        ACPI: tables: Allow BGRT to be overridden
        ACPI: OSL: Make a W=1 kernel-doc warning go away
        ACPI: tools: Exclude tools/* from .gitignore patterns
      4b470452
    • Linus Torvalds's avatar
      Merge tag 'pm-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · cf2d213e
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These update PCI and ACPI power management (improved handling of ACPI
        power resources and PCIe link delays, fixes related to corner cases,
        hibernation handling rework), fix and extend the operating performance
        points (OPP) framework, add new cpufreq drivers for Raspberry Pi and
        imx8m chips, update some other cpufreq drivers, clean up assorted
        pieces of PM code and documentation and update tools.
      
        Specifics:
      
         - Improve the handling of shared ACPI power resources in the PCI bus
           type layer (Mika Westerberg).
      
         - Make the PCI layer take link delays required by the PCIe spec into
           account as appropriate and avoid polling devices in D3cold for PME
           (Mika Westerberg).
      
         - Fix some corner case issues in ACPI device power management and in
           the PCI bus type layer, optimiza and clean up the handling of
           runtime-suspended PCI devices during system-wide transitions to
           sleep states (Rafael Wysocki).
      
         - Rework hibernation handling in the ACPI core and the PCI bus type
           to resume runtime-suspended devices before hibernation (which
           allows some functional problems to be avoided) and fix some ACPI
           power management issues related to hiberation (Rafael Wysocki).
      
         - Extend the operating performance points (OPP) framework to support
           a wider range of devices (Rajendra Nayak, Stehpen Boyd).
      
         - Fix issues related to genpd_virt_devs and issues with platforms
           using the set_opp() callback in the OPP framework (Viresh Kumar,
           Dmitry Osipenko).
      
         - Add new cpufreq driver for Raspberry Pi (Nicolas Saenz Julienne).
      
         - Add new cpufreq driver for imx8m and imx7d chips (Leonard Crestez).
      
         - Fix and clean up the pcc-cpufreq, brcmstb-avs-cpufreq, s5pv210, and
           armada-37xx cpufreq drivers (David Arcari, Florian Fainelli, Paweł
           Chmiel, YueHaibing).
      
         - Clean up and fix the cpufreq core (Viresh Kumar, Daniel Lezcano).
      
         - Fix minor issue in the ACPI system sleep support code and export
           one function from it (Lenny Szubowicz, Dexuan Cui).
      
         - Clean up assorted pieces of PM code and documentation (Kefeng Wang,
           Andy Shevchenko, Bart Van Assche, Greg Kroah-Hartman, Fuqian Huang,
           Geert Uytterhoeven, Mathieu Malaterre, Rafael Wysocki).
      
         - Update the pm-graph utility to v5.4 (Todd Brandt).
      
         - Fix and clean up the cpupower utility (Abhishek Goel, Nick Black)"
      
      * tag 'pm-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (57 commits)
        ACPI: PM: Make acpi_sleep_state_supported() non-static
        PM: sleep: Drop dev_pm_skip_next_resume_phases()
        ACPI: PM: Unexport acpi_device_get_power()
        Documentation: ABI: power: Add missing newline at end of file
        ACPI: PM: Drop unused function and function header
        ACPI: PM: Introduce "poweroff" callbacks for ACPI PM domain and LPSS
        ACPI: PM: Simplify and fix PM domain hibernation callbacks
        PCI: PM: Simplify bus-level hibernation callbacks
        PM: ACPI/PCI: Resume all devices during hibernation
        cpufreq: Avoid calling cpufreq_verify_current_freq() from handle_update()
        cpufreq: Consolidate cpufreq_update_current_freq() and __cpufreq_get()
        kernel: power: swap: use kzalloc() instead of kmalloc() followed by memset()
        cpufreq: Don't skip frequency validation for has_target() drivers
        PCI: PM/ACPI: Refresh all stale power state data in pci_pm_complete()
        PCI / ACPI: Add _PR0 dependent devices
        ACPI / PM: Introduce concept of a _PR0 dependent device
        PCI / ACPI: Use cached ACPI device state to get PCI device power state
        ACPI: PM: Allow transitions to D0 to occur in special cases
        ACPI: PM: Avoid evaluating _PS3 on transitions from D3hot to D3cold
        cpufreq: Use has_target() instead of !setpolicy
        ...
      cf2d213e
    • Linus Torvalds's avatar
      Merge tag 'sound-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 4cdd5f91
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "Many updates in this development cycle are found in ASoC where it got
        a wide range of changes for the continued refactoring.
      
        Some highlights are below.
      
        ASoC:
      
         - Continued refactoring work by Morimoto-san toward the full
           componentization; the changes are seen allover the places
      
         - Support for force disconnecting muxes in DAPM
      
         - Continued development of ASoC Intel SOF stuff
      
         - New drivers for Cirrus Logic CS47L35, CS47L85 and CS47L90, Conexant
           CX2072X, Realtek RT1011 and RT1308
      
        HD-audio:
      
         - More fixes and adjustments for ASoC SOF HD-audio
      
         - Fix for resume problem on some Realtek codecs
      
        USB-audio:
      
         - A few fixes for the issues reported by syzbot USB fuzzer
      
         - Fix for UAC2 extension unit parser
      
         - Quirks for Line6 Helix, Emgaic Unitor 8
      
        FireWire:
      
         - Lots of code refactoring and fixes in most of its components"
      
      * tag 'sound-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (626 commits)
        ALSA: firewire-lib: code refactoring for local variables
        ALSA: firewire-lib: code refactoring for post operation to data block counter
        ALSA: firewire-lib: code refactoring for error path of parser for CIP header
        ALSA: firewire-lib: fix different data block counter between probed event and transferred isochronous packet
        ALSA: firewire-lib: fix initial value of data block count for IR context without CIP_DBC_IS_END_EVENT
        ALSA: firewire-lib/fireface: fix initial value of data block counter for IR context with CIP_NO_HEADER
        ALSA: firewire-lib: fix invalid length of rx packet payload for tracepoint events
        ALSA: usb-audio: fix Line6 Helix audio format rates
        firewire-motu: fix wrong reference count for stream functionality at error path of rawmidi interface
        ALSA: firewire-digi00x: fix wrong reference count for stream functionality at error path of rawmidi interface
        ALSA: dice: fix wrong reference count for stream functionality at error path of rawmidi interface
        ALSA: oxfw: fix wrong reference count for stream functionality at error path of rawmidi interface
        ALSA: fireworks: fix wrong reference count for stream functionality at error path of rawmidi interface
        ALSA: bebob: fix wrong reference count for stream functionality at error path of rawmidi interface
        ASoC: SOF: Intel: implement runtime idle for CNL/APL
        ASoC: SOF: add runtime idle callback
        ASoC: hdac_hdmi: report codec link up/down status to bus
        ASoC: SOF: debug: fix possible memory leak in sof_dfsentry_write()
        ASoC: sunxi: sun50i-codec-analog: Add earpiece
        ASoC: rt5665: remove redundant assignment to variable idx
        ...
      4cdd5f91
    • Linus Torvalds's avatar
      Merge tag 'fbdev-v5.3' of git://github.com/bzolnier/linux · 2d41ef54
      Linus Torvalds authored
      Pull fbdev updates from Bartlomiej Zolnierkiewicz:
      
       - remove fbdev notifier usage for fbcon (as prep work to clean up the
         fbcon locking), add locking checks in vt/console code and make
         assorted cleanups in fbdev and backlight code (Daniel Vetter)
      
       - add COMPILE_TEST support to atmel_lcdfb, da8xx-fb, gbefb, imxfb,
         pvr2fb and pxa168fb drivers (me)
      
       - fix DMA API abuse in au1200fb and jz4740_fb drivers (Christoph
         Hellwig)
      
       - add check for new BGRT status field rotation bits in efifb driver
         (Hans de Goede)
      
       - mark expected switch fall-throughs in s3c-fb driver (Gustavo A. R.
         Silva)
      
       - remove fbdev mxsfb driver in favour of the drm version (Fabio
         Estevam)
      
       - remove broken rfbi code from omap2fb driver (me)
      
       - misc fixes (Arnd Bergmann, Shobhit Kukreti, Wei Yongjun, me)
      
       - misc cleanups (Gustavo A. R. Silva, Colin Ian King, me)
      
      * tag 'fbdev-v5.3' of git://github.com/bzolnier/linux: (62 commits)
        video: fbdev: imxfb: fix a typo in imxfb_probe()
        video: fbdev: s3c-fb: Mark expected switch fall-throughs
        video: fbdev: s3c-fb: fix sparse warnings about using incorrect types
        video: fbdev: don't print error message on framebuffer_alloc() failure
        video: fbdev: intelfb: return -ENOMEM on framebuffer_alloc() failure
        video: fbdev: s3c-fb: return -ENOMEM on framebuffer_alloc() failure
        vga_switcheroo: Depend upon fbcon being built-in, if enabled
        video: fbdev: omap2: remove rfbi
        video: fbdev: atmel_lcdfb: remove redundant initialization to variable ret
        video: fbdev-MMP: Use struct_size() in devm_kzalloc()
        video: fbdev: controlfb: fix warnings about comparing pointer to 0
        efifb: BGRT: Add check for new BGRT status field rotation bits
        jz4740_fb: fix DMA API abuse
        video: fbdev: pvr2fb: fix link error for pvr2fb_pci_exit
        video: fbdev: s3c-fb: add COMPILE_TEST support
        video: fbdev: imxfb: fix sparse warnings about using incorrect types
        video: fbdev: pvr2fb: fix build warning when compiling as module
        fbcon: Export fbcon_update_vcs
        backlight: simplify lcd notifier
        staging/olpc_dcon: Add drm conversion to TODO
        ...
      2d41ef54
    • Linus Torvalds's avatar
      Merge tag 'media/v5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · ed63b9c8
      Linus Torvalds authored
      Pull media updates from Mauro Carvalho Chehab:
      
       - new Atmel microship ISC driver
      
       - coda has gained support for mpeg2 and mpeg4
      
       - cxusb gained support for analog TV
      
       - rockchip staging driver was split into two separate staging drivers
      
       - added a new staging driver for Allegro DVT video IP core
      
       - added a new staging driver for Amlogic Meson video decoder
      
       - lots of improvements and cleanups
      
      * tag 'media/v5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (398 commits)
        media: allegro: use new v4l2_m2m_ioctl_try_encoder_cmd funcs
        media: doc-rst: Fix typos
        media: radio-raremono: change devm_k*alloc to k*alloc
        media: stv0297: fix frequency range limit
        media: rc: Prefer KEY_NUMERIC_* for number buttons on remotes
        media: dvb_frontend: split dvb_frontend_handle_ioctl function
        media: mceusb: disable "nonsensical irdata" messages
        media: rc: remove redundant dev_err message
        media: cec-notifier: add new notifier functions
        media: cec: add struct cec_connector_info support
        media: cec-notifier: rename variables, check kstrdup and n->conn_name
        media: MAINTAINERS: Add maintainers for Media Controller
        media: staging: media: tegra-vde: Defer dmabuf's unmapping
        media: staging: media: tegra-vde: Add IOMMU support
        media: hdpvr: fix locking and a missing msleep
        media: v4l2: Test type instead of cfg->type in v4l2_ctrl_new_custom()
        media: atmel: atmel-isc: fix i386 build error
        media: v4l2-ctrl: Move compound control initialization
        media: hantro: Use vb2_get_buffer
        media: pci: cx88: Change the type of 'missed' to u64
        ...
      ed63b9c8
    • Linus Torvalds's avatar
      Merge tag 'please-pull-for_5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · 947fbd4c
      Linus Torvalds authored
      Pull EDAC updates from Tony Luck:
       "All the bits that Boris had queued in his tree plus four patches to
        add support for Intel Icelake Xeon and then fix a few corner cases"
      
      * tag 'please-pull-for_5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC: Fix global-out-of-bounds write when setting edac_mc_poll_msec
        EDAC, skx, i10nm: Fix source ID register offset
        EDAC, i10nm: Check ECC enabling status per channel
        EDAC, i10nm: Add Intel additional Ice-Lake support
        EDAC: Make edac_debugfs_create_x*() return void
        EDAC/aspeed: Remove set but not used variable 'np'
        EDAC/ie31200: Reformat PCI device table
        EDAC/ie31200: Add Intel Coffee Lake CPU support
        EDAC/sifive: Add EDAC platform driver for SiFive SoCs
        EDAC/sb_edac: Remove redundant update of tad_base
        arm64: dts: stratix10: Add SDMMC EDAC node
        EDAC/altera: Add Stratix10 SDMMC support
        arm64: dts: stratix10: Add OCRAM EDAC node
        EDAC/altera: Add Stratix10 OCRAM ECC support
        EDAC/sysfs: Drop device references properly
        EDAC/sysfs: Fix memory leak when creating a csrow object
      947fbd4c
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 6b04014f
      Linus Torvalds authored
      Pull iommu updates from Joerg Roedel:
      
       - Make the dma-iommu code more generic so that it can be used outside
         of the ARM context with other IOMMU drivers. Goal is to make use of
         it on x86 too.
      
       - Generic IOMMU domain support for the Intel VT-d driver. This driver
         now makes more use of common IOMMU code to allocate default domains
         for the devices it handles.
      
       - An IOMMU fault reporting API to userspace. With that the IOMMU fault
         handling can be done in user-space, for example to forward the faults
         to a VM.
      
       - Better handling for reserved regions requested by the firmware. These
         can be 'relaxed' now, meaning that those don't prevent a device being
         attached to a VM.
      
       - Suspend/Resume support for the Renesas IOMMU driver.
      
       - Added support for dumping SVA related fields of the DMAR table in the
         Intel VT-d driver via debugfs.
      
       - A pile of smaller fixes and cleanups.
      
      * tag 'iommu-updates-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (90 commits)
        iommu/omap: No need to check return value of debugfs_create functions
        iommu/arm-smmu-v3: Invalidate ATC when detaching a device
        iommu/arm-smmu-v3: Fix compilation when CONFIG_CMA=n
        iommu/vt-d: Cleanup unused variable
        iommu/amd: Flush not present cache in iommu_map_page
        iommu/amd: Only free resources once on init error
        iommu/amd: Move gart fallback to amd_iommu_init
        iommu/amd: Make iommu_disable safer
        iommu/io-pgtable: Support non-coherent page tables
        iommu/io-pgtable: Replace IO_PGTABLE_QUIRK_NO_DMA with specific flag
        iommu/io-pgtable-arm: Add support to use system cache
        iommu/arm-smmu-v3: Increase maximum size of queues
        iommu/vt-d: Silence a variable set but not used
        iommu/vt-d: Remove an unused variable "length"
        iommu: Fix integer truncation
        iommu: Add padding to struct iommu_fault
        iommu/vt-d: Consolidate domain_init() to avoid duplication
        iommu/vt-d: Cleanup after delegating DMA domain to generic iommu
        iommu/vt-d: Fix suspicious RCU usage in probe_acpi_namespace_devices()
        iommu/vt-d: Allow DMA domain attaching to rmrr locked device
        ...
      6b04014f
    • Linus Torvalds's avatar
      Merge tag 'spi-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · c6b6cebb
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "For the most part this is a quiet release for SPI, though there's
        several of the more widely used drivers that have had some fairly
        substantial development done on them, mainly improving performance and
        adding support for some more obscure use cases.
      
        Summary:
      
         - Support for configuring a minimum time for chip select to be
           deasserted between transfers from Martin Sperl.
      
         - A rework of the ACPI device instantiation code from Ard Biesheuvel.
      
         - Fairly substantial development on the AT91 USART, BCM2835 and
           Tegra114 drivers.
      
         - New driver for Socionext SynQuacer"
      
      * tag 'spi-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (58 commits)
        spi: pxa2xx: Add support for Intel Elkhart Lake
        spi: atmel-quadspi: fix resume call
        spi: atmel-quadspi: void return type for atmel_qspi_init()
        spi: pxa2xx: Set minimum transfer speed
        spi: stm32-qspi: remove signal sensitive on completion
        dt-bindings: spi: stm32-qspi: add dma properties
        spi: uniphier: fix zero-length transfer
        spi: uniphier: fix timeout error
        spi/acpi: avoid spurious matches during slave enumeration
        spi: spi-stm32-qspi: Remove CR_FTHRES_MASK usage
        spi: fix ctrl->num_chipselect constraint
        spi: spi-synquacer: Fixed build on architectures missing readsl/writesl series
        spi/acpi: fix incorrect ACPI parent check
        spi: don't open code list_for_each_entry_safe_reverse()
        spi: No need to assign dummy value in spi_unregister_controller()
        spi: Add a prototype for exported spi_set_cs_timing()
        spi/acpi: enumerate all SPI slaves in the namespace
        spi: qup: fix PIO/DMA transfers.
        spi: Use struct_size() helper
        spi: mediatek: add SPI_LSB_FIRST support
        ...
      c6b6cebb
    • Linus Torvalds's avatar
      Merge tag 'regulator-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 98537ee9
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "A couple of new features in the core, the most interesting one being
        support for complex regulator coupling configurations initially
        targeted at nVidia Tegra SoCs, and some new drivers but otherwise
        quite a quiet release.
      
        Summary:
      
         - Core support for gradual ramping of voltages for devices that can't
           manage large changes in hardware from Bartosz Golaszewski.
      
         - Core support for systems that have complex coupling requirements
           best described via code, contributed by Dmitry Osipenko.
      
         - New drivers for Dialog SLG51000, Qualcomm PM8005 and ST
           Microelectronics STM32-Booster"
      
      * tag 'regulator-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (52 commits)
        regulator: max77650: use vsel_step
        regulator: implement selector stepping
        regulator: max77650: add MODULE_ALIAS()
        regulator: max77620: remove redundant assignment to variable ret
        dt-bindings: regulator: add support for the stm32-booster
        regulator: add support for the stm32-booster
        regulator: s2mps11: Adjust supported buck voltages to real values
        regulator: s2mps11: Fix buck7 and buck8 wrong voltages
        gpio: Fix return value mismatch of function gpiod_get_from_of_node()
        regulator: core: Expose some of core functions needed by couplers
        regulator: core: Introduce API for regulators coupling customization
        regulator: s2mps11: Add support for disabling S2MPS11 regulators in suspend
        regulator: s2mps11: Reduce number of rdev_get_id() calls
        regulator: qcom_spmi: Do NULL check for lvs
        regulator: qcom_spmi: Fix math of spmi_regulator_set_voltage_time_sel
        regulator: da9061/62: Adjust LDO voltage selection minimum value
        regulator: s2mps11: Fix ERR_PTR dereference on GPIO lookup failure
        regulator: qcom_spmi: add PMS405 SPMI regulator
        dt-bindings: qcom_spmi: Document pms405 support
        arm64: dts: msm8998-mtp: Add pm8005_s1 regulator
        ...
      98537ee9
    • Linus Torvalds's avatar
      Merge tag 'regmap-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 12a5146b
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "This is a relatively busy release for regmap, though not busy in the
        grand scheme of things, with the addition of support for I3C from
        Vitor Soares and a few small fixes and cleanups"
      
      * tag 'regmap-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: select CONFIG_REGMAP while REGMAP_SCCB is set
        regmap: lzo: Switch to bitmap_zalloc()
        regmap: fix bulk writes on paged registers
        regmap: add i3c bus support
        regmap: debugfs: Fix memory leak in regmap_debugfs_init
      12a5146b
    • Linus Torvalds's avatar
      Merge tag 'gpio-v5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 2ec98f56
      Linus Torvalds authored
      Pull GPIO updates from Linus Walleij:
       "This is the big slew of GPIO changes for the v5.3 kernel cycle. This
        is mostly incremental work this time.
      
        Three important things:
      
         - The FMC subsystem is deleted through my tree. This happens through
           GPIO as its demise was discussed in relation to a patch decoupling
           its GPIO implementation from the standard way of handling GPIO. As
           it turns out, that is not the only subsystem it reimplements and
           the authors think it is better do scratch it and start over using
           the proper kernel subsystems than try to polish the rust shiny. See
           the commit (ACKed by the maintainers) for details.
      
         - Arnd made a small devres patch that was ACKed by Greg and goes into
           the device core.
      
         - SPDX header change colissions may happen, because at times I've
           seen that quite a lot changed during the -rc:s in regards to SPDX.
           (It is good stuff, tglx has me convinced, and it is worth the
           occasional pain.)
      
        Apart from this is is nothing controversial or problematic.
      
        Summary:
      
        Core:
      
         - When a gpio_chip request GPIOs from itself, it can now fully
           control the line characteristics, both machine and consumer flags.
           This makes a lot of sense, but took some time before I figured out
           that this is how it has to work.
      
         - Several smallish documentation fixes.
      
        New drivers:
      
         - The PCA953x driver now supports the TI TCA9539.
      
         - The DaVinci driver now supports the K3 AM654 SoCs.
      
        Driver improvements:
      
         - Major overhaul and hardening of the OMAP driver by Russell King.
      
         - Starting to move some drivers to the new API passing irq_chip along
           with the gpio_chip when adding the gpio_chip instead of adding it
           separately.
      
        Unrelated:
      
         - Delete the FMC subsystem"
      
      * tag 'gpio-v5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (87 commits)
        Revert "gpio: tegra: Clean-up debugfs initialisation"
        gpiolib: Use spinlock_t instead of struct spinlock
        gpio: stp-xway: allow compile-testing
        gpio: stp-xway: get rid of the #include <lantiq_soc.h> dependency
        gpio: stp-xway: improve module clock error handling
        gpio: stp-xway: simplify error handling in xway_stp_probe()
        gpiolib: Clarify use of non-sleeping functions
        gpiolib: Fix references to gpiod_[gs]et_*value_cansleep() variants
        gpiolib: Document new gpio_chip.init_valid_mask field
        Documentation: gpio: Fix reference to gpiod_get_array()
        gpio: pl061: drop duplicate printing of device name
        gpio: altera: Pass irqchip when adding gpiochip
        gpio: siox: Use devm_ managed gpiochip
        gpio: siox: Add struct device *dev helper variable
        gpio: siox: Pass irqchip when adding gpiochip
        drivers: gpio: amd-fch: make resource struct const
        devres: allow const resource arguments
        gpio: ath79: Pass irqchip when adding gpiochip
        gpio: tegra: Clean-up debugfs initialisation
        gpio: siox: Switch to IRQ_TYPE_NONE
        ...
      2ec98f56
    • Linus Torvalds's avatar
      Merge tag 'i3c/for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux · 96407298
      Linus Torvalds authored
      Pull ic3 updates from Boris Brezillon:
      
       - Drop support for 10-bit I2C addresses
      
       - Add support for limited bus mode
      
       - Fix the Cadence DT binding doc
      
       - Use struct_size() to allocate a DEFSLVS packet
      
      * tag 'i3c/for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux:
        i3c: master: Use struct_size() helper
        dt-bindings: i3c: cdns: Use correct cells for I2C device
        i3c: dw: add limited bus mode support
        i3c: add mixed limited bus mode
        i3c: fix i2c and i3c scl rate by bus mode
        dt-bindings: i3c: Document dropped support for I2C 10 bit devices
        i3c: Drop support for I2C 10 bit addresing
      96407298
    • Linus Torvalds's avatar
      Merge tag 'leds-for-5.3-rc1' of... · 8a3367cc
      Linus Torvalds authored
      Merge tag 'leds-for-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds
      
      Pull LED updates from Jacek Anaszewski:
      
       - Add a new LED common module for ti-lmu driver family
      
       - Modify MFD ti-lmu bindings
              - add ti,brightness-resolution
              - add the ramp up/down property
      
       - Add regulator support for LM36274 driver to lm363x-regulator.c
      
       - New LED class drivers with DT bindings:
              - leds-spi-byte
              - leds-lm36274
              - leds-lm3697 (move the support from MFD to LED subsystem)
      
       - Simplify getting the I2C adapter of a client:
              - leds-tca6507
              - leds-pca955x
      
       - Convert LED documentation to ReST
      
      * tag 'leds-for-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
        dt: leds-lm36274.txt: fix a broken reference to ti-lmu.txt
        docs: leds: convert to ReST
        leds: leds-tca6507: simplify getting the adapter of a client
        leds: leds-pca955x: simplify getting the adapter of a client
        leds: lm36274: Introduce the TI LM36274 LED driver
        dt-bindings: leds: Add LED bindings for the LM36274
        regulator: lm363x: Add support for LM36274
        mfd: ti-lmu: Add LM36274 support to the ti-lmu
        dt-bindings: mfd: Add lm36274 bindings to ti-lmu
        leds: max77650: Remove set but not used variable 'parent'
        leds: avoid flush_work in atomic context
        leds: lm3697: Introduce the lm3697 driver
        mfd: ti-lmu: Remove support for LM3697
        dt-bindings: ti-lmu: Modify dt bindings for the LM3697
        leds: TI LMU: Add common code for TI LMU devices
        leds: spi-byte: add single byte SPI LED driver
        dt-bindings: leds: Add binding for spi-byte LED.
        dt-bindings: mfd: LMU: Add ti,brightness-resolution
        dt-bindings: mfd: LMU: Add the ramp up/down property
      8a3367cc
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-5.3-rc1' of... · 6e2bbb68
      Linus Torvalds authored
      Merge tag 'pwm/for-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "This set of changes contains a new driver for SiFive SoCs as well as
        enhancements to the core (device links are used to track dependencies
        between PWM providers and consumers, support for PWM controllers via
        ACPI, sysfs will now suspend/resume PWMs that it has claimed) and
        various existing drivers"
      
      * tag 'pwm/for-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (37 commits)
        pwm: fsl-ftm: Make sure to unlock mutex on failure
        pwm: fsl-ftm: Use write protection for prescaler & polarity
        pwm: fsl-ftm: More relaxed permissions for updating period
        pwm: atmel-hlcdc: Add compatible for SAM9X60 HLCDC's PWM
        pwm: bcm2835: Improve precision of PWM
        leds: pwm: Support ACPI via firmware-node framework
        pwm: Add support referencing PWMs from ACPI
        pwm: rcar: Remove suspend/resume support
        pwm: sysfs: Add suspend/resume support
        pwm: Add power management descriptions
        pwm: meson: Add documentation to the driver
        pwm: meson: Add support PWM_POLARITY_INVERSED when disabling
        pwm: meson: Don't cache struct pwm_state internally
        pwm: meson: Read the full hardware state in meson_pwm_get_state()
        pwm: meson: Simplify the calculation of the pre-divider and count
        pwm: meson: Move pwm_set_chip_data() to meson_pwm_request()
        pwm: meson: Add the per-channel register offsets and bits in a struct
        pwm: meson: Add the meson_pwm_channel data to struct meson_pwm
        pwm: meson: Pass struct pwm_device to meson_pwm_calc()
        pwm: meson: Don't duplicate the polarity internally
        ...
      6e2bbb68
    • Linus Torvalds's avatar
      Merge branch 'siginfo-linus' of... · 5ad18b2e
      Linus Torvalds authored
      Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
      
      Pull force_sig() argument change from Eric Biederman:
       "A source of error over the years has been that force_sig has taken a
        task parameter when it is only safe to use force_sig with the current
        task.
      
        The force_sig function is built for delivering synchronous signals
        such as SIGSEGV where the userspace application caused a synchronous
        fault (such as a page fault) and the kernel responded with a signal.
      
        Because the name force_sig does not make this clear, and because the
        force_sig takes a task parameter the function force_sig has been
        abused for sending other kinds of signals over the years. Slowly those
        have been fixed when the oopses have been tracked down.
      
        This set of changes fixes the remaining abusers of force_sig and
        carefully rips out the task parameter from force_sig and friends
        making this kind of error almost impossible in the future"
      
      * 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (27 commits)
        signal/x86: Move tsk inside of CONFIG_MEMORY_FAILURE in do_sigbus
        signal: Remove the signal number and task parameters from force_sig_info
        signal: Factor force_sig_info_to_task out of force_sig_info
        signal: Generate the siginfo in force_sig
        signal: Move the computation of force into send_signal and correct it.
        signal: Properly set TRACE_SIGNAL_LOSE_INFO in __send_signal
        signal: Remove the task parameter from force_sig_fault
        signal: Use force_sig_fault_to_task for the two calls that don't deliver to current
        signal: Explicitly call force_sig_fault on current
        signal/unicore32: Remove tsk parameter from __do_user_fault
        signal/arm: Remove tsk parameter from __do_user_fault
        signal/arm: Remove tsk parameter from ptrace_break
        signal/nds32: Remove tsk parameter from send_sigtrap
        signal/riscv: Remove tsk parameter from do_trap
        signal/sh: Remove tsk parameter from force_sig_info_fault
        signal/um: Remove task parameter from send_sigtrap
        signal/x86: Remove task parameter from send_sigtrap
        signal: Remove task parameter from force_sig_mceerr
        signal: Remove task parameter from force_sig
        signal: Remove task parameter from force_sigsegv
        ...
      5ad18b2e
    • Linus Torvalds's avatar
      Merge branch 'for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 92c1d652
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
       "Documentation updates and the addition of cgroup_parse_float() which
        will be used by new controllers including blk-iocost"
      
      * 'for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        docs: cgroup-v1: convert docs to ReST and rename to *.rst
        cgroup: Move cgroup_parse_float() implementation out of CONFIG_SYSFS
        cgroup: add cgroup_parse_float()
      92c1d652
    • Linus Torvalds's avatar
      Merge branch 'for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · df2a40f5
      Linus Torvalds authored
      Pull workqueue updates from Tejun Heo:
       "Just a couple cleanup patches.  No functional changes."
      
      * 'for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: Remove GPF argument from alloc_workqueue_attrs()
        workqueue: Make alloc/apply/free_workqueue_attrs() static
      df2a40f5
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 2b49350b
      Linus Torvalds authored
      Pull ARM updates from Russell King:
      
       - Add a "cut here" to make it clearer where oops dumps should be cut
         from - we already have a marker for the end of the dumps.
      
       - Add logging severity to show_pte()
      
       - Drop unnecessary common-page-size linker flag
      
       - Errata workarounds for Cortex A12 857271, Cortex A17 857272 and
         Cortex A7 814220.
      
       - Remove some unused variables that had started to provoke a compiler
         warning.
      
      * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: 8863/1: stm32: select ARM errata 814220
        ARM: 8862/1: errata: 814220-B-Cache maintenance by set/way operations can execute out of order
        ARM: 8865/1: mm: remove unused variables
        ARM: 8864/1: Add workaround for I-Cache line size mismatch between CPU cores
        ARM: 8861/1: errata: Workaround errata A12 857271 / A17 857272
        ARM: 8860/1: VDSO: Drop implicit common-page-size linker flag
        ARM: arrange show_pte() to issue severity-based messages
        ARM: add "8<--- cut here ---" to kernel dumps
      2b49350b
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 4d2fa8b4
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
       "Here is the crypto update for 5.3:
      
        API:
         - Test shash interface directly in testmgr
         - cra_driver_name is now mandatory
      
        Algorithms:
         - Replace arc4 crypto_cipher with library helper
         - Implement 5 way interleave for ECB, CBC and CTR on arm64
         - Add xxhash
         - Add continuous self-test on noise source to drbg
         - Update jitter RNG
      
        Drivers:
         - Add support for SHA204A random number generator
         - Add support for 7211 in iproc-rng200
         - Fix fuzz test failures in inside-secure
         - Fix fuzz test failures in talitos
         - Fix fuzz test failures in qat"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (143 commits)
        crypto: stm32/hash - remove interruptible condition for dma
        crypto: stm32/hash - Fix hmac issue more than 256 bytes
        crypto: stm32/crc32 - rename driver file
        crypto: amcc - remove memset after dma_alloc_coherent
        crypto: ccp - Switch to SPDX license identifiers
        crypto: ccp - Validate the the error value used to index error messages
        crypto: doc - Fix formatting of new crypto engine content
        crypto: doc - Add parameter documentation
        crypto: arm64/aes-ce - implement 5 way interleave for ECB, CBC and CTR
        crypto: arm64/aes-ce - add 5 way interleave routines
        crypto: talitos - drop icv_ool
        crypto: talitos - fix hash on SEC1.
        crypto: talitos - move struct talitos_edesc into talitos.h
        lib/scatterlist: Fix mapping iterator when sg->offset is greater than PAGE_SIZE
        crypto/NX: Set receive window credits to max number of CRBs in RxFIFO
        crypto: asymmetric_keys - select CRYPTO_HASH where needed
        crypto: serpent - mark __serpent_setkey_sbox noinline
        crypto: testmgr - dynamically allocate crypto_shash
        crypto: testmgr - dynamically allocate testvec_config
        crypto: talitos - eliminate unneeded 'done' functions at build time
        ...
      4d2fa8b4
    • Linus Torvalds's avatar
      Merge branch 'next-integrity' of... · 8b681508
      Linus Torvalds authored
      Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity
      
      Pull integrity updates from Mimi Zohar:
       "Bug fixes, code clean up, and new features:
      
         - IMA policy rules can be defined in terms of LSM labels, making the
           IMA policy dependent on LSM policy label changes, in particular LSM
           label deletions. The new environment, in which IMA-appraisal is
           being used, frequently updates the LSM policy and permits LSM label
           deletions.
      
         - Prevent an mmap'ed shared file opened for write from also being
           mmap'ed execute. In the long term, making this and other similar
           changes at the VFS layer would be preferable.
      
         - The IMA per policy rule template format support is needed for a
           couple of new/proposed features (eg. kexec boot command line
           measurement, appended signatures, and VFS provided file hashes).
      
         - Other than the "boot-aggregate" record in the IMA measuremeent
           list, all other measurements are of file data. Measuring and
           storing the kexec boot command line in the IMA measurement list is
           the first buffer based measurement included in the measurement
           list"
      
      * 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity:
        integrity: Introduce struct evm_xattr
        ima: Update MAX_TEMPLATE_NAME_LEN to fit largest reasonable definition
        KEXEC: Call ima_kexec_cmdline to measure the boot command line args
        IMA: Define a new template field buf
        IMA: Define a new hook to measure the kexec boot command line arguments
        IMA: support for per policy rule template formats
        integrity: Fix __integrity_init_keyring() section mismatch
        ima: Use designated initializers for struct ima_event_data
        ima: use the lsm policy update notifier
        LSM: switch to blocking policy update notifiers
        x86/ima: fix the Kconfig dependency for IMA_ARCH_POLICY
        ima: Make arch_policy_entry static
        ima: prevent a file already mmap'ed write to be mmap'ed execute
        x86/ima: check EFI SetupMode too
      8b681508
    • Linus Torvalds's avatar
      Merge tag 'keys-acl-20190703' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · 0f75ef6a
      Linus Torvalds authored
      Pull keyring ACL support from David Howells:
       "This changes the permissions model used by keys and keyrings to be
        based on an internal ACL by the following means:
      
         - Replace the permissions mask internally with an ACL that contains a
           list of ACEs, each with a specific subject with a permissions mask.
           Potted default ACLs are available for new keys and keyrings.
      
           ACE subjects can be macroised to indicate the UID and GID specified
           on the key (which remain). Future commits will be able to add
           additional subject types, such as specific UIDs or domain
           tags/namespaces.
      
           Also split a number of permissions to give finer control. Examples
           include splitting the revocation permit from the change-attributes
           permit, thereby allowing someone to be granted permission to revoke
           a key without allowing them to change the owner; also the ability
           to join a keyring is split from the ability to link to it, thereby
           stopping a process accessing a keyring by joining it and thus
           acquiring use of possessor permits.
      
         - Provide a keyctl to allow the granting or denial of one or more
           permits to a specific subject. Direct access to the ACL is not
           granted, and the ACL cannot be viewed"
      
      * tag 'keys-acl-20190703' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        keys: Provide KEYCTL_GRANT_PERMISSION
        keys: Replace uid/gid/perm permissions checking with an ACL
      0f75ef6a
    • Linus Torvalds's avatar
      Merge tag 'keys-namespace-20190627' of... · c84ca912
      Linus Torvalds authored
      Merge tag 'keys-namespace-20190627' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
      
      Pull keyring namespacing from David Howells:
       "These patches help make keys and keyrings more namespace aware.
      
        Firstly some miscellaneous patches to make the process easier:
      
         - Simplify key index_key handling so that the word-sized chunks
           assoc_array requires don't have to be shifted about, making it
           easier to add more bits into the key.
      
         - Cache the hash value in the key so that we don't have to calculate
           on every key we examine during a search (it involves a bunch of
           multiplications).
      
         - Allow keying_search() to search non-recursively.
      
        Then the main patches:
      
         - Make it so that keyring names are per-user_namespace from the point
           of view of KEYCTL_JOIN_SESSION_KEYRING so that they're not
           accessible cross-user_namespace.
      
           keyctl_capabilities() shows KEYCTL_CAPS1_NS_KEYRING_NAME for this.
      
         - Move the user and user-session keyrings to the user_namespace
           rather than the user_struct. This prevents them propagating
           directly across user_namespaces boundaries (ie. the KEY_SPEC_*
           flags will only pick from the current user_namespace).
      
         - Make it possible to include the target namespace in which the key
           shall operate in the index_key. This will allow the possibility of
           multiple keys with the same description, but different target
           domains to be held in the same keyring.
      
           keyctl_capabilities() shows KEYCTL_CAPS1_NS_KEY_TAG for this.
      
         - Make it so that keys are implicitly invalidated by removal of a
           domain tag, causing them to be garbage collected.
      
         - Institute a network namespace domain tag that allows keys to be
           differentiated by the network namespace in which they operate. New
           keys that are of a type marked 'KEY_TYPE_NET_DOMAIN' are assigned
           the network domain in force when they are created.
      
         - Make it so that the desired network namespace can be handed down
           into the request_key() mechanism. This allows AFS, NFS, etc. to
           request keys specific to the network namespace of the superblock.
      
           This also means that the keys in the DNS record cache are
           thenceforth namespaced, provided network filesystems pass the
           appropriate network namespace down into dns_query().
      
           For DNS, AFS and NFS are good, whilst CIFS and Ceph are not. Other
           cache keyrings, such as idmapper keyrings, also need to set the
           domain tag - for which they need access to the network namespace of
           the superblock"
      
      * tag 'keys-namespace-20190627' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        keys: Pass the network namespace into request_key mechanism
        keys: Network namespace domain tag
        keys: Garbage collect keys for which the domain has been removed
        keys: Include target namespace in match criteria
        keys: Move the user and user-session keyrings to the user_namespace
        keys: Namespace keyring names
        keys: Add a 'recurse' flag for keyring searches
        keys: Cache the hash value to avoid lots of recalculation
        keys: Simplify key description management
      c84ca912
    • Linus Torvalds's avatar
      Merge tag 'keys-request-20190626' of... · c236b6dd
      Linus Torvalds authored
      Merge tag 'keys-request-20190626' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
      
      Pull request_key improvements from David Howells:
       "These are all request_key()-related, including a fix and some improvements:
      
         - Fix the lack of a Link permission check on a key found by
           request_key(), thereby enabling request_key() to link keys that
           don't grant this permission to the target keyring (which must still
           grant Write permission).
      
           Note that the key must be in the caller's keyrings already to be
           found.
      
         - Invalidate used request_key authentication keys rather than
           revoking them, so that they get cleaned up immediately rather than
           hanging around till the expiry time is passed.
      
         - Move the RCU locks outwards from the keyring search functions so
           that a request_key_rcu() can be provided. This can be called in RCU
           mode, so it can't sleep and can't upcall - but it can be called
           from LOOKUP_RCU pathwalk mode.
      
         - Cache the latest positive result of request_key*() temporarily in
           task_struct so that filesystems that make a lot of request_key()
           calls during pathwalk can take advantage of it to avoid having to
           redo the searching. This requires CONFIG_KEYS_REQUEST_CACHE=y.
      
           It is assumed that the key just found is likely to be used multiple
           times in each step in an RCU pathwalk, and is likely to be reused
           for the next step too.
      
           Note that the cleanup of the cache is done on TIF_NOTIFY_RESUME,
           just before userspace resumes, and on exit"
      
      * tag 'keys-request-20190626' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        keys: Kill off request_key_async{,_with_auxdata}
        keys: Cache result of request_key*() temporarily in task_struct
        keys: Provide request_key_rcu()
        keys: Move the RCU locks outwards from the keyring search functions
        keys: Invalidate used request_key authentication keys
        keys: Fix request_key() lack of Link perm check on found key
      c236b6dd
    • Linus Torvalds's avatar
      Merge tag 'keys-misc-20190619' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · d44a6274
      Linus Torvalds authored
      Pull misc keyring updates from David Howells:
       "These are some miscellaneous keyrings fixes and improvements:
      
         - Fix a bunch of warnings from sparse, including missing RCU bits and
           kdoc-function argument mismatches
      
         - Implement a keyctl to allow a key to be moved from one keyring to
           another, with the option of prohibiting key replacement in the
           destination keyring.
      
         - Grant Link permission to possessors of request_key_auth tokens so
           that upcall servicing daemons can more easily arrange things such
           that only the necessary auth key is passed to the actual service
           program, and not all the auth keys a daemon might possesss.
      
         - Improvement in lookup_user_key().
      
         - Implement a keyctl to allow keyrings subsystem capabilities to be
           queried.
      
        The keyutils next branch has commits to make available, document and
        test the move-key and capabilities code:
      
              https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/log
      
        They're currently on the 'next' branch"
      
      * tag 'keys-misc-20190619' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        keys: Add capability-checking keyctl function
        keys: Reuse keyring_index_key::desc_len in lookup_user_key()
        keys: Grant Link permission to possessers of request_key auth keys
        keys: Add a keyctl to move a key between keyrings
        keys: Hoist locking out of __key_link_begin()
        keys: Break bits out of key_unlink()
        keys: Change keyring_serialise_link_sem to a mutex
        keys: sparse: Fix kdoc mismatches
        keys: sparse: Fix incorrect RCU accesses
        keys: sparse: Fix key_fs[ug]id_changed()
      d44a6274
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20190702' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · 7c0f8963
      Linus Torvalds authored
      Pull selinux updates from Paul Moore:
       "Like the audit pull request this is a little early due to some
        upcoming vacation plans and uncertain network access while I'm away.
        Also like the audit PR, the list of patches here is pretty minor, the
        highlights include:
      
         - Explicitly use __le variables to make sure "sparse" can verify
           proper byte endian handling.
      
         - Remove some BUG_ON()s that are no longer needed.
      
         - Allow zero-byte writes to the "keycreate" procfs attribute without
           requiring key:create to make it easier for userspace to reset the
           keycreate label.
      
         - Consistently log the "invalid_context" field as an untrusted string
           in the AUDIT_SELINUX_ERR audit records"
      
      * tag 'selinux-pr-20190702' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        selinux: format all invalid context as untrusted
        selinux: fix empty write to keycreate file
        selinux: remove some no-op BUG_ONs
        selinux: provide __le variables explicitly
      7c0f8963