Skip to content
Permalink
Stephen-Brenna…
Switch branches/tags

Commits on Jan 13, 2022

  1. panic: disable optimistic spin after halting CPUs

    A CPU executing with console lock spinning enabled might be halted
    during a panic. Before console_flush_on_panic(), it's possible for
    console_trylock() to attempt optimistic spinning, deadlocking the panic
    CPU:
    
    CPU 0 (panic CPU)             CPU 1
    -----------------             ------
                                  printk() {
                                    vprintk_func() {
                                      vprintk_default() {
                                        vprintk_emit() {
                                          console_unlock() {
                                            console_lock_spinning_enable();
                                            ... printing to console ...
    panic() {
      crash_smp_send_stop() {
        NMI  -------------------> HALT
      }
      atomic_notifier_call_chain() {
        printk() {
          ...
          console_trylock_spinnning() {
            // optimistic spin infinitely
    
    This hang during panic can be induced when a kdump kernel is loaded, and
    crash_kexec_post_notifiers=1 is present on the kernel command line. The
    following script which concurrently writes to /dev/kmsg, and triggers a
    panic, can result in this hang:
    
        #!/bin/bash
        date
        # 991 chars (based on log buffer size):
        chars="$(printf 'a%.0s' {1..991})"
        while :; do
            echo $chars > /dev/kmsg
        done &
        echo c > /proc/sysrq-trigger &
        date
        exit
    
    Below are the hang rates for the above test case, based on v5.16-rc8
    before and after this patch:
    
    before:  197 hangs / 340 trials - 57.9%
    after :    0 hangs / 245 trials -  0.0%
    
    Fixes: dbdda84 ("printk: Add console owner and waiter logic to load balance console writes")
    
    Signed-off-by: Stephen Brennan <stephen.s.brennan@oracle.com>
    Reviewed-by: Junxiao Bi <junxiao.bi@oracle.com>
    brenns10 authored and intel-lab-lkp committed Jan 13, 2022

Commits on Jan 12, 2022

  1. Merge tag 'cxl-for-5.17' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/cxl/cxl
    
    Pull CXL (Compute Express Link) updates from Dan Williams:
     "The highlight is initial support for CXL memory hotplug. The static
      NUMA node (ACPI SRAT Physical Address to Proximity Domain) information
      known to platform firmware is extended to support the potential
      performance-class / memory-target nodes dynamically created from
      available CXL memory device capacity.
    
      New unit test infrastructure is added for validating health
      information payloads.
    
      Fixes to module reload stress and stack usage from exposure in -next
      are included. A symbol rename and some other miscellaneous fixups are
      included as well.
    
      Summary:
    
       - Rework ACPI sub-table infrastructure to optionally be used outside
         of __init scenarios and use it for CEDT.CFMWS sub-table parsing.
    
       - Add support for extending num_possible_nodes by the potential
         hotplug CXL memory ranges
    
       - Extend tools/testing/cxl with mock memory device health information
    
       - Fix a module-reload workqueue race
    
       - Fix excessive stack-frame usage
    
       - Rename the driver context data structure from "cxl_mem" since that
         name collides with a proposed driver name
    
       - Use EXPORT_SYMBOL_NS_GPL instead of -DDEFAULT_SYMBOL_NAMESPACE at
         build time"
    
    * tag 'cxl-for-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl:
      cxl/core: Remove cxld_const_init in cxl_decoder_alloc()
      cxl/pmem: Fix module reload vs workqueue state
      ACPI: NUMA: Add a node and memblk for each CFMWS not in SRAT
      cxl/test: Mock acpi_table_parse_cedt()
      cxl/acpi: Convert CFMWS parsing to ACPI sub-table helpers
      ACPI: Add a context argument for table parsing handlers
      ACPI: Teach ACPI table parsing about the CEDT header format
      ACPI: Keep sub-table parsing infrastructure available for modules
      tools/testing/cxl: add mock output for the GET_HEALTH_INFO command
      cxl/memdev: Remove unused cxlmd field
      cxl/core: Convert to EXPORT_SYMBOL_NS_GPL
      cxl/memdev: Change cxl_mem to a more descriptive name
      cxl/mbox: Remove bad comment
      cxl/pmem: Fix reference counting for delayed work
    torvalds committed Jan 12, 2022
  2. Merge tag 'libnvdimm-for-5.17' of git://git.kernel.org/pub/scm/linux/…

    …kernel/git/nvdimm/nvdimm
    
    Pull dax and libnvdimm updates from Dan Williams:
     "The bulk of this is a rework of the dax_operations API after
      discovering the obstacles it posed to the work-in-progress DAX+reflink
      support for XFS and other copy-on-write filesystem mechanics.
    
      Primarily the need to plumb a block_device through the API to handle
      partition offsets was a sticking point and Christoph untangled that
      dependency in addition to other cleanups to make landing the
      DAX+reflink support easier.
    
      The DAX_PMEM_COMPAT option has been around for 4 years and not only
      are distributions shipping userspace that understand the current
      configuration API, but some are not even bothering to turn this option
      on anymore, so it seems a good time to remove it per the deprecation
      schedule. Recall that this was added after the device-dax subsystem
      moved from /sys/class/dax to /sys/bus/dax for its sysfs organization.
      All recent functionality depends on /sys/bus/dax.
    
      Some other miscellaneous cleanups and reflink prep patches are
      included as well.
    
      Summary:
    
       - Simplify the dax_operations API:
    
          - Eliminate bdev_dax_pgoff() in favor of the filesystem
            maintaining and applying a partition offset to all its DAX iomap
            operations.
    
          - Remove wrappers and device-mapper stacked callbacks for
            ->copy_from_iter() and ->copy_to_iter() in favor of moving
            block_device relative offset responsibility to the
            dax_direct_access() caller.
    
          - Remove the need for an @bdev in filesystem-DAX infrastructure
    
          - Remove unused uio helpers copy_from_iter_flushcache() and
            copy_mc_to_iter() as only the non-check_copy_size() versions are
            used for DAX.
    
       - Prepare XFS for the pending (next merge window) DAX+reflink support
    
       - Remove deprecated DEV_DAX_PMEM_COMPAT support
    
       - Cleanup a straggling misuse of the GUID api"
    
    * tag 'libnvdimm-for-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (38 commits)
      iomap: Fix error handling in iomap_zero_iter()
      ACPI: NFIT: Import GUID before use
      dax: remove the copy_from_iter and copy_to_iter methods
      dax: remove the DAXDEV_F_SYNC flag
      dax: simplify dax_synchronous and set_dax_synchronous
      uio: remove copy_from_iter_flushcache() and copy_mc_to_iter()
      iomap: turn the byte variable in iomap_zero_iter into a ssize_t
      memremap: remove support for external pgmap refcounts
      fsdax: don't require CONFIG_BLOCK
      iomap: build the block based code conditionally
      dax: fix up some of the block device related ifdefs
      fsdax: shift partition offset handling into the file systems
      dax: return the partition offset from fs_dax_get_by_bdev
      iomap: add a IOMAP_DAX flag
      xfs: pass the mapping flags to xfs_bmbt_to_iomap
      xfs: use xfs_direct_write_iomap_ops for DAX zeroing
      xfs: move dax device handling into xfs_{alloc,free}_buftarg
      ext4: cleanup the dax handling in ext4_fill_super
      ext2: cleanup the dax handling in ext2_fill_super
      fsdax: decouple zeroing from the iomap buffered I/O code
      ...
    torvalds committed Jan 12, 2022
  3. Merge tag 'fscache-rewrite-20220111' of git://git.kernel.org/pub/scm/…

    …linux/kernel/git/dhowells/linux-fs
    
    Pull fscache rewrite from David Howells:
     "This is a set of patches that rewrites the fscache driver and the
      cachefiles driver, significantly simplifying the code compared to
      what's upstream, removing the complex operation scheduling and object
      state machine in favour of something much smaller and simpler.
    
      The series is structured such that the first few patches disable
      fscache use by the network filesystems using it, remove the cachefiles
      driver entirely and as much of the fscache driver as can be got away
      with without causing build failures in the network filesystems.
    
      The patches after that recreate fscache and then cachefiles,
      attempting to add the pieces in a logical order. Finally, the
      filesystems are reenabled and then the very last patch changes the
      documentation.
    
      [!] Note: I have dropped the cifs patch for the moment, leaving local
          caching in cifs disabled. I've been having trouble getting that
          working. I think I have it done, but it needs more testing (there
          seem to be some test failures occurring with v5.16 also from
          xfstests), so I propose deferring that patch to the end of the
          merge window.
    
      WHY REWRITE?
      ============
    
      Fscache's operation scheduling API was intended to handle sequencing
      of cache operations, which were all required (where possible) to run
      asynchronously in parallel with the operations being done by the
      network filesystem, whilst allowing the cache to be brought online and
      offline and to interrupt service for invalidation.
    
      With the advent of the tmpfile capacity in the VFS, however, an
      opportunity arises to do invalidation much more simply, without having
      to wait for I/O that's actually in progress: Cachefiles can simply
      create a tmpfile, cut over the file pointer for the backing object
      attached to a cookie and abandon the in-progress I/O, dismissing it
      upon completion.
    
      Future work here would involve using Omar Sandoval's vfs_link() with
      AT_LINK_REPLACE[1] to allow an extant file to be displaced by a new
      hard link from a tmpfile as currently I have to unlink the old file
      first.
    
      These patches can also simplify the object state handling as I/O
      operations to the cache don't all have to be brought to a stop in
      order to invalidate a file. To that end, and with an eye on to writing
      a new backing cache model in the future, I've taken the opportunity to
      simplify the indexing structure.
    
      I've separated the index cookie concept from the file cookie concept
      by C type now. The former is now called a "volume cookie" (struct
      fscache_volume) and there is a container of file cookies. There are
      then just the two levels. All the index cookie levels are collapsed
      into a single volume cookie, and this has a single printable string as
      a key. For instance, an AFS volume would have a key of something like
      "afs,example.com,1000555", combining the filesystem name, cell name
      and volume ID. This is freeform, but must not have '/' chars in it.
    
      I've also eliminated all pointers back from fscache into the network
      filesystem. This required the duplication of a little bit of data in
      the cookie (cookie key, coherency data and file size), but it's not
      actually that much. This gets rid of problems with making sure we keep
      netfs data structures around so that the cache can access them.
    
      These patches mean that most of the code that was in the drivers
      before is simply gone and those drivers are now almost entirely new
      code. That being the case, there doesn't seem any particular reason to
      try and maintain bisectability across it. Further, there has to be a
      point in the middle where things are cut over as there's a single
      point everything has to go through (ie. /dev/cachefiles) and it can't
      be in use by two drivers at once.
    
      ISSUES YET OUTSTANDING
      ======================
    
      There are some issues still outstanding, unaddressed by this patchset,
      that will need fixing in future patchsets, but that don't stop this
      series from being usable:
    
      (1) The cachefiles driver needs to stop using the backing filesystem's
          metadata to store information about what parts of the cache are
          populated. This is not reliable with modern extent-based
          filesystems.
    
          Fixing this is deferred to a separate patchset as it involves
          negotiation with the network filesystem and the VM as to how much
          data to download to fulfil a read - which brings me on to (2)...
    
      (2) NFS (and CIFS with the dropped patch) do not take account of how
          the cache would like I/O to be structured to meet its granularity
          requirements. Previously, the cache used page granularity, which
          was fine as the network filesystems also dealt in page
          granularity, and the backing filesystem (ext4, xfs or whatever)
          did whatever it did out of sight. However, we now have folios to
          deal with and the cache will now have to store its own metadata to
          track its contents.
    
          The change I'm looking at making for cachefiles is to store
          content bitmaps in one or more xattrs and making a bit in the map
          correspond to something like a 256KiB block. However, the size of
          an xattr and the fact that they have to be read/updated in one go
          means that I'm looking at covering 1GiB of data per 512-byte map
          and storing each map in an xattr. Cachefiles has the potential to
          grow into a fully fledged filesystem of its very own if I'm not
          careful.
    
          However, I'm also looking at changing things even more radically
          and going to a different model of how the cache is arranged and
          managed - one that's more akin to the way, say, openafs does
          things - which brings me on to (3)...
    
      (3) The way cachefilesd does culling is very inefficient for large
          caches and it would be better to move it into the kernel if I can
          as cachefilesd has to keep asking the kernel if it can cull a
          file. Changing the way the backend works would allow this to be
          addressed.
    
      BITS THAT MAY BE CONTROVERSIAL
      ==============================
    
      There are some bits I've added that may be controversial:
    
      (1) I've provided a flag, S_KERNEL_FILE, that cachefiles uses to check
          if a files is already being used by some other kernel service
          (e.g. a duplicate cachefiles cache in the same directory) and
          reject it if it is. This isn't entirely necessary, but it helps
          prevent accidental data corruption.
    
          I don't want to use S_SWAPFILE as that has other effects, but
          quite possibly swapon() should set S_KERNEL_FILE too.
    
          Note that it doesn't prevent userspace from interfering, though
          perhaps it should. (I have made it prevent a marked directory from
          being rmdir-able).
    
      (2) Cachefiles wants to keep the backing file for a cookie open whilst
          we might need to write to it from network filesystem writeback.
          The problem is that the network filesystem unuses its cookie when
          its file is closed, and so we have nothing pinning the cachefiles
          file open and it will get closed automatically after a short time
          to avoid EMFILE/ENFILE problems.
    
          Reopening the cache file, however, is a problem if this is being
          done due to writeback triggered by exit(). Some filesystems will
          oops if we try to open a file in that context because they want to
          access current->fs or suchlike.
    
          To get around this, I added the following:
    
          (A) An inode flag, I_PINNING_FSCACHE_WB, to be set on a network
              filesystem inode to indicate that we have a usage count on the
              cookie caching that inode.
    
          (B) A flag in struct writeback_control, unpinned_fscache_wb, that
              is set when __writeback_single_inode() clears the last dirty
              page from i_pages - at which point it clears
              I_PINNING_FSCACHE_WB and sets this flag.
    
              This has to be done here so that clearing I_PINNING_FSCACHE_WB
              can be done atomically with the check of PAGECACHE_TAG_DIRTY
              that clears I_DIRTY_PAGES.
    
          (C) A function, fscache_set_page_dirty(), which if it is not set,
              sets I_PINNING_FSCACHE_WB and calls fscache_use_cookie() to
              pin the cache resources.
    
          (D) A function, fscache_unpin_writeback(), to be called by
              ->write_inode() to unuse the cookie.
    
          (E) A function, fscache_clear_inode_writeback(), to be called when
              the inode is evicted, before clear_inode() is called. This
              cleans up any lingering I_PINNING_FSCACHE_WB.
    
          The network filesystem can then use these tools to make sure that
          fscache_write_to_cache() can write locally modified data to the
          cache as well as to the server.
    
          For the future, I'm working on write helpers for netfs lib that
          should allow this facility to be removed by keeping track of the
          dirty regions separately - but that's incomplete at the moment and
          is also going to be affected by folios, one way or another, since
          it deals with pages"
    
    Link: https://lore.kernel.org/all/510611.1641942444@warthog.procyon.org.uk/
    Tested-by: Dominique Martinet <asmadeus@codewreck.org> # 9p
    Tested-by: kafs-testing@auristor.com # afs
    Tested-by: Jeff Layton <jlayton@kernel.org> # ceph
    Tested-by: Dave Wysochanski <dwysocha@redhat.com> # nfs
    Tested-by: Daire Byrne <daire@dneg.com> # nfs
    
    * tag 'fscache-rewrite-20220111' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs: (67 commits)
      9p, afs, ceph, nfs: Use current_is_kswapd() rather than gfpflags_allow_blocking()
      fscache: Add a tracepoint for cookie use/unuse
      fscache: Rewrite documentation
      ceph: add fscache writeback support
      ceph: conversion to new fscache API
      nfs: Implement cache I/O by accessing the cache directly
      nfs: Convert to new fscache volume/cookie API
      9p: Copy local writes to the cache when writing to the server
      9p: Use fscache indexing rewrite and reenable caching
      afs: Skip truncation on the server of data we haven't written yet
      afs: Copy local writes to the cache when writing to the server
      afs: Convert afs to use the new fscache API
      fscache, cachefiles: Display stat of culling events
      fscache, cachefiles: Display stats of no-space events
      cachefiles: Allow cachefiles to actually function
      fscache, cachefiles: Store the volume coherency data
      cachefiles: Implement the I/O routines
      cachefiles: Implement cookie resize for truncate
      cachefiles: Implement begin and end I/O operation
      cachefiles: Implement backing file wrangling
      ...
    torvalds committed Jan 12, 2022
  4. Merge tag 'fuse-update-5.17' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/mszeredi/fuse
    
    Pull fuse updates from Miklos Szeredi:
    
     - Fix a regression introduced in 5.15
    
     - Extend the size of the FUSE_INIT request to accommodate for more
       flags. There's a slight possibility of a regression for obscure fuse
       servers; if this happens, then more complexity will need to be added
       to the protocol
    
     - Allow the DAX property to be controlled by the server on a per-inode
       basis in virtiofs
    
     - Allow sending security context to the server when creating a file or
       directory
    
    * tag 'fuse-update-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
      Documentation/filesystem/dax: DAX on virtiofs
      fuse: mark inode DONT_CACHE when per inode DAX hint changes
      fuse: negotiate per inode DAX in FUSE_INIT
      fuse: enable per inode DAX
      fuse: support per inode DAX in fuse protocol
      fuse: make DAX mount option a tri-state
      fuse: add fuse_should_enable_dax() helper
      fuse: Pass correct lend value to filemap_write_and_wait_range()
      fuse: send security context of inode on file
      fuse: extend init flags
    torvalds committed Jan 12, 2022
  5. Merge tag 'fs_for_v5.17-rc1' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/jack/linux-fs
    
    Pull UDF / reiserfs updates from Jan Kara:
     "One UDF fix and one reiserfs cleanup"
    
    * tag 'fs_for_v5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
      udf: Fix error handling in udf_new_inode()
      reiserfs: don't use congestion_wait()
    torvalds committed Jan 12, 2022
  6. Merge tag 'fsnotify_for_v5.17-rc1' of git://git.kernel.org/pub/scm/li…

    …nux/kernel/git/jack/linux-fs
    
    Pull fanotify updates from Jan Kara:
     "Support for new FAN_RENAME fanotify event and support for reporting
      child info in directory fanotify events (FAN_REPORT_TARGET_FID)"
    
    * tag 'fsnotify_for_v5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
      fanotify: wire up FAN_RENAME event
      fanotify: report old and/or new parent+name in FAN_RENAME event
      fanotify: record either old name new name or both for FAN_RENAME
      fanotify: record old and new parent and name in FAN_RENAME event
      fanotify: support secondary dir fh and name in fanotify_info
      fanotify: use helpers to parcel fanotify_info buffer
      fanotify: use macros to get the offset to fanotify_info buffer
      fsnotify: generate FS_RENAME event with rich information
      fanotify: introduce group flag FAN_REPORT_TARGET_FID
      fsnotify: separate mark iterator type from object type enum
      fsnotify: clarify object type argument
    torvalds committed Jan 12, 2022
  7. Merge tag 'iomap-5.17' of git://git.infradead.org/users/willy/linux

    Pull iomap updates from Matthew Wilcox:
     "Convert xfs/iomap to use folios.
    
      This should be all that is needed for XFS to use large folios. There
      is no code in this pull request to create large folios, but no
      additional changes should be needed to XFS or iomap once they are
      created.
    
      Usually this would have come from Darrick, and we had intended that it
      would come that route. Between the holidays and various things which
      Darrick needed to work on, he asked if I could send things directly.
    
      There weren't any other iomap patches pending for this release, which
      probably also played a role"
    
    * tag 'iomap-5.17' of git://git.infradead.org/users/willy/linux: (26 commits)
      iomap: Inline __iomap_zero_iter into its caller
      xfs: Support large folios
      iomap: Support large folios in invalidatepage
      iomap: Convert iomap_migrate_page() to use folios
      iomap: Convert iomap_add_to_ioend() to take a folio
      iomap: Simplify iomap_do_writepage()
      iomap: Simplify iomap_writepage_map()
      iomap,xfs: Convert ->discard_page to ->discard_folio
      iomap: Convert iomap_write_end_inline to take a folio
      iomap: Convert iomap_write_begin() and iomap_write_end() to folios
      iomap: Convert __iomap_zero_iter to use a folio
      iomap: Allow iomap_write_begin() to be called with the full length
      iomap: Convert iomap_page_mkwrite to use a folio
      iomap: Convert readahead and readpage to use a folio
      iomap: Convert iomap_read_inline_data to take a folio
      iomap: Use folio offsets instead of page offsets
      iomap: Convert bio completions to use folios
      iomap: Pass the iomap_page into iomap_set_range_uptodate
      iomap: Add iomap_invalidate_folio
      iomap: Convert iomap_releasepage to use a folio
      ...
    torvalds committed Jan 12, 2022
  8. Merge tag 'folio-5.17' of git://git.infradead.org/users/willy/pagecache

    Pull folio conversion updates from Matthew Wilcox:
     "Convert much of the page cache to use folios
    
      This stops just short of actually enabling large folios. It converts
      everything that I noticed needs to be converted, but there may still
      be places I've overlooked which still have page size assumptions.
    
      The big change here is using large entries in the page cache XArray
      instead of many small entries. That only affects shmem for now, but
      it's a pretty big change for shmem since it changes where memory needs
      to be allocated (at split time instead of insertion)"
    
    * tag 'folio-5.17' of git://git.infradead.org/users/willy/pagecache: (49 commits)
      mm: Use multi-index entries in the page cache
      XArray: Add xas_advance()
      truncate,shmem: Handle truncates that split large folios
      truncate: Convert invalidate_inode_pages2_range to folios
      fs: Convert vfs_dedupe_file_range_compare to folios
      mm: Remove pagevec_remove_exceptionals()
      mm: Convert find_lock_entries() to use a folio_batch
      filemap: Return only folios from find_get_entries()
      filemap: Convert filemap_get_read_batch() to use a folio_batch
      filemap: Convert filemap_read() to use a folio
      truncate: Add invalidate_complete_folio2()
      truncate: Convert invalidate_inode_pages2_range() to use a folio
      truncate: Skip known-truncated indices
      truncate,shmem: Add truncate_inode_folio()
      shmem: Convert part of shmem_undo_range() to use a folio
      mm: Add unmap_mapping_folio()
      truncate: Add truncate_cleanup_folio()
      filemap: Add filemap_release_folio()
      filemap: Use a folio in filemap_page_mkwrite
      filemap: Use a folio in filemap_map_pages
      ...
    torvalds committed Jan 12, 2022
  9. Merge tag 'spdx-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/gregkh/spdx
    
    Pull SPDX/License update from Greg KH:
     "Here is a single change that fixes up the description of the 'LGPL-2.1
      or later' identifiers so that the tools properly acknowledge that this
      is a valid license.
    
      This change has been in linux-next for weeks with no reported problems"
    
    * tag 'spdx-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/spdx:
      LICENSES/LGPL-2.1: Add LGPL-2.1-or-later as valid identifiers
    torvalds committed Jan 12, 2022
  10. Merge tag 'usb-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/gregkh/usb
    
    Pull USB and Thunderbolt updates from Greg KH:
     "Here is the big set of USB and Thunderbolt driver changes for
      5.17-rc1.
    
      Nothing major in here, just lots of little updates and cleanups. These
      include:
    
       - some USB header fixes picked from Ingo's header-splitup work
    
       - more USB4/Thunderbolt hardware support added
    
       - USB gadget driver updates and additions
    
       - USB typec additions (includes some acpi changes, which were acked
         by the ACPI maintainer)
    
       - core USB fixes as found by syzbot that were too late for 5.16-final
    
       - USB dwc3 driver updates
    
       - USB dwc2 driver updates
    
       - platform_get_irq() conversions of some USB drivers
    
       - other minor USB driver updates and additions
    
      All of these have been in linux-next for a while with no reported
      issues"
    
    * tag 'usb-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (111 commits)
      docs: ABI: fixed formatting in configfs-usb-gadget-uac2
      usb: gadget: u_audio: Subdevice 0 for capture ctls
      usb: gadget: u_audio: fix calculations for small bInterval
      usb: dwc2: gadget: initialize max_speed from params
      usb: dwc2: do not gate off the hardware if it does not support clock gating
      usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe
      headers/deps: USB: Optimize <linux/usb/ch9.h> dependencies, remove <linux/device.h>
      USB: common: debug: add needed kernel.h include
      headers/prep: Fix non-standard header section: drivers/usb/host/ohci-tmio.c
      headers/prep: Fix non-standard header section: drivers/usb/cdns3/core.h
      headers/prep: usb: gadget: Fix namespace collision
      USB: core: Fix bug in resuming hub's handling of wakeup requests
      USB: Fix "slab-out-of-bounds Write" bug in usb_hcd_poll_rh_status
      usb: dwc3: dwc3-qcom: Add missing platform_device_put() in dwc3_qcom_acpi_register_core
      usb: gadget: clear related members when goto fail
      usb: gadget: don't release an existing dev->buf
      usb: dwc2: Simplify a bitmap declaration
      usb: Remove usb_for_each_port()
      usb: typec: port-mapper: Convert to the component framework
      usb: Link the ports to the connectors they are attached to
      ...
    torvalds committed Jan 12, 2022
  11. Merge tag 'tty-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/gregkh/tty
    
    Pull tty/serial driver updates from Greg KH:
     "Here is the big set of tty/serial driver updates for 5.17-rc1.
    
      Nothing major in here, just lots of good updates and fixes, including:
    
       - more tty core cleanups from Jiri as well as mxser driver cleanups.
         This is the majority of the core diffstat
    
       - tty documentation updates from Jiri
    
       - platform_get_irq() updates
    
       - various serial driver updates for new features and hardware
    
       - fifo usage for 8250 console, reducing cpu load a lot
    
       - LED fix for keyboards, long-time bugfix that went through many
         revisions
    
       - minor cleanups
    
      All have been in linux-next for a while with no reported problems"
    
    * tag 'tty-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (119 commits)
      serial: core: Keep mctrl register state and cached copy in sync
      serial: stm32: correct loop for dma error handling
      serial: stm32: fix flow control transfer in DMA mode
      serial: stm32: rework TX DMA state condition
      serial: stm32: move tx dma terminate DMA to shutdown
      serial: pl011: Drop redundant DTR/RTS preservation on close/open
      serial: pl011: Drop CR register reset on set_termios
      serial: pl010: Drop CR register reset on set_termios
      serial: liteuart: fix MODULE_ALIAS
      serial: 8250_bcm7271: Fix return error code in case of dma_alloc_coherent() failure
      Revert "serdev: BREAK/FRAME/PARITY/OVERRUN notification prototype V2"
      tty: goldfish: Use platform_get_irq() to get the interrupt
      serdev: BREAK/FRAME/PARITY/OVERRUN notification prototype V2
      tty: serial: meson: Drop the legacy compatible strings and clock code
      serial: pmac_zilog: Use platform_get_irq() to get the interrupt
      serial: bcm63xx: Use platform_get_irq() to get the interrupt
      serial: ar933x: Use platform_get_irq() to get the interrupt
      serial: vt8500: Use platform_get_irq() to get the interrupt
      serial: altera_jtaguart: Use platform_get_irq_optional() to get the interrupt
      serial: pxa: Use platform_get_irq() to get the interrupt
      ...
    torvalds committed Jan 12, 2022
  12. Merge tag 'staging-5.17-rc1' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/gregkh/staging
    
    Pull staging driver updates from Greg KH:
     "Here's the big set of staging driver updates for 5.17-rc1
    
      Nothing major in here at all, just lots and lots of tiny cleanups.
      Overall more code was removed than added, which is always nice, but
      not a huge change.
    
      Majority of the work happened in the r8188eu driver, that had hundreds
      of cleanups happen on it, but almost all other staging drivers had
      cleanups as well. No new functionality was added, cleanups only.
    
      All of these have been in linux-next for a while with no reported
      problems"
    
    * tag 'staging-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (308 commits)
      staging: r8188eu: rename camelcase variable uintPeerChannel
      staging: r8188eu: make BW20_24G_Diff a 1-D array
      staging: r8188eu: make OFDM_24G_Diff a 1-D array
      staging: r8188eu: BW40_24G_Diff is set but not used
      staging: r8188eu: CCK_24G_Diff is set but not used
      staging: r8188eu: make Index24G_BW40_Base a 1-D array
      staging: r8188eu: make Index24G_CCK_Base a 1-D array
      staging: r8188eu: rfPath is always 0
      staging: r8188eu: remove unneeded parameter from rtl8188e_SetHalODMVar
      staging: pi433: add comment to rx_lock mutex definition
      staging: pi433: fix frequency deviation check
      staging: vc04_services: rename BM2835 to BCM2835 in headers comments
      staging: vc04_services: rename string literal containing bm2835_* to bcm2835*_
      staging: vc04_services: rename variables containing bm2835_* to bcm2835_*
      staging: vc04_services: rename functions containing bm2835_* to bcm2835_*
      staging: vc04_services: rename structures bm2835_mmal_dev and bm2835_mmal_v4l2_ctrl
      staging: greybus: audio: Check null pointer
      staging: r8188eu: add spaces around P2P_AP_P2P_CH_SWITCH_PROCESS_WK
      staging: r8188eu: turbo scan is always off for r8188eu
      staging: r8188eu: cmd_issued_cnt is set but not used
      ...
    torvalds committed Jan 12, 2022
  13. Merge tag 'driver-core-5.17-rc1' of git://git.kernel.org/pub/scm/linu…

    …x/kernel/git/gregkh/driver-core
    
    Pull driver core updates from Greg KH:
     "Here is the set of changes for the driver core for 5.17-rc1.
    
      Lots of little things here, including:
    
       - kobj_type cleanups
    
       - auxiliary_bus documentation updates
    
       - auxiliary_device conversions for some drivers (relevant subsystems
         all have provided acks for these)
    
       - kernfs lock contention reduction for some workloads
    
       - other tiny cleanups and changes.
    
      All of these have been in linux-next for a while with no reported
      issues"
    
    * tag 'driver-core-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (43 commits)
      kobject documentation: remove default_attrs information
      drivers/firmware: Add missing platform_device_put() in sysfb_create_simplefb
      debugfs: lockdown: Allow reading debugfs files that are not world readable
      driver core: Make bus notifiers in right order in really_probe()
      driver core: Move driver_sysfs_remove() after driver_sysfs_add()
      firmware: edd: remove empty default_attrs array
      firmware: dmi-sysfs: use default_groups in kobj_type
      qemu_fw_cfg: use default_groups in kobj_type
      firmware: memmap: use default_groups in kobj_type
      sh: sq: use default_groups in kobj_type
      headers/uninline: Uninline single-use function: kobject_has_children()
      devtmpfs: mount with noexec and nosuid
      driver core: Simplify async probe test code by using ktime_ms_delta()
      nilfs2: use default_groups in kobj_type
      kobject: remove kset from struct kset_uevent_ops callbacks
      driver core: make kobj_type constant.
      driver core: platform: document registration-failure requirement
      vdpa/mlx5: Use auxiliary_device driver data helpers
      net/mlx5e: Use auxiliary_device driver data helpers
      soundwire: intel: Use auxiliary_device driver data helpers
      ...
    torvalds committed Jan 12, 2022
  14. Merge tag 'pinctrl-v5.17-1' of git://git.kernel.org/pub/scm/linux/ker…

    …nel/git/linusw/linux-pinctrl
    
    Pull pin control bulk updates from Linus Walleij:
     "Core changes:
    
       - New standard enumerator and corresponding device tree bindings for
         output impedance pin configuration. (Implemented and used in the
         Renesas rzg2l driver.)
    
       - Cleanup of Kconfig and Makefile to be somewhat orderly and
         alphabetic.
    
      New drivers:
    
       - Samsung Exynos 7885 pin controller.
    
       - Ocelot LAN966x pin controller.
    
       - Qualcomm SDX65 pin controller.
    
       - Qualcomm SM8450 pin controller.
    
       - Qualcomm PM8019, PM8226 and PM2250 pin controllers.
    
       - NXP/Freescale i.MXRT1050 pin controller.
    
       - Intel Thunder Bay pin controller.
    
      Enhancements:
    
       - Introduction of the string library helper function
         "kasprintf_strarray()" and subsequent use in Rockchip, ST and
         Armada pin control drivers, as well as the GPIO mockup driver.
    
       - The Ocelot pin controller has been extensively rewritten to use
         regmap and other modern kernel infrastructure.
    
       - The Microchip SGPIO driver has been converted to use regmap.
    
       - The SPEAr driver had been converted to use regmap.
    
       - Substantial cleanups and janitorial on the Apple pin control driver
         that was merged for v5.16.
    
       - Janitorial to remove of_node assignments in the GPIO portions that
         anyway get this handled in the GPIO core.
    
       - Minor cleanups and improvements in several pin controllers"
    
    * tag 'pinctrl-v5.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (98 commits)
      pinctrl: imx: fix assigning groups names
      dt-bindings: pinctrl: mt8195: add wrapping node of pin configurations
      pinctrl: bcm: ns: use generic groups & functions helpers
      pinctrl: imx: fix allocation result check
      pinctrl: samsung: Use platform_get_irq_optional() to get the interrupt
      pinctrl: Propagate firmware node from a parent device
      dt-bindings: pinctrl: qcom: Add SDX65 pinctrl bindings
      pinctrl: add one more "const" for generic function groups
      pinctrl: keembay: rework loops looking for groups names
      pinctrl: keembay: comment process of building functions a bit
      pinctrl: imx: prepare for making "group_names" in "function_desc" const
      ARM: dts: gpio-ranges property is now required
      pinctrl: aspeed: fix unmet dependencies on MFD_SYSCON for PINCTRL_ASPEED
      pinctrl: Get rid of duplicate of_node assignment in the drivers
      pinctrl-sunxi: don't call pinctrl_gpio_direction()
      pinctrl-bcm2835: don't call pinctrl_gpio_direction()
      pinctrl: bcm2835: Silence uninit warning
      pinctrl: Sort Kconfig and Makefile entries alphabetically
      pinctrl: Add Intel Thunder Bay pinctrl driver
      dt-bindings: pinctrl: Add bindings for Intel Thunderbay pinctrl driver
      ...
    torvalds committed Jan 12, 2022
  15. Merge tag 'media/v5.17-2' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/mchehab/linux-media
    
    Pull media fixes from Mauro Carvalho Chehab:
    
     - some fixes at si2157 tuning logic
    
     - a warning fix on atomisp when used with clang
    
    * tag 'media/v5.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
      media: si2157: add support for DVB-C Annex C
      media: si2157: fix bandwidth stored in dev
      media: si2157: fix 6MHz & 6.1MHz bandwidth setting
      media: atomisp: Do not define input_system_cfg2400_t twice
    torvalds committed Jan 12, 2022
  16. Merge tag 'for-5.17/dm-changes' of git://git.kernel.org/pub/scm/linux…

    …/kernel/git/device-mapper/linux-dm
    
    Pull device mapper updates from Mike Snitzer:
    
     - Fixes and improvements to dm btree and dm space map code in
       persistent-data library used by thinp and cache.
    
     - Update DM integrity to use struct_group() to zero struct
       journal_sector.
    
     - Update DM sysfs to use default_groups in kobj_type.
    
    * tag 'for-5.17/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
      dm sysfs: use default_groups in kobj_type
      dm integrity: Use struct_group() to zero struct journal_sector
      dm space map common: add bounds check to sm_ll_lookup_bitmap()
      dm btree: add a defensive bounds check to insert_at()
      dm btree remove: change a bunch of BUG_ON() calls to proper errors
      dm btree spine: eliminate duplicate le32_to_cpu() in node_check()
      dm btree spine: remove extra node_check function declaration
    torvalds committed Jan 12, 2022
  17. Merge tag 'for-5.17/drivers-2022-01-11' of git://git.kernel.dk/linux-…

    …block
    
    Pull block driver updates from Jens Axboe:
    
     - mtip32xx pci cleanups (Bjorn)
    
     - mtip32xx conversion to generic power management (Vaibhav)
    
     - rsxx pci powermanagement cleanups (Bjorn)
    
     - Remove the rsxx driver. This hardware never saw much adoption, and
       it's been end of lifed for a while. (Christoph)
    
     - MD pull request from Song:
          - REQ_NOWAIT support (Vishal Verma)
          - raid6 benchmark optimization (Dirk Müller)
          - Fix for acct bioset (Xiao Ni)
          - Clean up max_queued_requests (Mariusz Tkaczyk)
          - PREEMPT_RT optimization (Davidlohr Bueso)
          - Use default_groups in kobj_type (Greg Kroah-Hartman)
    
     - Use attribute groups in pktcdvd and rnbd (Greg)
    
     - NVMe pull request from Christoph:
          - increment request genctr on completion (Keith Busch, Geliang
            Tang)
          - add a 'iopolicy' module parameter (Hannes Reinecke)
          - print out valid arguments when reading from /dev/nvme-fabrics
            (Hannes Reinecke)
    
     - Use struct_group() in drbd (Kees)
    
     - null_blk fixes (Ming)
    
     - Get rid of congestion logic in pktcdvd (Neil)
    
     - Floppy ejection hang fix (Tasos)
    
     - Floppy max user request size fix (Xiongwei)
    
     - Loop locking fix (Tetsuo)
    
    * tag 'for-5.17/drivers-2022-01-11' of git://git.kernel.dk/linux-block: (32 commits)
      md: use default_groups in kobj_type
      md: Move alloc/free acct bioset in to personality
      lib/raid6: Use strict priority ranking for pq gen() benchmarking
      lib/raid6: skip benchmark of non-chosen xor_syndrome functions
      md: fix spelling of "its"
      md: raid456 add nowait support
      md: raid10 add nowait support
      md: raid1 add nowait support
      md: add support for REQ_NOWAIT
      md: drop queue limitation for RAID1 and RAID10
      md/raid5: play nice with PREEMPT_RT
      block/rnbd-clt-sysfs: use default_groups in kobj_type
      pktcdvd: convert to use attribute groups
      block: null_blk: only set set->nr_maps as 3 if active poll_queues is > 0
      nvme: add 'iopolicy' module parameter
      nvme: drop unused variable ctrl in nvme_setup_cmd
      nvme: increment request genctr on completion
      nvme-fabrics: print out valid arguments when reading from /dev/nvme-fabrics
      block: remove the rsxx driver
      rsxx: Drop PCI legacy power management
      ...
    torvalds committed Jan 12, 2022
  18. Merge tag 'for-5.17/block-2022-01-11' of git://git.kernel.dk/linux-block

    Pull block updates from Jens Axboe:
    
     - Unify where the struct request handling code is located in the blk-mq
       code (Christoph)
    
     - Header cleanups (Christoph)
    
     - Clean up the io_context handling code (Christoph, me)
    
     - Get rid of ->rq_disk in struct request (Christoph)
    
     - Error handling fix for add_disk() (Christoph)
    
     - request allocation cleanusp (Christoph)
    
     - Documentation updates (Eric, Matthew)
    
     - Remove trivial crypto unregister helper (Eric)
    
     - Reduce shared tag overhead (John)
    
     - Reduce poll_stats memory overhead (me)
    
     - Known indirect function call for dio (me)
    
     - Use atomic references for struct request (me)
    
     - Support request list issue for block and NVMe (me)
    
     - Improve queue dispatch pinning (Ming)
    
     - Improve the direct list issue code (Keith)
    
     - BFQ improvements (Jan)
    
     - Direct completion helper and use it in mmc block (Sebastian)
    
     - Use raw spinlock for the blktrace code (Wander)
    
     - fsync error handling fix (Ye)
    
     - Various fixes and cleanups (Lukas, Randy, Yang, Tetsuo, Ming, me)
    
    * tag 'for-5.17/block-2022-01-11' of git://git.kernel.dk/linux-block: (132 commits)
      MAINTAINERS: add entries for block layer documentation
      docs: block: remove queue-sysfs.rst
      docs: sysfs-block: document virt_boundary_mask
      docs: sysfs-block: document stable_writes
      docs: sysfs-block: fill in missing documentation from queue-sysfs.rst
      docs: sysfs-block: add contact for nomerges
      docs: sysfs-block: sort alphabetically
      docs: sysfs-block: move to stable directory
      block: don't protect submit_bio_checks by q_usage_counter
      block: fix old-style declaration
      nvme-pci: fix queue_rqs list splitting
      block: introduce rq_list_move
      block: introduce rq_list_for_each_safe macro
      block: move rq_list macros to blk-mq.h
      block: drop needless assignment in set_task_ioprio()
      block: remove unnecessary trailing '\'
      bio.h: fix kernel-doc warnings
      block: check minor range in device_add_disk()
      block: use "unsigned long" for blk_validate_block_size().
      block: fix error unwinding in device_add_disk
      ...
    torvalds committed Jan 12, 2022
  19. Merge tag 'for-5.17/io_uring-2022-01-11' of git://git.kernel.dk/linux…

    …-block
    
    Pull io_uring updates from Jens Axboe:
    
     - Support for prioritized work completions (Hao)
    
     - Simplification of reissue (Pavel)
    
     - Add support for CQE skip (Pavel)
    
     - Memory leak fix going to 5.15-stable (Pavel)
    
     - Re-write of internal poll. This both cleans up that code, and gets us
       ready to fix the POLLFREE issue (Pavel)
    
     - Various cleanups (GuoYong, Pavel, Hao)
    
    * tag 'for-5.17/io_uring-2022-01-11' of git://git.kernel.dk/linux-block: (31 commits)
      io_uring: fix not released cached task refs
      io_uring: remove redundant tab space
      io_uring: remove unused function parameter
      io_uring: use completion batching for poll rem/upd
      io_uring: single shot poll removal optimisation
      io_uring: poll rework
      io_uring: kill poll linking optimisation
      io_uring: move common poll bits
      io_uring: refactor poll update
      io_uring: remove double poll on poll update
      io_uring: code clean for some ctx usage
      io_uring: batch completion in prior_task_list
      io_uring: split io_req_complete_post() and add a helper
      io_uring: add helper for task work execution code
      io_uring: add a priority tw list for irq completion work
      io-wq: add helper to merge two wq_lists
      io_uring: reuse io_req_task_complete for timeouts
      io_uring: tweak iopoll CQE_SKIP event counting
      io_uring: simplify selected buf handling
      io_uring: move up io_put_kbuf() and io_put_rw_kbuf()
      ...
    torvalds committed Jan 12, 2022
  20. Merge tag 'dma-mapping-5.17' of git://git.infradead.org/users/hch/dma…

    …-mapping
    
    Pull dma-mapping updates from Christoph Hellwig:
    
     - refactor the dma-direct coherent allocator
    
     - turn an macro into an inline in scatterlist.h (Logan Gunthorpe)
    
    * tag 'dma-mapping-5.17' of git://git.infradead.org/users/hch/dma-mapping:
      lib/scatterlist: cleanup macros into static inline functions
      dma-direct: add a dma_direct_use_pool helper
      dma-direct: factor the swiotlb code out of __dma_direct_alloc_pages
      dma-direct: drop two CONFIG_DMA_RESTRICTED_POOL conditionals
      dma-direct: warn if there is no pool for force unencrypted allocations
      dma-direct: fail allocations that can't be made coherent
      dma-direct: refactor the !coherent checks in dma_direct_alloc
      dma-direct: factor out a helper for DMA_ATTR_NO_KERNEL_MAPPING allocations
      dma-direct: clean up the remapping checks in dma_direct_alloc
      dma-direct: always leak memory that can't be re-encrypted
      dma-direct: don't call dma_set_decrypted for remapped allocations
      dma-direct: factor out dma_set_{de,en}crypted helpers
    torvalds committed Jan 12, 2022
  21. Merge tag 'locking_core_for_v5.17_rc1' of git://git.kernel.org/pub/sc…

    …m/linux/kernel/git/tip/tip
    
    Pull locking updates from Borislav Petkov:
     "Lots of cleanups and preparation. Highlights:
    
       - futex: Cleanup and remove runtime futex_cmpxchg detection
    
       - rtmutex: Some fixes for the PREEMPT_RT locking infrastructure
    
       - kcsan: Share owner_on_cpu() between mutex,rtmutex and rwsem and
         annotate the racy owner->on_cpu access *once*.
    
       - atomic64: Dead-Code-Elemination"
    
    [ Description above by Peter Zijlstra ]
    
    * tag 'locking_core_for_v5.17_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      locking/atomic: atomic64: Remove unusable atomic ops
      futex: Fix additional regressions
      locking: Allow to include asm/spinlock_types.h from linux/spinlock_types_raw.h
      x86/mm: Include spinlock_t definition in pgtable.
      locking: Mark racy reads of owner->on_cpu
      locking: Make owner_on_cpu() into <linux/sched.h>
      lockdep/selftests: Adapt ww-tests for PREEMPT_RT
      lockdep/selftests: Skip the softirq related tests on PREEMPT_RT
      lockdep/selftests: Unbalanced migrate_disable() & rcu_read_lock().
      lockdep/selftests: Avoid using local_lock_{acquire|release}().
      lockdep: Remove softirq accounting on PREEMPT_RT.
      locking/rtmutex: Add rt_mutex_lock_nest_lock() and rt_mutex_lock_killable().
      locking/rtmutex: Squash self-deadlock check for ww_rt_mutex.
      locking: Remove rt_rwlock_is_contended().
      sched: Trigger warning if ->migration_disabled counter underflows.
      futex: Fix sparc32/m68k/nds32 build regression
      futex: Remove futex_cmpxchg detection
      futex: Ensure futex_atomic_cmpxchg_inatomic() is present
      kernel/locking: Use a pointer in ww_mutex_trylock().
    torvalds committed Jan 12, 2022
  22. Merge tag 'sched_core_for_v5.17_rc1' of git://git.kernel.org/pub/scm/…

    …linux/kernel/git/tip/tip
    
    Pull scheduler updates from Borislav Petkov:
     "Mostly minor things this time; some highlights:
    
       - core-sched: Add 'Forced Idle' accounting; this allows to track how
         much CPU time is 'lost' due to core scheduling constraints.
    
       - psi: Fix for MEM_FULL; a task running reclaim would be counted as a
         runnable task and prevent MEM_FULL from being reported.
    
       - cpuacct: Long standing fixes for some cgroup accounting issues.
    
       - rt: Bandwidth timer could, under unusual circumstances, be failed
         to armed, leading to indefinite throttling."
    
    [ Description above by Peter Zijlstra ]
    
    * tag 'sched_core_for_v5.17_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      sched/fair: Replace CFS internal cpu_util() with cpu_util_cfs()
      sched/fair: Cleanup task_util and capacity type
      sched/rt: Try to restart rt period timer when rt runtime exceeded
      sched/fair: Document the slow path and fast path in select_task_rq_fair
      sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity
      sched/fair: Fix detection of per-CPU kthreads waking a task
      sched/cpuacct: Make user/system times in cpuacct.stat more precise
      sched/cpuacct: Fix user/system in shown cpuacct.usage*
      cpuacct: Convert BUG_ON() to WARN_ON_ONCE()
      cputime, cpuacct: Include guest time in user time in cpuacct.stat
      psi: Fix PSI_MEM_FULL state when tasks are in memstall and doing reclaim
      sched/core: Forced idle accounting
      psi: Add a missing SPDX license header
      psi: Remove repeated verbose comment
    torvalds committed Jan 12, 2022
  23. Merge tag 'Wcast-function-type-5.17-rc1' of git://git.kernel.org/pub/…

    …scm/linux/kernel/git/gustavoars/linux
    
    Pull cast-function-type warning addition from Gustavo A. R. Silva:
     "This globally enables -Wcast-function-type.
    
      We need to make sure new function cast mismatches are not introduced
      in the kernel in order to avoid tripping CFI checking"
    
    * tag 'Wcast-function-type-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux:
      Makefile: Enable -Wcast-function-type
    torvalds committed Jan 12, 2022
  24. Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm

    Pull ARM updates from Russell King:
    
     - amba bus irq rework
    
     - add kfence support
    
     - support for Cortex M33 and M55 CPUs
    
     - kbuild updates for decompressor
    
     - let core code manage thread_info::cpu
    
     - avoid unpredictable NOP encoding in decompressor
    
     - reduce information printed in calltraces
    
    * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
      ARM: reduce the information printed in call traces
      ARM: 9168/1: Add support for Cortex-M55 processor
      ARM: 9167/1: Add support for Cortex-M33 processor
      ARM: 9166/1: Support KFENCE for ARM
      ARM: 9165/1: mm: Provide is_write_fault()
      ARM: 9164/1: mm: Provide set_memory_valid()
      ARM: 9163/1: amba: Move of_amba_device_decode_irq() into amba_probe()
      ARM: 9162/1: amba: Kill sysfs attribute file of irq
      ARM: 9161/1: mm: mark private VM_FAULT_X defines as vm_fault_t
      ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
      ARM: 9158/1: leave it to core code to manage thread_info::cpu
      ARM: 9154/1: decompressor: do not copy source files while building
    torvalds committed Jan 12, 2022

Commits on Jan 11, 2022

  1. Merge tag 'for-5.17/parisc-1' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/deller/parisc-linux
    
    Pull parisc architecture updates from Helge Deller:
    
     - Fix lpa and lpa_user defines (John David Anglin)
    
     - Fix symbol lookup of init functions with an __is_kernel() fix (Helge
       Deller)
    
     - Fix wrong pdc_toc_pim_11 and pdc_toc_pim_20 definitions (Helge
       Deller)
    
     - Add lws_atomic_xchg and lws_atomic_store syscalls (John David Anglin)
    
     - Rewrite light-weight syscall and futex code (John David Anglin)
    
     - Enable TOC (transfer of contents) feature unconditionally (Helge
       Deller)
    
     - Improve fault handler messages (John David Anglin)
    
     - Improve build process (Masahiro Yamada)
    
     - Reduce kernel code footprint of user access functions (Helge Deller)
    
     - Fix build error due to outX() macros (Bart Van Assche)
    
     - Ue default_groups in kobj_type in pdc_stable (Greg Kroah-Hartman)
    
     - Default to 16 CPUs on 32-bit kernel (Helge Deller)
    
    * tag 'for-5.17/parisc-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
      parisc: Default to 16 CPUs on 32-bit kernel
      sections: Fix __is_kernel() to include init ranges
      parisc: Re-use toc_stack as hpmc_stack
      parisc: Enable TOC (transfer of contents) feature unconditionally
      parisc: io: Improve the outb(), outw() and outl() macros
      parisc: pdc_stable: use default_groups in kobj_type
      parisc: Add kgdb io_module to read chars via PDC
      parisc: Fix pdc_toc_pim_11 and pdc_toc_pim_20 definitions
      parisc: Add lws_atomic_xchg and lws_atomic_store syscalls
      parisc: Rewrite light-weight syscall and futex code
      parisc: Enhance page fault termination message
      parisc: Don't call faulthandler_disabled() in do_page_fault()
      parisc: Switch user access functions to signal errors in r29 instead of r8
      parisc: Avoid calling faulthandler_disabled() twice
      parisc: Fix lpa and lpa_user defines
      parisc: Define depi_safe macro
      parisc: decompressor: do not copy source files while building
    torvalds committed Jan 11, 2022
  2. Merge tag 'x86_build_for_v5.17_rc1-p2' of git://git.kernel.org/pub/sc…

    …m/linux/kernel/git/tip/tip
    
    Pull missed x86 build updates from Borislav Petkov:
     "In the heat of the battle between me and the tip pull requests, I've
      sent you the tip:x86/build branch without the two top-most commits
      from Ingo (it appears I hadn't fast-forwarded my local branch, sorry
      about that).
    
      Therefore, here's a part 2 of x86/build for 5.17.
    
       - Make x86 defconfigs more useful by enabling
         CONFIG_LOCALVERSION_AUTO and CONFIG_KALLSYMS_ALL
    
      And while you merge that, I'll be at the blackboard, writing:
    
        I will always fast-forward local branches before tagging and sending pull requests to Linus.
        I will always fast-forward local branches before tagging and sending pull requests to Linus.
        I will always fast-forward local branches before tagging and sending pull requests..."
    
    * tag 'x86_build_for_v5.17_rc1-p2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
      x86/defconfig: Enable CONFIG_LOCALVERSION_AUTO=y in the defconfig
    torvalds committed Jan 11, 2022
  3. Merge tag 'efi-next-for-v5.17' of git://git.kernel.org/pub/scm/linux/…

    …kernel/git/efi/efi
    
    Pull EFI updates from Ard Biesheuvel:
    
     - support taking the measurement of the initrd when loaded via the
       LoadFile2 protocol
    
     - kobject API cleanup from Greg
    
     - some header file whitespace fixes
    
    * tag 'efi-next-for-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
      efi: use default_groups in kobj_type
      efi/libstub: measure loaded initrd info into the TPM
      efi/libstub: consolidate initrd handling across architectures
      efi/libstub: x86/mixed: increase supported argument count
      efi/libstub: add prototype of efi_tcg2_protocol::hash_log_extend_event()
      include/linux/efi.h: Remove unneeded whitespaces before tabs
    torvalds committed Jan 11, 2022
  4. Merge tag 'for-linus-5.17-rc1' of git://git.kernel.org/pub/scm/linux/…

    …kernel/git/rw/uml
    
    Pull UML updates from Richard Weinberger:
    
     - set_fs removal
    
     - Devicetree support
    
     - Many cleanups from Al
    
     - Various virtio and build related fixes
    
    * tag 'for-linus-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml: (31 commits)
      um: virtio_uml: Allow probing from devicetree
      um: Add devicetree support
      um: Extract load file helper from initrd.c
      um: remove set_fs
      hostfs: Fix writeback of dirty pages
      um: Use swap() to make code cleaner
      um: header debriding - sigio.h
      um: header debriding - os.h
      um: header debriding - net_*.h
      um: header debriding - mem_user.h
      um: header debriding - activate_ipi()
      um: common-offsets.h debriding...
      um, x86: bury crypto_tfm_ctx_offset
      um: unexport handle_page_fault()
      um: remove a dangling extern of syscall_trace()
      um: kill unused cpu()
      uml/i386: missing include in barrier.h
      um: stop polluting the namespace with registers.h contents
      logic_io instance of iounmap() needs volatile on argument
      um: move amd64 variant of mmap(2) to arch/x86/um/syscalls_64.c
      ...
    torvalds committed Jan 11, 2022
  5. Merge tag 'for-linus-5.17-rc1' of git://git.kernel.org/pub/scm/linux/…

    …kernel/git/rw/ubifs
    
    Pull JFFS2, UBI and UBIFS updates from Richard Weinberger:
     "JFFS2:
       - Fix for a deadlock in jffs2_write_begin()
    
      UBI:
       - Fixes in comments
    
      UBIFS:
       - Expose error counters in sysfs
       - Many bugfixes found by Hulk Robot and others"
    
    * tag 'for-linus-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs:
      jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
      ubifs: read-only if LEB may always be taken in ubifs_garbage_collect
      ubifs: fix double return leb in ubifs_garbage_collect
      ubifs: fix slab-out-of-bounds in ubifs_change_lp
      ubifs: fix snprintf() length check
      ubifs: Document sysfs nodes
      ubifs: Export filesystem error counters
      ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
      ubifs: Make use of the helper macro kthread_run()
      ubi: Fix a mistake in comment
      ubifs: Fix spelling mistakes
    torvalds committed Jan 11, 2022
  6. Merge tag 'dlm-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git…

    …/teigland/linux-dlm
    
    Pull dlm updates from David Teigland:
     "This set includes the normal collection of minor fixes and cleanups,
      new kmem caches for network messaging structs, a start on some basic
      tracepoints, and some new debugfs files for inserting test messages"
    
    * tag 'dlm-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm: (32 commits)
      fs: dlm: print cluster addr if non-cluster node connects
      fs: dlm: memory cache for lowcomms hotpath
      fs: dlm: memory cache for writequeue_entry
      fs: dlm: memory cache for midcomms hotpath
      fs: dlm: remove wq_alloc mutex
      fs: dlm: use event based wait for pending remove
      fs: dlm: check for pending users filling buffers
      fs: dlm: use list_empty() to check last iteration
      fs: dlm: fix build with CONFIG_IPV6 disabled
      fs: dlm: replace use of socket sk_callback_lock with sock_lock
      fs: dlm: don't call kernel_getpeername() in error_report()
      fs: dlm: fix potential buffer overflow
      fs: dlm:Remove unneeded semicolon
      fs: dlm: remove double list_first_entry call
      fs: dlm: filter user dlm messages for kernel locks
      fs: dlm: add lkb waiters debugfs functionality
      fs: dlm: add lkb debugfs functionality
      fs: dlm: allow create lkb with specific id range
      fs: dlm: add debugfs rawmsg send functionality
      fs: dlm: let handle callback data as void
      ...
    torvalds committed Jan 11, 2022
  7. Merge tag 'gfs2-v5.16-rc3-fixes' of git://git.kernel.org/pub/scm/linu…

    …x/kernel/git/gfs2/linux-gfs2
    
    Pull gfs2 updates from Andreas Gruenbacher:
     "Various minor gfs2 cleanups and fixes"
    
    * tag 'gfs2-v5.16-rc3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
      gfs2: dump inode object for iopen glocks
      gfs2: Fix gfs2_instantiate description
      gfs2: Remove redundant check for GLF_INSTANTIATE_NEEDED
      gfs2: remove redundant set of INSTANTIATE_NEEDED
      gfs2: Fix __gfs2_holder_init function name in kernel-doc comment
    torvalds committed Jan 11, 2022
  8. Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kern…

    …el/git/tytso/ext4
    
    Pull ext4 updates from Ted Ts'o:
     "Convert ext4 to use the new mount API, and add support for the
      FS_IOC_GETFSLABEL and FS_IOC_SETFSLABEL ioctls.
    
      In addition the usual large number of clean ups and bug fixes, in
      particular for the fast_commit feature"
    
    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (48 commits)
      ext4: don't use the orphan list when migrating an inode
      ext4: use BUG_ON instead of if condition followed by BUG
      ext4: fix a copy and paste typo
      ext4: set csum seed in tmp inode while migrating to extents
      ext4: remove unnecessary 'offset' assignment
      ext4: remove redundant o_start statement
      ext4: drop an always true check
      ext4: remove unused assignments
      ext4: remove redundant statement
      ext4: remove useless resetting io_end_size in mpage_process_page()
      ext4: allow to change s_last_trim_minblks via sysfs
      ext4: change s_last_trim_minblks type to unsigned long
      ext4: implement support for get/set fs label
      ext4: only set EXT4_MOUNT_QUOTA when journalled quota file is specified
      ext4: don't use kfree() on rcu protected pointer sbi->s_qf_names
      ext4: avoid trim error on fs with small groups
      ext4: fix an use-after-free issue about data=journal writeback mode
      ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits'
      ext4: initialize err_blk before calling __ext4_get_inode_loc
      ext4: fix a possible ABBA deadlock due to busy PA
      ...
    torvalds committed Jan 11, 2022
  9. Merge tag 'xfs-5.17-merge-2' of git://git.kernel.org/pub/scm/fs/xfs/x…

    …fs-linux
    
    Pull xfs updates from Darrick Wong:
     "The big new feature here is that the mount code now only bothers to
      try to free stale COW staging extents if the fs unmounted uncleanly.
      This should reduce mount times, particularly on filesystems supporting
      reflink and containing a large number of allocation groups.
    
      Everything else this cycle are bugfixes, as the iomap folios
      conversion should be plenty enough excitement for anyone. That and I
      ran out of brain bandwidth after Thanksgiving last year.
    
      Summary:
    
       - Fix log recovery with da btree buffers when metauuid is in use.
    
       - Fix type coercion problems in xattr buffer size validation.
    
       - Fix a bug in online scrub dir leaf bestcount checking.
    
       - Only run COW recovery when recovering the log.
    
       - Fix symlink target buffer UAF problems and symlink locking problems
         by not exposing xfs innards to the VFS.
    
       - Fix incorrect quotaoff lock usage.
    
       - Don't let transactions cancel cleanly if they have deferred work
         items attached.
    
       - Fix a UAF when we're deciding if we need to relog an intent item.
    
       - Reduce kvmalloc overhead for log shadow buffers.
    
       - Clean up sysfs attr group usage.
    
       - Fix a bug where scrub's bmap/rmap checking could race with a quota
         file block allocation due to insufficient locking.
    
       - Teach scrub to complain about invalid project ids"
    
    * tag 'xfs-5.17-merge-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
      xfs: warn about inodes with project id of -1
      xfs: hold quota inode ILOCK_EXCL until the end of dqalloc
      xfs: Remove redundant assignment of mp
      xfs: reduce kvmalloc overhead for CIL shadow buffers
      xfs: sysfs: use default_groups in kobj_type
      xfs: prevent UAF in xfs_log_item_in_current_chkpt
      xfs: prevent a WARN_ONCE() in xfs_ioc_attr_list()
      xfs: Fix comments mentioning xfs_ialloc
      xfs: check sb_meta_uuid for dabuf buffer recovery
      xfs: fix a bug in the online fsck directory leaf1 bestcount check
      xfs: only run COW extent recovery when there are no live extents
      xfs: don't expose internal symlink metadata buffers to the vfs
      xfs: fix quotaoff mutex usage now that we don't support disabling it
      xfs: shut down filesystem if we xfs_trans_cancel with deferred work items
    torvalds committed Jan 11, 2022
  10. Merge tag 'for-5.17-tag' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/kdave/linux
    
    Pull btrfs updates from David Sterba:
     "This end of the year branch is intentionally not that exciting. Most
      of the changes are under the hood, but there are some minor user
      visible improvements and several performance improvements too.
    
      Features:
    
       - make send work with concurrent block group relocation.
    
         We're not allowed to prevent send failing or silently producing
         some bad stream but with more fine grained locking and checks it's
         possible. The send vs deduplication exclusion could reuse the same
         logic in the future.
    
       - new exclusive operation 'balance paused' to allow adding a device
         to filesystem with paused balance
    
       - new sysfs file for fsid stored in the per-device directory to help
         distinguish devices when seeding is enabled, the fsid may differ
         from the one reported by the filesystem
    
      Performance improvements:
    
       - less metadata needed for directory logging, directory deletion is
         20-40% faster
    
       - in zoned mode, cache zone information during mount to speed up
         repeated queries (about 50% speedup)
    
       - free space tree entries get indexed and searched by size (latency
         -30%, search run time -30%)
    
       - less contention in tree node locking when inserting a key and no
         splits are needed (files/sec in fsmark improves by 1-20%)
    
      Fixes:
    
       - fix ENOSPC failure when attempting direct IO write into NOCOW range
    
       - fix deadlock between quota enable and other quota operations
    
       - global reserve minimum calculations fixed to account for free space
         tree
    
       - in zoned mode, fix condition for chunk allocation that may not find
         the right zone for reuse and could lead to early ENOSPC
    
      Core:
    
       - global reserve stealing got simplified and cleaned up in evict
    
       - remove async transaction commit based on manual transaction refs,
         reuse existing kthread and mechanisms to let it commit transaction
         before timeout
    
       - preparatory work for extent tree v2, add wrappers for global tree
         roots, truncation path cleanups
    
       - remove readahead framework, it's a bit overengineered and used only
         for scrub, and yet it does not cover all its needs, there is
         another readahead built in the b-tree search that is now used,
         performance drop on HDD is about 5% which is acceptable and scrub
         is often throttled anyway, on SSDs there's no reported drop but
         slight improvement
    
       - self tests report extent tree state when error occurs
    
       - replace assert with debugging information when an uncommitted
         transaction is found at unmount time
    
      Other:
    
       - error handling improvements
    
       - other cleanups and refactoring"
    
    * tag 'for-5.17-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (115 commits)
      btrfs: output more debug messages for uncommitted transaction
      btrfs: respect the max size in the header when activating swap file
      btrfs: fix argument list that the kdoc format and script verified
      btrfs: remove unnecessary parameter type from compression_decompress_bio
      btrfs: selftests: dump extent io tree if extent-io-tree test failed
      btrfs: scrub: cleanup the argument list of scrub_stripe()
      btrfs: scrub: cleanup the argument list of scrub_chunk()
      btrfs: remove reada infrastructure
      btrfs: scrub: use btrfs_path::reada for extent tree readahead
      btrfs: scrub: remove the unnecessary path parameter for scrub_raid56_parity()
      btrfs: refactor unlock_up
      btrfs: skip transaction commit after failure to create subvolume
      btrfs: zoned: fix chunk allocation condition for zoned allocator
      btrfs: add extent allocator hook to decide to allocate chunk or not
      btrfs: zoned: unset dedicated block group on allocation failure
      btrfs: zoned: drop redundant check for REQ_OP_ZONE_APPEND and btrfs_is_zoned
      btrfs: zoned: sink zone check into btrfs_repair_one_zone
      btrfs: zoned: simplify btrfs_check_meta_write_pointer
      btrfs: zoned: encapsulate inode locking for zoned relocation
      btrfs: sysfs: add devinfo/fsid to retrieve actual fsid from the device
      ...
    torvalds committed Jan 11, 2022
Older