Skip to content
Permalink
Iouri-Tarassov…
Switch branches/tags

Commits on Jan 12, 2022

  1. drivers: hv: dxgkrnl: Implement DXGSYNCFILE

    Implement the LX_DXCREATESYNCFILE IOCTL (D3DKMTCreateSyncFile).
    
    dxgsyncfile is built on top of the Linux sync_file object and
    provides a way for the user mode to synchronize with the execution
    of the device DMA packets.
    
    The IOCTL creates a dxgsyncfile object for the given GPU synchronization
    object and a fence value. A sync_object file descriptor is returned to
    the caller. The caller could wait for the object by using poll().
    When the GPU synchronization object is signaled on the host, the host
    sends a message to the virtual machine and the sync_file object is
    signaled.
    
    Signed-off-by: Iouri Tarassov <iourit@linux.microsoft.com>
    Iouri Tarassov authored and intel-lab-lkp committed Jan 12, 2022
  2. drivers: hv: dxgkrnl: Implement various WDDM ioctls

    Implement various WDDM IOCTLs.
    
    - IOCTLs to handle GPU virtual addressing (VA):
       LX_DXRESERVEGPUVIRTUALADDRESS (D3DKMTReserveGpuVertualAddress)
       LX_DXFREEGPUVIRTUALADDRESS (D3DKMTFreeGpuVertualAddress)
       LX_DXMAPGPUVIRTUALADDRESS (D3DKMTMapGpuVertualAddress)
       LX_DXUPDATEGPUVIRTUALADDRESS (D3DKMTUpdateGpuVertualAddress)
    
       WDDM supports a compute device to use GPU virtual addresses when
       accessing allocation memory. A GPU VA could be reserved or mapped
       to a GPU allocation. The video memory manager on the host updates
       GPU page tables for the virtual addresses.
    
    - IOCTLs to manage residency of GPU accessing allocations:
       LX_DXMAKERESIDENT (D3DKMTMakeResident)
       LX_DXEVICT (D3DKMTEvict)
    
       An allocation is resident when GPU is setup to access it. The
       current WDDM design does not support on demand GPU page faulting.
       An allocation must be resident (be in the local device memory or
       in non-pageable system memory) before GPU is allowed to access it.
    
    - IOCTLs to offer/reclaim alloctions:
       LX_DXOFFERALLOCATIONS {D3DKMTOfferAllocations)
       LX_DXRECLAIMALLOCATIONS2 (D3DKMTReclaimAllocations)
    
       When a user mode driver does not need an allocation, it can
       "offer" it. This means that the allocation is not in use and it
       local device memory could be reclaimed and given to another allocation.
       When the allocation is again needed, the caller can "reclaim" the
       allocations. If the allocation is still in the device local memory,
       the reclaim operation succeeds. If not the called must restore the
       content of the allocation before it can be used by the device.
    
    - LX_DXESCAPE (D3DKMTEscape)
      This IOCTL is used to send/receive private data between user mode
      driver and kernel mode driver. This is an extension of the WDDM APIs.
    
    - LX_DXGETDEVICESTATE (D3DKMTGetDeviceState)
      The IOCTL is used to get the current execution state of the dxgdevice
      object.
    
    - LX_DXMARKDEVICEASERROR (D3DKMTMarkDeviceAsError)
      The IOCTL is used to bring the dxgdevice object to the error state.
      Subsequent calls to use the device object will fail.
    
    - LX_DXQUERYSTATISTICS (D3DKMTQuerystatistics)
      The IOCTL is used to query various statistics from the compute device
      on the host.
    
    - IOCTLs to deal with execution context priorities
      LX_DXGETCONTEXTINPROCESSSCHEDULINGPRIORITY
      LX_DXGETCONTEXTSCHEDULINGPRIORITY
      LX_DXSETCONTEXTINPROCESSSCHEDULINGPRIORITY
      LX_DXSETCONTEXTSCHEDULINGPRIORITY
    
    Signed-off-by: Iouri Tarassov <iourit@linux.microsoft.com>
    Iouri Tarassov authored and intel-lab-lkp committed Jan 12, 2022
  3. drivers: hv: dxgkrnl: Implementation of submit command, paging and ha…

    …rdware queue.
    
    Implement various IOCTLs to deal with hardware queues and  paging queues.
    Hardware queues are used when a compute device supports "hardware
    scheduling". This means that the compute device itself schedules execution
    of DMA buffers from hardware queues without CPU intervention. This is as
    oppose to the "packet scheduling" mode where the software GPU scheduler
    on the host schedules DMA buffer execution.
    
    LX_DXSUBMITCOMMAND
       This IOCTL is used to submit GPU commands when the device supports the
       "packet scheduling" mode.
    
    LX_DXSUBMITCOMMANDTOHWQUEUE
       This IOCTL is used to submit GPU commands when the device supports the
       "hardware scheduling" mode.
    
    LX_DXCREATEPAGINGQUEUE, LX_DXDESTROYPAGINGQUEUE
       These IOCTLs are used to create/destroy a paging queue.
       Paging queues are used to handle residency of device accessible
       allocations. An allocation is resident, when the device has access to
       it. For example, the allocation resides in local device memory or
       device page tables point to system memory which is made non-pageable.
    
    LX_DXCREATEHWQUEUE, LX_DXDESTROYHWQUEUE
       These IOCTLs are used to create/destroy hardware queue objects.
       Hardware queues are used when the compute device supports the
       "hardware scheduling" mode.
    
    Signed-off-by: Iouri Tarassov <iourit@linux.microsoft.com>
    Iouri Tarassov authored and intel-lab-lkp committed Jan 12, 2022
  4. drivers: hv: dxgkrnl: Seal the shared resource object when dxgk_share…

    …_objects is called.
    
    A dxgresource object is a collection of dxgallocation objects.
    The WDDM API allows addition/removal allocations to a resource.
    The WDDM API has limitations on addition/removal of allocations to
    a shared resource. When a resource is "sealed", addition/removal of
    allocations is not allowed.
    
    Signed-off-by: Iouri Tarassov <iourit@linux.microsoft.com>
    Iouri Tarassov authored and intel-lab-lkp committed Jan 12, 2022
  5. drivers: hv: dxgkrnl: Implement sharing resources and sync objects

    Implement IOCTLs for sharing dxgresource and dxgsyncobject objects between
    processes in the virtual machine.
    
    Resources and sync objects are shared using FD (file descriptor) handles.
    The name "NT handle" is used to be compatible with Windows implementation.
    
    An FD handle is created by the LX_DXSHAREOBJECTS ioctl. The given FD
    handle could be sent to another process using any Linux API.
    
    To use a shared object in WDDM API calls, the object needs to be opened
    using its FD handle. An object could be opened by the following ioctls:
    LX_DXOPENRESOURCEFROMNTHANDLE,
    LX_DXOPENSYNCOBJECTFROMNTHANDLE2.
    
    LX_DXQUERYRESOURCEINFOFROMNTHANDLE is used to query private driver
    data of a shared resource object. This private data needs to be used
    to actually open the object using LX_DXOPENRESOURCEFROMNTHANDLE.
    
    Signed-off-by: Iouri Tarassov <iourit@linux.microsoft.com>
    Iouri Tarassov authored and intel-lab-lkp committed Jan 12, 2022
  6. drivers: hv: dxgkrnl: Implement operations with GPU sync objects

    Implement ioctls for using GPU synchronization objects:
       LX_DXCREATESYNCHRONIZATIONOBJECT,
       LX_DXSIGNALSYNCHRONIZATIONOBJECT,
       LX_DXWAITFORSYNCHRONIZATIONOBJECT,
       LX_DXDESTROYSYNCHRONIZATIONOBJECT,
       LX_DXSIGNALSYNCHRONIZATIONOBJECTFROMCPU,
       LX_DXSIGNALSYNCHRONIZATIONOBJECTFROMGPU,
       LX_DXSIGNALSYNCHRONIZATIONOBJECTFROMGPU2,
       LX_DXWAITFORSYNCHRONIZATIONOBJECTFROMCPU,
       LX_DXWAITFORSYNCHRONIZATIONOBJECTFROMGPU.
    
    GPU synchronization objects are used to synchornize GPU command
    execution between different execution contexts. A wait for a sync
    object could be submitted to a GPU context (thread) or could be
    done on CPU. The wait is satisfied when the sync object is signaled.
    The signal operation could be submitted to a GPU context (thread) or
    could be signaled by a CPU thread.
    
    The driver creates the corresponsing tracking structures and sends
    VM bus messages to the host to do the corresponding operation.
    
    When a caller needs to wait for a sync object on CPU, an event structure
    is added to the global list (dxgglobal->host_event_list_head). Each
    list entry has an ID and a pointer to the event to signal. When the sync
    object is signaled on the host, the host sends a message to the guest
    with the event ID to signal. dxgglobal_signal_host_event() processes this
    message and signals the corresponding CPU event.
    
    Signed-off-by: Iouri Tarassov <iourit@linux.microsoft.com>
    Iouri Tarassov authored and intel-lab-lkp committed Jan 12, 2022
  7. drivers: hv: dxgkrnl: Implement creation/destruction of GPU allocatio…

    …ns/resources
    
    Implemented the following ioctls:
    - Creation and destruction of GPU accessible allocations:
      LX_DXCREATEALLOCATION, LX_DXDESTROYALLOCATION2,
    - LX_DXGETSHAREDRESOURCEADAPTERLUID
    - LX_DXRENDER
      At this moment GPU paravirtualization does not support D3DKMTRender API.
    
    Signed-off-by: Iouri Tarassov <iourit@linux.microsoft.com>
    Iouri Tarassov authored and intel-lab-lkp committed Jan 12, 2022
  8. drivers: hv: dxgkrnl: Open device object, adapter enumeration, dxgdev…

    …ice, dxgcontext creation
    
    - Handle opening of the device (/dev/dxg) file object and creation of
    dxgprocess. dxgprocess is created for each process, which opens /dev/dxg.
    dxgprocess is ref counted, so the exicting dxgprocess objects is used for
    a process, which opens the device object multiple time.
    dxgprocess is destroyed when the device object is closed.
    
    - Implement ioctls for virtual GPU adapter enumeration:
    LX_DXENUMADAPTERS2, LX_DXENUMADAPTERS3
    The IOCTLs return a d3dkmt handle for each enumerated adapter.
    
    - Implement ioctl to query adapter information:
    LX_DXQUERYADAPTERINFO.
    
    - Implement ioctls to open and closet a dxgadapter object:
    LX_DXOPENADAPTERFROMLUID, LX_DXCLOSEADAPTER
    Note that dxgadapter is opened when LX_DXENUMADAPTERS2, LX_DXENUMADAPTERS3
    are called.
    
    - Implement ioctls for dxgdevice and dxgcontext creation/destruction:
    LX_DXCREATEDEVICE, LX_DXCREATECONTEXT, LX_DXCREATECONTEXTVIRTUAL,
    LX_DXDESTROYCONTEXT, LX_DXCREATEHWCONTEXT, LX_DXDESTROYDEVICE,
    LX_DXDESTROYHWCONTEXT
    
    Signed-off-by: Iouri Tarassov <iourit@linux.microsoft.com>
    Iouri Tarassov authored and intel-lab-lkp committed Jan 12, 2022
  9. drivers: hv: dxgkrnl: Driver initialization and creation of dxgadapter

    - Add support for a Hyper-V based vGPU implementation that exposes the
      DirectX API to Linux userspace.
    - Handle driver loading, registration for the PCI and VM bus device
      notifications
    - Add headers for user mode interfaces, internal driver objects and VM bus
      communication interface
    - Handle initialization of VM bus channels and creation of the dxgadapter
      object
    - Removed dxg_copy_from_user and dxg_copy_to_user
    - Connect the dxgkrnl module to the drivers/hv/ makefile and Kconfig.
    - Create a MAINTAINERS entry
    
    PCI driver registration
    
    A PCI device is created for each virtual GPU (vGPU) device, projected by
    the host. The device vendor is PCI_VENDOR_ID_MICROSOFT and device id is
    PCI_DEVICE_ID_VIRTUAL_RENDER. dxg_pci_probe_device handles arrival of such
    devices and it creates dxgadapter objects. The PCI config space of the
    vGPU device has luid of the corresponding per GPU VM bus channel. This is
    how the adapters are linked to VM bus channels.
    
    dxgadapter initialization
    
    A dxgadapter object represents a virtual GPU, projected to the VM by the
    host. This object can start functioning only when the global VM bus
    channel and the corresponding per vGPU VM bus channel are initialized in
    the guest. Notifications about arrival of vGPU PCI device and VM bus
    channels can happen in any order. Therefore, the initial dxgadapter object
    state is DXGADAPTER_STATE_WAITING_VMBUS. A list of VM bus channels and a
    list of dxgadapter objects are created. When dxgkrnl is notified about a
    VM bus channel arrival, if tries to start all adapters, which are not
    started yet.
    
    VM bus interface version is exchanged by reading/writing the PCI config
    space of the vGPU device.
    
    Signed-off-by: Iouri Tarassov <iourit@linux.microsoft.com>
    Iouri Tarassov authored and intel-lab-lkp committed Jan 12, 2022
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  11. Merge tag 'erofs-for-5.17-rc1' of git://git.kernel.org/pub/scm/linux/…

    …kernel/git/xiang/erofs
    
    Pull erofs updates from Gao Xiang:
     "In this cycle, tail-packing data inline for compressed files is now
      supported so that tail pcluster can be stored and read together with
      inode metadata in order to save data I/O and storage space.
    
      In addition to that, to prepare for the upcoming subpage, folio and
      fscache features, we also introduce meta buffers to get rid of
      erofs_get_meta_page() since it was too close to the page itself.
    
      In addition, in order to show supported kernel features and control
      sync decompression strategy, new sysfs nodes are introduced in this
      cycle as well.
    
      Summary:
    
       - add sysfs interface and a sysfs node to control sync decompression
    
       - add tail-packing inline support for compressed files
    
       - get rid of erofs_get_meta_page()"
    
    * tag 'erofs-for-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
      erofs: use meta buffers for zmap operations
      erofs: use meta buffers for xattr operations
      erofs: use meta buffers for super operations
      erofs: use meta buffers for inode operations
      erofs: introduce meta buffer operations
      erofs: add on-disk compressed tail-packing inline support
      erofs: support inline data decompression
      erofs: support unaligned data decompression
      erofs: introduce z_erofs_fixup_insize
      erofs: tidy up z_erofs_lz4_decompress
      erofs: clean up erofs_map_blocks tracepoints
      erofs: Replace zero-length array with flexible-array member
      erofs: add sysfs node to control sync decompression strategy
      erofs: add sysfs interface
      erofs: rename lz4_0pading to zero_padding
    torvalds committed Jan 11, 2022
  12. drivers/pcmcia: Fix ifdef covering yenta_pm_ops

    Currently, yenta_dev_suspend_noirq(), yenta_dev_resume_noirq(), and
    yenta_pm_ops are covered by "#ifdef CONFIG_PM", which results in
    compiler warnings in kernels built with CONFIG_PM_SLEEP=n and
    CONFIG_PM=y:
    
      drivers/pcmcia/yenta_socket.c:1322:12: warning: ‘yenta_dev_resume_noirq’ defined but not used [-Wunused-function]
       1322 | static int yenta_dev_resume_noirq(struct device *dev)
            |            ^~~~~~~~~~~~~~~~~~~~~~
      drivers/pcmcia/yenta_socket.c:1303:12: warning: ‘yenta_dev_suspend_noirq’ defined but not used [-Wunused-function]
       1303 | static int yenta_dev_suspend_noirq(struct device *dev)
            |            ^~~~~~~~~~~~~~~~~~~~~~~
    
    This affects kernels built without suspend and hibernation.
    
    Avoid these warnings by using "#ifdef CONFIG_PM_SLEEP".
    
    Fixes: 3daaf2c ("pcmcia: Make use of the helper macro SET_NOIRQ_SYSTEM_SLEEP_PM_OPS()")
    Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
    Cc: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    paulmckrcu authored and torvalds committed Jan 11, 2022
  13. Merge tag 'fs.idmapped.v5.17' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/brauner/linux
    
    Pull fs idmapping updates from Christian Brauner:
     "This contains the work to enable the idmapping infrastructure to
      support idmapped mounts of filesystems mounted with an idmapping.
    
      In addition this contains various cleanups that avoid repeated
      open-coding of the same functionality and simplify the code in quite a
      few places.
    
      We also finish the renaming of the mapping helpers we started a few
      kernel releases back and move them to a dedicated header to not
      continue polluting the fs header needlessly with low-level idmapping
      helpers. With this series the fs header only contains idmapping
      helpers that interact with fs objects.
    
      Currently we only support idmapped mounts for filesystems mounted
      without an idmapping themselves. This was a conscious decision
      mentioned in multiple places (cf. [1]).
    
      As explained at length in [3] it is perfectly fine to extend support
      for idmapped mounts to filesystem's mounted with an idmapping should
      the need arise. The need has been there for some time now (cf. [2]).
    
      Before we can port any filesystem that is mountable with an idmapping
      to support idmapped mounts in the coming cycles, we need to first
      extend the mapping helpers to account for the filesystem's idmapping.
      This again, is explained at length in our documentation at [3] and
      also in the individual commit messages so here's an overview.
    
      Currently, the low-level mapping helpers implement the remapping
      algorithms described in [3] in a simplified manner as we could rely on
      the fact that all filesystems supporting idmapped mounts are mounted
      without an idmapping.
    
      In contrast, filesystems mounted with an idmapping are very likely to
      not use an identity mapping and will instead use a non-identity
      mapping. So the translation step from or into the filesystem's
      idmapping in the remapping algorithm cannot be skipped for such
      filesystems.
    
      Non-idmapped filesystems and filesystems not supporting idmapped
      mounts are unaffected by this change as the remapping algorithms can
      take the same shortcut as before. If the low-level helpers detect that
      they are dealing with an idmapped mount but the underlying filesystem
      is mounted without an idmapping we can rely on the previous shortcut
      and can continue to skip the translation step from or into the
      filesystem's idmapping. And of course, if the low-level helpers detect
      that they are not dealing with an idmapped mount they can simply
      return the relevant id unchanged; no remapping needs to be performed
      at all.
    
      These checks guarantee that only the minimal amount of work is
      performed. As before, if idmapped mounts aren't used the low-level
      helpers are idempotent and no work is performed at all"
    
    Link: 2ca4dcc ("fs/mount_setattr: tighten permission checks") [1]
    Link: containers/podman#10374 [2]
    Link: Documentations/filesystems/idmappings.rst [3]
    Link: a65e58e ("fs: document and rename fsid helpers") [4]
    
    * tag 'fs.idmapped.v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
      fs: support mapped mounts of mapped filesystems
      fs: add i_user_ns() helper
      fs: port higher-level mapping helpers
      fs: remove unused low-level mapping helpers
      fs: use low-level mapping helpers
      docs: update mapping documentation
      fs: account for filesystem mappings
      fs: tweak fsuidgid_has_mapping()
      fs: move mapping helpers
      fs: add is_idmapped_mnt() helper
    torvalds committed Jan 11, 2022
  14. Merge tag 'integrity-v5.17' of git://git.kernel.org/pub/scm/linux/ker…

    …nel/git/zohar/linux-integrity
    
    Pull integrity subsystem updates from Mimi Zohar:
     "The few changes are all kexec related:
    
       - The MOK keys are loaded onto the .platform keyring in order to
         verify the kexec kernel image signature.
    
         However, the MOK keys should only be trusted when secure boot is
         enabled. Before loading the MOK keys onto the .platform keyring,
         make sure the system is booted in secure boot mode.
    
       - When carrying the IMA measurement list across kexec, limit dumping
         the measurement list to when dynamic debug or CONFIG_DEBUG is
         enabled.
    
       - kselftest: add kexec_file_load selftest support for PowerNV and
         other cleanup"
    
    * tag 'integrity-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity:
      selftests/kexec: Enable secureboot tests for PowerPC
      ima: silence measurement list hexdump during kexec
      selftests/kexec: update searching for the Kconfig
      selftest/kexec: fix "ignored null byte in input" warning
      integrity: Do not load MOK and MOKx when secure boot be disabled
      ima: Fix undefined arch_ima_get_secureboot() and co
    torvalds committed Jan 11, 2022
  15. Merge tag 'audit-pr-20220110' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/pcmoore/audit
    
    Pull audit updates from Paul Moore:
     "Four audit patches for v5.17:
    
       - Harden the code through additional use of the struct_size() macro
         and zero-length arrays to flexible-array conversions.
    
       - Ensure that processes which generate userspace audit records are
         not exempt from the kernel's audit throttling when the audit queues
         are being overrun"
    
    * tag 'audit-pr-20220110' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
      audit: replace zero-length array with flexible-array member
      audit: use struct_size() helper in audit_[send|make]_reply()
      audit: ensure userspace is penalized the same as the kernel when under pressure
      audit: use struct_size() helper in kmalloc()
    torvalds committed Jan 11, 2022
Older