lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250206175114.1974171-1-bvanassche@acm.org>
Date: Thu,  6 Feb 2025 09:50:41 -0800
From: Bart Van Assche <bvanassche@....org>
To: Peter Zijlstra <peterz@...radead.org>
Cc: Will Deacon <will@...nel.org>,
	Christoph Hellwig <hch@....de>,
	Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
	Marco Elver <elver@...gle.com>,
	Nick Desaulniers <ndesaulniers@...gle.com>,
	Nathan Chancellor <nathan@...nel.org>,
	Kees Cook <kees@...nel.org>,
	Jann Horn <jannh@...gle.com>,
	linux-kernel@...r.kernel.org,
	Bart Van Assche <bvanassche@....org>
Subject: [PATCH RFC 00/33] Compile-time thread-safety checking

Hi Peter,

As you may know the Clang compiler can perform certain thread-safety checks at
compile time. This includes checking whether locking calls in a function match
the function attributes and also whether annotated structure members are
protected by the synchronization objects declared with GUARDED_BY(). As one can
see this patch series includes a significant number of fixes for locking bugs.
All these locking bugs have been discovered by the Clang thread-safety checker.
I think this shows that it is useful to enable compile-time thread-safety
checks.

The Clang thread-safety infrastructure is not new. Some user space code in the
kernel tree already uses it. See also the header file tools/perf/util/mutex.h.
There are other projects that started using this infrastructure a while ago,
e.g. Qemu. The header file include/qemu/clang-tsa.h was added more than two
years ago to the Qemu project.

This patch series has been posted as an RFC because at this stage my goal is to
gather feedback about the following:
 - Whether or not to enable compile-time thread-safety checking in the Linux
   kernel.
 - The names of the macros in header file include/linux/thread_safety.h. The
   proposed names come from the Clang documentation (ACQUIRE(), RELEASE(),
   REQUIRES(), ...). In the Qemu header file for thread-safety support these
   macros have a prefix (TSA_ = Thread-Safety Analysis).
 - The changes made in header file include/linux/cleanup.h that support
   annotating constructor functions with function attributes.
 - Whether or not to split the two treewide patches in this series into one
   patch per kernel driver.
 - How to merge this patch series. The second last patch in this series modifies
   888 source files. If it is split into one patch per driver, this patch series
   will become too large to be posted as a single patch series.

Annotating struct mutex is a first step. Once struct mutex is annotated, driver
contributors and/or maintainers can annotate structure members with GUARDED_BY()
where this is considered useful.

There are more synchronization objects that can be annotated with thread-safety
attributes, e.g. spinlocks. This patch series only annotates struct mutex
because annotating other synchronization objects too would have made this patch
series too large.

Thanks,

Bart.

Bart Van Assche (33):
  scsi, usb: Rename the RESERVE and RELEASE constants
  s390: Comment out the RELEASE constant
  locking: Introduce <linux/thread_safety.h>
  include/linux/cleanup.h: Support thread-safety analysis
  locking/mutex: Change the atomic_dec_and_mutex_lock() return type
  locking/mutex: Annotate struct mutex and mutex functions
  driver core: Annotate locking functions in <linux/device.h>
  kref: Add thread-safety annotations in <linux/kref.h>
  refcount: Add thread-safety annotations in <linux/refcount.h>
  treewide: Modify mutex_lock_interruptible() return value checks
  PNP: isapnp: Check the isapnp_cfg_begin() return value
  scsi: mpi3mr: Fix locking in an error path
  scsi: mpt3sas: Fix a locking bug in an error path
  ice: Split ice_dcb_rebuild()
  ice: Fix a locking bug in an error path
  net/mlx5e: Make the code easier to analyze
  Input: synaptics-rmi4 - fix a locking bug in an error path
  misc: nsm: Fix a locking bug in an error path
  drm/amdgpu: Unlock a mutex before destroying it
  drm/amdgpu: Fix a locking bug in an error path
  drm/amdgpu: Fix locking bugs in error paths
  drm: bridge: cdns-mhdp8546: Fix a locking bug in an error path
  drm: bridge: cdns-mhdp8546: Fix a locking bug in an error path
  drm: zynqmp_dp: Fix a deadlock in zynqmp_dp_ignore_hpd_set()
  wifi: ath12k: Fix locking in error paths
  mctp i3c: Fix locking in error paths
  iavf: Fix a locking bug in an error path
  wifi: mt76: mt7925: Fix a locking bug in an error path
  hwmon: (it87) Check the it87_lock() return value
  drivers/net/ethernet/marvell/octeontx2/nic: Fix locking in an error
    path
  md/raid*: Fix raid*_set_queue_limits()
  treewide: Annotate all struct mutex users
  kbuild: clang: Unconditionally enable thread-safety checking

 Documentation/locking/mutex-design.rst        |   2 +-
 arch/arm64/kvm/arm.c                          |   2 +
 arch/powerpc/kernel/rtas.c                    |   1 +
 arch/powerpc/platforms/powermac/low_i2c.c     |   6 +
 arch/powerpc/platforms/pseries/papr-vpd.c     |   2 +
 arch/x86/events/core.c                        |   1 +
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c     |   1 +
 arch/x86/kernel/cpu/resctrl/rdtgroup.c        |   2 +
 arch/x86/kernel/cpu/sgx/encl.c                |   2 +
 arch/x86/kernel/ftrace.c                      |   2 +
 arch/x86/kernel/module.c                      |   1 +
 arch/x86/kvm/svm/sev.c                        |   6 +
 block/bdev.c                                  |   3 +
 block/blk-cgroup.c                            |   2 +
 block/ioctl.c                                 |   1 +
 drivers/accel/amdxdna/aie2_error.c            |   5 +-
 drivers/accel/qaic/qaic_control.c             |   1 +
 drivers/acpi/scan.c                           |   5 +
 drivers/ata/libata-core.c                     |  31 +++-
 drivers/ata/libata-eh.c                       |   2 +
 drivers/ata/libata.h                          |   6 +-
 drivers/base/bus.c                            |   1 +
 drivers/base/core.c                           |   7 +
 drivers/base/dd.c                             |   2 +
 drivers/base/power/clock_ops.c                |   4 +
 drivers/base/power/main.c                     |   2 +
 drivers/base/regmap/regmap-irq.c              |   2 +
 drivers/base/regmap/regmap.c                  |   2 +
 drivers/block/drbd/drbd_bitmap.c              |   2 +
 drivers/block/drbd/drbd_main.c                |   7 +
 drivers/block/drbd/drbd_nl.c                  |   1 +
 drivers/block/drbd/drbd_receiver.c            |   1 +
 drivers/block/drbd/drbd_state.c               |   4 +
 drivers/block/loop.c                          |   2 +
 drivers/block/nbd.c                           |   3 +
 drivers/block/null_blk/zoned.c                |   2 +
 drivers/block/rnbd/rnbd-clt.c                 |   2 +
 drivers/bus/fsl-mc/mc-sys.c                   |   1 +
 drivers/bus/vexpress-config.c                 |   2 +
 drivers/cdx/cdx_msi.c                         |   2 +
 drivers/char/ipmi/ipmi_msghandler.c           |   1 +
 drivers/char/misc.c                           |   2 +
 drivers/char/powernv-op-panel.c               |   2 +
 drivers/char/tpm/tpm-chip.c                   |   3 +
 drivers/char/xillybus/xillybus_core.c         |   1 +
 drivers/clk/clk.c                             |   4 +
 drivers/comedi/comedi_fops.c                  |   2 +
 drivers/comedi/drivers.c                      |   1 +
 drivers/comedi/drivers/usbduxsigma.c          |   1 +
 drivers/counter/rz-mtu3-cnt.c                 |   3 +
 drivers/cpuidle/cpuidle.c                     |   2 +
 drivers/crypto/exynos-rng.c                   |   1 +
 drivers/crypto/hisilicon/qm.c                 |   4 +
 drivers/crypto/intel/qat/qat_common/adf_cfg.c |   2 +
 .../qat/qat_common/adf_transport_debug.c      |   4 +
 drivers/cxl/core/port.c                       |   2 +
 drivers/devfreq/devfreq.c                     |   1 +
 drivers/dpll/dpll_netlink.c                   |   6 +
 drivers/firmware/arm_ffa/driver.c             |   1 +
 drivers/firmware/arm_scmi/notify.c            |   1 +
 .../firmware/arm_scmi/transports/mailbox.c    |   2 +
 drivers/firmware/arm_scmi/transports/optee.c  |   2 +
 .../firmware/qcom/qcom_qseecom_uefisecapp.c   |   2 +
 drivers/fpga/fpga-bridge.c                    |   2 +
 drivers/fpga/fpga-region.c                    |   3 +
 drivers/gpio/gpio-adnp.c                      |   2 +
 drivers/gpio/gpio-crystalcove.c               |   2 +
 drivers/gpio/gpio-dln2.c                      |   2 +
 drivers/gpio/gpio-ljca.c                      |   2 +
 drivers/gpio/gpio-max77620.c                  |   2 +
 drivers/gpio/gpio-mlxbf2.c                    |   6 +-
 drivers/gpio/gpio-pca953x.c                   |   2 +
 drivers/gpio/gpio-pcf857x.c                   |   2 +
 drivers/gpio/gpio-pmic-eic-sprd.c             |   2 +
 drivers/gpio/gpio-stmpe.c                     |   2 +
 drivers/gpio/gpio-tc3589x.c                   |   2 +
 drivers/gpio/gpio-virtio.c                    |   2 +
 drivers/gpio/gpio-wcove.c                     |   2 +
 drivers/gpu/drm/amd/amdgpu/aldebaran.c        |   1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c       |   1 +
 .../drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c    |   4 +
 .../drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10_3.c  |   4 +
 .../drm/amd/amdgpu/amdgpu_amdkfd_gfx_v11.c    |   4 +
 .../drm/amd/amdgpu/amdgpu_amdkfd_gfx_v12.c    |   4 +
 .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c |   4 +
 .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c |   4 +
 .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c |   8 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c        |   3 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c   |   2 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c    |   1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.c       |   2 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_job.c       |   1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c       |   1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h       |   2 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c       |   2 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c    |  14 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c       |   5 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c     |   1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_umsch_mm.h  |   2 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c        |   1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h        |   3 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c     |   2 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c       |   1 +
 drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.c        |   3 +-
 drivers/gpu/drm/amd/amdgpu/smu_v11_0_i2c.c    |   2 +
 drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c         |   4 +-
 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c      |   4 +
 .../drm/amd/amdkfd/kfd_device_queue_manager.c |   5 +
 .../drm/amd/amdkfd/kfd_device_queue_manager.h |   2 +
 drivers/gpu/drm/amd/amdkfd/kfd_svm.h          |   2 +
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |   2 +
 .../amd/display/amdgpu_dm/amdgpu_dm_hdcp.c    |   1 +
 drivers/gpu/drm/ast/ast_ddc.c                 |   2 +
 .../drm/bridge/cadence/cdns-mhdp8546-core.c   |   9 +-
 drivers/gpu/drm/bridge/lontium-lt9611uxc.c    |   2 +
 drivers/gpu/drm/clients/drm_log.c             |   2 +
 drivers/gpu/drm/display/drm_dp_helper.c       |   3 +
 drivers/gpu/drm/display/drm_dp_mst_topology.c |   2 +
 drivers/gpu/drm/drm_atomic_helper.c           |   3 +
 drivers/gpu/drm/drm_auth.c                    |   2 +
 drivers/gpu/drm/drm_client_modeset.c          |   1 +
 drivers/gpu/drm/drm_color_mgmt.c              |   1 +
 drivers/gpu/drm/drm_crtc.c                    |   1 +
 drivers/gpu/drm/drm_drv.c                     |   1 +
 drivers/gpu/drm/drm_fb_helper.c               |   1 +
 drivers/gpu/drm/drm_file.c                    |   4 +
 drivers/gpu/drm/drm_gem.c                     |   4 +-
 drivers/gpu/drm/drm_mode_object.c             |   2 +
 drivers/gpu/drm/drm_modeset_lock.c            |   2 +
 drivers/gpu/drm/drm_plane.c                   |   1 +
 drivers/gpu/drm/drm_prime.c                   |   1 +
 drivers/gpu/drm/i915/display/intel_cdclk.c    |   1 +
 .../drm/i915/display/intel_display_reset.c    |   2 +
 drivers/gpu/drm/i915/display/intel_gmbus.c    |   3 +
 drivers/gpu/drm/i915/display/intel_pps.c      |   2 +
 drivers/gpu/drm/i915/display/intel_psr.c      |   3 +
 drivers/gpu/drm/i915/display/intel_tc.c       |   4 +
 drivers/gpu/drm/i915/gem/i915_gem_context.h   |   2 +
 .../gpu/drm/i915/gem/i915_gem_execbuffer.c    |   1 +
 drivers/gpu/drm/i915/gt/intel_context.h       |   4 +
 drivers/gpu/drm/i915/gt/selftest_context.c    |   1 +
 drivers/gpu/drm/i915/gt/selftest_timeline.c   |   1 +
 drivers/gpu/drm/i915/gvt/vgpu.c               |   1 +
 drivers/gpu/drm/i915/i915_request.c           |   1 +
 drivers/gpu/drm/i915/i915_vma.c               |   3 +-
 drivers/gpu/drm/i915/intel_sbi.c              |   2 +
 drivers/gpu/drm/i915/intel_wakeref.c          |   2 +
 drivers/gpu/drm/i915/intel_wakeref.h          |   2 +
 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c      |   1 +
 drivers/gpu/drm/i915/vlv_sideband.c           |   2 +
 drivers/gpu/drm/ingenic/ingenic-drm-drv.c     |   1 +
 drivers/gpu/drm/mgag200/mgag200_ddc.c         |   2 +
 drivers/gpu/drm/msm/msm_atomic.c              |   2 +
 drivers/gpu/drm/nouveau/dispnv50/disp.c       |   2 +
 drivers/gpu/drm/nouveau/nouveau_abi16.c       |   2 +
 drivers/gpu/drm/nouveau/nouveau_uvmm.h        |   2 +
 drivers/gpu/drm/nouveau/nvkm/core/subdev.c    |   1 +
 .../gpu/drm/nouveau/nvkm/engine/fifo/chan.c   |   3 +-
 .../gpu/drm/nouveau/nvkm/engine/fifo/uchan.c  |   1 +
 drivers/gpu/drm/nouveau/nvkm/falcon/cmdq.c    |   3 +
 .../gpu/drm/nouveau/nvkm/subdev/i2c/auxch.c   |   2 +
 drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.c |   2 +
 drivers/gpu/drm/nouveau/nvkm/subdev/i2c/pad.c |   2 +
 .../drm/nouveau/nvkm/subdev/instmem/nv50.c    |  24 +--
 drivers/gpu/drm/panthor/panthor_mmu.c         |   1 +
 drivers/gpu/drm/qxl/qxl_cmd.c                 |   1 +
 drivers/gpu/drm/qxl/qxl_display.c             |   2 +
 drivers/gpu/drm/radeon/radeon_i2c.c           |   2 +
 drivers/gpu/drm/radeon/radeon_ring.c          |   3 +
 drivers/gpu/drm/rockchip/cdn-dp-core.c        |   1 +
 drivers/gpu/drm/rockchip/rockchip_drm_vop2.c  |   2 +
 drivers/gpu/drm/tegra/hdmi.c                  |   2 +
 drivers/gpu/drm/ttm/tests/ttm_bo_test.c       |   1 +
 drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c           |   7 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c        |   5 +
 drivers/gpu/drm/vmwgfx/vmwgfx_validation.c    |   3 +
 drivers/gpu/drm/xe/xe_migrate.c               |   1 +
 drivers/gpu/drm/xe/xe_pcode.c                 |   1 +
 drivers/gpu/drm/xlnx/zynqmp_dp.c              |   2 +-
 drivers/gpu/host1x/bus.c                      |   2 +
 drivers/gpu/host1x/cdma.c                     |   6 +
 drivers/gpu/host1x/context.c                  |   1 +
 drivers/gpu/host1x/mipi.c                     |   2 +
 drivers/hid/hid-wiimote.h                     |   3 +
 drivers/hv/channel.c                          |   2 +
 drivers/hwmon/abituguru.c                     |   2 +
 drivers/hwmon/abituguru3.c                    |   2 +
 drivers/hwmon/asus_rog_ryujin.c               |   4 +-
 drivers/hwmon/gigabyte_waterforce.c           |   2 +-
 drivers/hwmon/it87.c                          |   6 +-
 drivers/hwmon/lm78.c                          |   1 +
 drivers/hwmon/nct7904.c                       |   2 +
 drivers/hwmon/nzxt-kraken3.c                  |   2 +-
 drivers/hwmon/pmbus/pmbus_core.c              |   1 +
 drivers/hwmon/w83781d.c                       |   1 +
 drivers/hwtracing/intel_th/msu.c              |   1 +
 drivers/hwtracing/stm/policy.c                |   2 +
 drivers/i2c/busses/i2c-amd-mp2-pci.c          |   2 +
 drivers/i2c/busses/i2c-xiic.c                 |   1 +
 drivers/i2c/i2c-atr.c                         |   3 +
 drivers/iio/accel/kionix-kx022a.c             |   3 +
 drivers/iio/adc/meson_saradc.c                |   2 +
 drivers/iio/buffer/industrialio-buffer-dma.c  |   2 +
 drivers/iio/industrialio-core.c               |   4 +
 drivers/iio/light/opt3001.c                   |   1 +
 drivers/infiniband/core/cma.c                 |   5 +
 drivers/infiniband/core/security.c            |   1 +
 drivers/infiniband/core/umem_odp.c            |   1 +
 drivers/infiniband/hw/hns/hns_roce_hem.c      |   2 +
 drivers/infiniband/hw/mlx4/main.c             |   2 +
 drivers/infiniband/hw/mlx5/mr.c               |   1 +
 drivers/infiniband/hw/mlx5/odp.c              |   1 +
 drivers/infiniband/hw/mlx5/umr.c              |   2 +
 drivers/infiniband/ulp/srp/ib_srp.c           |   2 +-
 drivers/infiniband/ulp/srpt/ib_srpt.c         |   4 +-
 drivers/input/input.c                         |   3 +
 drivers/input/joystick/pxrc.c                 |   2 +
 drivers/input/keyboard/adp5588-keys.c         |   2 +
 drivers/input/misc/ati_remote2.c              |   2 +
 drivers/input/misc/cm109.c                    |   2 +
 drivers/input/mouse/psmouse-base.c            |   1 +
 drivers/input/mouse/synaptics_usb.c           |   2 +
 drivers/input/rmi4/rmi_f54.c                  |   5 +-
 drivers/input/serio/i8042.c                   |   2 +
 drivers/input/serio/libps2.c                  |   2 +
 drivers/iommu/iommufd/device.c                |   2 +
 drivers/iommu/iommufd/hw_pagetable.c          |   1 +
 drivers/leds/leds-blinkm.c                    |   2 +-
 drivers/md/bcache/alloc.c                     |   2 +
 drivers/md/bcache/btree.c                     |   1 +
 drivers/md/bcache/super.c                     |   2 +
 drivers/md/dm-bufio.c                         |   2 +
 drivers/md/dm-crypt.c                         |   1 +
 drivers/md/dm-vdo/indexer/index-session.c     |   1 +
 drivers/md/dm-vdo/indexer/volume-index.c      |   3 +
 drivers/md/dm-vdo/indexer/volume.c            |   1 +
 drivers/md/dm-writecache.c                    |   6 +
 drivers/md/dm-zoned-metadata.c                |   6 +
 drivers/md/dm.c                               |   5 +
 drivers/md/md-cluster.c                       |  12 +-
 drivers/md/md.c                               |   8 +
 drivers/md/md.h                               |   9 +-
 drivers/md/raid0.c                            |   4 +-
 drivers/md/raid1.c                            |   4 +-
 drivers/md/raid10.c                           |   4 +-
 drivers/media/cec/core/cec-adap.c             |   5 +
 .../media/common/videobuf2/videobuf2-core.c   |   2 +
 .../media/common/videobuf2/videobuf2-v4l2.c   |   7 +
 drivers/media/dvb-core/dvb_frontend.c         |   1 +
 drivers/media/dvb-core/dvb_vb2.c              |   2 +
 drivers/media/dvb-frontends/bcm3510.c         |   2 +-
 drivers/media/dvb-frontends/dib0070.c         |   4 +-
 drivers/media/dvb-frontends/dib0090.c         |   8 +-
 drivers/media/dvb-frontends/dib7000m.c        |   4 +-
 drivers/media/dvb-frontends/dib7000p.c        |   4 +-
 drivers/media/dvb-frontends/dib8000.c         |  10 +-
 drivers/media/dvb-frontends/dib9000.c         |  43 +++---
 drivers/media/dvb-frontends/dibx000_common.c  |  10 +-
 drivers/media/dvb-frontends/stv090x.c         |   2 +
 drivers/media/dvb-frontends/stv0910.c         |   1 +
 drivers/media/dvb-frontends/ts2020.c          |   2 +
 drivers/media/mc/mc-device.c                  |   1 +
 drivers/media/mc/mc-entity.c                  |   1 +
 drivers/media/pci/cx18/cx18-alsa.h            |   2 +
 drivers/media/pci/ddbridge/ddbridge-core.c    |   1 +
 drivers/media/pci/ivtv/ivtv-alsa.h            |   2 +
 drivers/media/pci/ivtv/ivtv-fileops.c         |   2 +
 drivers/media/pci/ivtv/ivtv-ioctl.c           |   3 +
 drivers/media/pci/ivtv/ivtv-yuv.c             |   3 +
 drivers/media/platform/amphion/vpu_v4l2.c     |   3 +
 .../platform/chips-media/coda/coda-jpeg.c     |   1 +
 .../mediatek/vcodec/decoder/mtk_vcodec_dec.c  |   2 +
 .../vcodec/decoder/mtk_vcodec_dec_pm.c        |   2 +
 .../mediatek/vcodec/encoder/mtk_vcodec_enc.c  |   2 +
 .../media/platform/nvidia/tegra-vde/h264.c    |   5 +
 drivers/media/platform/nvidia/tegra-vde/vde.c |   2 +
 .../platform/samsung/exynos4-is/media-dev.h   |   2 +
 .../media/platform/samsung/s5p-mfc/s5p_mfc.c  |   2 +
 drivers/media/platform/st/sti/hva/hva-hw.c    |   1 +
 drivers/media/platform/ti/omap3isp/ispvideo.c |   2 +
 .../test-drivers/vivid/vivid-kthread-cap.c    |   1 +
 drivers/media/usb/dvb-usb-v2/af9035.c         |   2 +-
 drivers/media/usb/dvb-usb-v2/anysee.c         |   2 +-
 drivers/media/usb/dvb-usb-v2/au6610.c         |   2 +-
 drivers/media/usb/dvb-usb-v2/az6007.c         |   6 +-
 drivers/media/usb/dvb-usb-v2/ce6230.c         |   2 +-
 drivers/media/usb/dvb-usb-v2/dvbsky.c         |   2 +-
 drivers/media/usb/dvb-usb-v2/ec168.c          |   2 +-
 drivers/media/usb/dvb-usb-v2/lmedm04.c        |   2 +-
 drivers/media/usb/dvb-usb-v2/mxl111sf-i2c.c   |   2 +-
 drivers/media/usb/dvb-usb-v2/mxl111sf.c       |   2 +
 drivers/media/usb/dvb-usb-v2/rtl28xxu.c       |   2 +-
 drivers/media/usb/dvb-usb/af9005.c            |   2 +-
 drivers/media/usb/dvb-usb/az6027.c            |   2 +-
 drivers/media/usb/dvb-usb/cxusb-analog.c      |   1 +
 drivers/media/usb/dvb-usb/cxusb.c             |   3 +-
 drivers/media/usb/dvb-usb/dib0700_core.c      |  20 +--
 drivers/media/usb/dvb-usb/dibusb-common.c     |   2 +-
 drivers/media/usb/dvb-usb/digitv.c            |   2 +-
 drivers/media/usb/dvb-usb/dtv5100.c           |   2 +-
 drivers/media/usb/dvb-usb/dvb-usb-urb.c       |   3 +-
 drivers/media/usb/dvb-usb/dw2102.c            |  16 +-
 drivers/media/usb/dvb-usb/gp8psk.c            |   6 +-
 drivers/media/usb/dvb-usb/m920x.c             |   2 +-
 drivers/media/usb/dvb-usb/opera1.c            |   4 +-
 drivers/media/usb/dvb-usb/pctv452e.c          |   4 +-
 drivers/media/usb/dvb-usb/technisat-usb2.c    |  10 +-
 drivers/media/usb/dvb-usb/ttusb2.c            |   2 +-
 drivers/media/usb/dvb-usb/vp702x.c            |   5 +-
 drivers/media/usb/go7007/go7007-i2c.c         |   3 +
 drivers/media/usb/gspca/finepix.c             |   1 +
 drivers/media/usb/gspca/jl2005bcd.c           |   1 +
 drivers/media/usb/gspca/sn9c20x.c             |   1 +
 drivers/media/usb/gspca/sonixj.c              |   1 +
 drivers/media/usb/gspca/sq905.c               |   2 +
 drivers/media/usb/gspca/sq905c.c              |   1 +
 drivers/media/usb/gspca/vicam.c               |   1 +
 drivers/media/usb/gspca/zc3xx.c               |   1 +
 drivers/media/usb/hdpvr/hdpvr-video.c         |   1 +
 drivers/media/usb/pvrusb2/pvrusb2-context.c   |   2 +
 .../media/usb/ttusb-budget/dvb-ttusb-budget.c |   4 +-
 drivers/media/usb/uvc/uvc_ctrl.c              |   7 +-
 drivers/media/v4l2-core/v4l2-event.c          |   1 +
 drivers/media/v4l2-core/v4l2-ioctl.c          |   1 +
 drivers/media/v4l2-core/v4l2-mem2mem.c        |   1 +
 drivers/media/v4l2-core/v4l2-subdev.c         |   1 +
 drivers/message/fusion/mptctl.c               |  11 +-
 drivers/message/fusion/mptscsih.c             |   4 +-
 drivers/mfd/88pm860x-core.c                   |   2 +
 drivers/mfd/atc260x-core.c                    |   2 +
 drivers/mfd/kempld-core.c                     |   2 +
 drivers/mfd/lp8788-irq.c                      |   2 +
 drivers/mfd/max8925-core.c                    |   2 +
 drivers/mfd/max8997-irq.c                     |   2 +
 drivers/mfd/max8998-irq.c                     |   2 +
 drivers/mfd/mc13xxx-core.c                    |   2 +
 drivers/mfd/mt6358-irq.c                      |   2 +
 drivers/mfd/mt6397-irq.c                      |   2 +
 drivers/mfd/rc5t583-irq.c                     |   2 +
 drivers/mfd/stmfx.c                           |   2 +
 drivers/mfd/stmpe.c                           |   2 +
 drivers/mfd/tps65217.c                        |   2 +
 drivers/mfd/tps6586x.c                        |   2 +
 drivers/mfd/twl4030-irq.c                     |   2 +
 drivers/mfd/wm831x-irq.c                      |   2 +
 drivers/mfd/wm8350-irq.c                      |   2 +
 drivers/misc/cardreader/rtsx_usb.c            |   2 +
 drivers/misc/mei/client.c                     |   7 +
 drivers/misc/mei/hbm.c                        |   1 +
 drivers/misc/mei/hw-me.c                      |   9 ++
 drivers/misc/mei/hw-txe.c                     |   4 +
 drivers/misc/mei/main.c                       |   1 +
 drivers/misc/nsm.c                            |   2 +-
 drivers/misc/ntsync.c                         |   2 +
 drivers/misc/sgi-gru/grufault.c               |   3 +
 drivers/misc/sgi-gru/grumain.c                |   1 +
 drivers/misc/vmw_vmci/vmci_queue_pair.c       |   2 +
 drivers/mmc/host/vub300.c                     |   2 +
 drivers/mtd/chips/cfi_cmdset_0001.c           |   4 +
 drivers/mtd/chips/cfi_cmdset_0002.c           |   6 +
 drivers/mtd/lpddr/lpddr_cmds.c                |   4 +
 drivers/mtd/nand/ecc-mtk.c                    |   2 +
 drivers/mtd/nand/ecc-mxic.c                   |   2 +
 drivers/mtd/nand/raw/atmel/pmecc.c            |   2 +
 drivers/mtd/nand/raw/nand_base.c              |   4 +
 drivers/mtd/spi-nor/controllers/hisi-sfc.c    |   2 +
 drivers/mtd/spi-nor/core.c                    |   6 +
 drivers/net/can/softing/softing_main.c        |   1 +
 drivers/net/dsa/microchip/ksz_common.c        |   2 +
 drivers/net/dsa/microchip/ksz_common.h        |   2 +
 drivers/net/dsa/microchip/ksz_ptp.c           |   2 +
 drivers/net/dsa/mt7530-mdio.c                 |   2 +
 drivers/net/dsa/mt7530.c                      |   2 +
 drivers/net/dsa/mv88e6xxx/chip.c              |   3 +
 drivers/net/dsa/mv88e6xxx/chip.h              |   2 +
 drivers/net/dsa/mv88e6xxx/global2.c           |   2 +
 drivers/net/dsa/mv88e6xxx/pcs-6352.c          |   2 +
 drivers/net/dsa/mv88e6xxx/phy.c               |   2 +
 drivers/net/dsa/qca/ar9331.c                  |   2 +
 drivers/net/dsa/realtek/rtl83xx.c             |   2 +
 drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c   |   2 +
 .../net/ethernet/broadcom/bnx2x/bnx2x_cmn.c   |   2 +
 .../net/ethernet/broadcom/bnx2x/bnx2x_sriov.c |   2 +
 .../net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c  |   2 +
 .../net/ethernet/broadcom/bnxt/bnxt_hwrm.c    |   2 +
 drivers/net/ethernet/broadcom/tg3.c           |   1 +
 drivers/net/ethernet/davicom/dm9000.c         |   1 +
 drivers/net/ethernet/davicom/dm9051.c         |   2 +
 drivers/net/ethernet/emulex/benet/be_cmds.c   |   2 +
 .../net/ethernet/freescale/dpaa2/dpaa2-eth.c  |   2 +
 drivers/net/ethernet/hisilicon/hns3/hnae3.c   |   2 +
 .../hisilicon/hns3/hns3pf/hclge_main.c        |   1 +
 drivers/net/ethernet/intel/e1000e/82571.c     |   3 +
 drivers/net/ethernet/intel/e1000e/ich8lan.c   |   2 +
 drivers/net/ethernet/intel/iavf/iavf_main.c   |   3 +-
 drivers/net/ethernet/intel/ice/ice_common.c   |   1 +
 drivers/net/ethernet/intel/ice/ice_dcb_lib.c  |  49 +++---
 drivers/net/ethernet/intel/ice/ice_ddp.c      |   2 +
 drivers/net/ethernet/intel/ice/ice_ethtool.c  |   1 +
 drivers/net/ethernet/intel/ice/ice_main.c     |   1 +
 drivers/net/ethernet/intel/ice/ice_vf_lib.c   |   1 +
 drivers/net/ethernet/intel/idpf/idpf.h        |   2 +
 .../ethernet/marvell/octeontx2/af/rvu_nix.c   |   3 +
 .../marvell/octeontx2/af/rvu_npc_fs.c         |   1 +
 .../ethernet/marvell/octeontx2/nic/otx2_pf.c  |   2 +-
 .../net/ethernet/marvell/octeontx2/nic/rep.c  |   1 +
 .../marvell/prestera/prestera_counter.c       |   4 +
 .../ethernet/marvell/prestera/prestera_pci.c  |   2 +
 drivers/net/ethernet/mellanox/mlx4/cmd.c      |   2 +
 drivers/net/ethernet/mellanox/mlx4/port.c     |   5 +
 .../ethernet/mellanox/mlx5/core/en/mod_hdr.c  |   1 +
 .../mellanox/mlx5/core/en/reporter_rx.c       |   2 +
 .../mellanox/mlx5/core/en/tc/ct_fs_hmfs.c     |   1 +
 .../mellanox/mlx5/core/en/tc/ct_fs_smfs.c     |   1 +
 .../mellanox/mlx5/core/en/tc/int_port.c       |   1 +
 .../mellanox/mlx5/core/en/tc_tun_encap.c      |   3 +
 .../mellanox/mlx5/core/en_accel/macsec.c      |  62 +++-----
 .../net/ethernet/mellanox/mlx5/core/en_tc.c   |   1 +
 .../net/ethernet/mellanox/mlx5/core/esw/qos.c |   2 +
 .../net/ethernet/mellanox/mlx5/core/main.c    |   2 +
 .../mellanox/mlx5/core/steering/hws/bwc.c     |   2 +
 .../mlx5/core/steering/sws/dr_types.h         |   6 +
 drivers/net/ethernet/mellanox/mlxsw/i2c.c     |   4 +-
 drivers/net/ethernet/micrel/ks8851_spi.c      |   2 +
 .../ethernet/microchip/encx24j600-regmap.c    |   2 +
 .../net/ethernet/microchip/vcap/vcap_api.c    |   4 +
 .../netronome/nfp/nfpcore/nfp_cppcore.c       |   2 +
 drivers/net/ethernet/qlogic/qed/qed_ll2.c     |   1 +
 drivers/net/ethernet/qlogic/qed/qed_vf.c      |   4 +-
 drivers/net/ethernet/qlogic/qede/qede_main.c  |   7 +
 drivers/net/ethernet/sfc/ef10_sriov.c         |   1 +
 drivers/net/ethernet/sfc/efx_common.c         |   5 +
 drivers/net/ethernet/sfc/falcon/efx.c         |   2 +
 drivers/net/ethernet/sfc/mcdi_filters.c       |   1 +
 drivers/net/ethernet/sfc/siena/efx_common.c   |   3 +
 drivers/net/ethernet/xilinx/xilinx_axienet.h  |   2 +
 drivers/net/macsec.c                          |   1 +
 drivers/net/mctp/mctp-i3c.c                   |   7 +-
 drivers/net/phy/dp83640.c                     |   2 +
 drivers/net/phy/phy-core.c                    |   3 +
 drivers/net/phy/phy_device.c                  |   1 +
 drivers/net/phy/sfp-bus.c                     |   1 +
 drivers/net/pse-pd/pse_core.c                 |   2 +-
 drivers/net/team/team_core.c                  |   2 +
 drivers/net/tun.c                             |   1 +
 drivers/net/usb/cdc_subset.c                  |   2 +-
 drivers/net/usb/hso.c                         |   2 +
 drivers/net/usb/lan78xx.c                     |   2 +
 drivers/net/wireless/ath/ath12k/core.c        |   4 +-
 drivers/net/wireless/ath/ath6kl/sdio.c        |   1 +
 drivers/net/wireless/ath/ath9k/hif_usb.c      |   1 +
 drivers/net/wireless/ath/wil6210/main.c       |   1 +
 drivers/net/wireless/ath/wil6210/p2p.c        |   2 +
 drivers/net/wireless/broadcom/b43/main.c      |   1 +
 .../net/wireless/broadcom/b43legacy/main.c    |   1 +
 .../broadcom/brcm80211/brcmfmac/fwvid.c       |   2 +
 drivers/net/wireless/intel/iwlwifi/dvm/lib.c  |   1 +
 drivers/net/wireless/intel/iwlwifi/mvm/d3.c   |   3 +
 drivers/net/wireless/intel/iwlwifi/mvm/ops.c  |   3 +
 .../wireless/intel/iwlwifi/mvm/time-event.c   |   2 +
 drivers/net/wireless/intersil/p54/p54pci.c    |   1 +
 drivers/net/wireless/intersil/p54/p54usb.c    |   3 +-
 drivers/net/wireless/marvell/mwl8k.c          |   2 +
 .../wireless/mediatek/mt76/mt7615/testmode.c  |   1 +
 .../net/wireless/mediatek/mt76/mt76_connac.h  |   2 +
 .../net/wireless/mediatek/mt76/mt7915/main.c  |   1 +
 .../wireless/mediatek/mt76/mt7915/testmode.c  |   5 +
 .../net/wireless/mediatek/mt76/mt7925/main.c  |   6 +-
 .../net/wireless/microchip/wilc1000/wlan.c    |   2 +
 drivers/net/wireless/quantenna/qtnfmac/bus.h  |   2 +
 drivers/net/wireless/realtek/rtw88/main.c     |   1 +
 drivers/net/wireless/realtek/rtw89/core.c     |   1 +
 drivers/net/wireless/realtek/rtw89/mac80211.c |   2 +
 drivers/net/wireless/realtek/rtw89/wow.c      |   4 +
 drivers/net/wireless/realtek/rtw89/wow.h      |   2 +-
 drivers/net/wireless/rsi/rsi_91x_hal.c        |   1 +
 drivers/net/wireless/st/cw1200/pm.c           |   2 +
 drivers/net/wireless/ti/wl12xx/main.c         |   1 +
 drivers/net/wireless/ti/wlcore/main.c         |   4 +
 drivers/net/wireless/ti/wlcore/sysfs.c        |   2 +-
 drivers/net/wireless/zydas/zd1211rw/zd_usb.c  |   2 +
 drivers/nvdimm/bus.c                          |   1 +
 drivers/nvdimm/core.c                         |   2 +
 drivers/nvdimm/namespace_devs.c               |   1 +
 drivers/nvme/host/core.c                      |   2 +
 drivers/nvme/host/pci.c                       |   1 +
 drivers/nvmem/sc27xx-efuse.c                  |   2 +
 drivers/nvmem/sprd-efuse.c                    |   2 +
 drivers/of/dynamic.c                          |   4 +
 drivers/of/overlay.c                          |   2 +
 drivers/opp/core.c                            |   2 +
 drivers/pci/pci.c                             |  10 ++
 drivers/pci/pcie/bwctrl.c                     |   1 +
 drivers/pci/probe.c                           |   2 +
 drivers/pci/switch/switchtec.c                |   1 +
 drivers/pcmcia/rsrc_nonstatic.c               |   1 +
 drivers/perf/arm-cci.c                        |   1 +
 drivers/pinctrl/pinctrl-aw9523.c              |   2 +
 drivers/pinctrl/pinctrl-cy8c95x0.c            |   2 +
 drivers/pinctrl/pinctrl-mcp23s08.c            |   2 +
 drivers/pinctrl/pinctrl-stmfx.c               |   2 +
 drivers/pinctrl/pinctrl-sx150x.c              |   2 +
 drivers/platform/chrome/cros_ec_lpc_mec.c     |   2 +
 .../platform/cznic/turris-omnia-mcu-gpio.c    |   2 +
 .../platform/x86/intel/crystal_cove_charger.c |   2 +
 drivers/platform/x86/thinkpad_acpi.c          |  12 +-
 drivers/pmdomain/core.c                       |   4 +
 drivers/pmdomain/rockchip/pm-domains.c        |   2 +
 drivers/pnp/isapnp/core.c                     |  18 ++-
 drivers/power/supply/da9150-fg.c              |   2 +
 drivers/power/supply/power_supply_core.c      |   1 +
 drivers/pwm/core.c                            |   8 +
 drivers/regulator/core.c                      |   2 +
 drivers/remoteproc/mtk_scp_ipi.c              |   2 +
 drivers/s390/char/tape_std.h                  |   2 +
 drivers/scsi/aacraid/aachba.c                 |   4 +-
 drivers/scsi/aacraid/commctrl.c               |   1 +
 drivers/scsi/arm/acornscsi.c                  |   2 +-
 drivers/scsi/fnic/fnic_scsi.c                 |   1 +
 drivers/scsi/hpsa.c                           |   2 +-
 drivers/scsi/ips.c                            |   8 +-
 drivers/scsi/libfc/fc_disc.c                  |   6 +-
 drivers/scsi/libiscsi.c                       |   1 +
 drivers/scsi/megaraid.c                       |  10 +-
 drivers/scsi/megaraid/megaraid_mbox.c         |  10 +-
 drivers/scsi/megaraid/megaraid_sas.h          |   3 +-
 drivers/scsi/megaraid/megaraid_sas_base.c     |  20 ++-
 drivers/scsi/megaraid/megaraid_sas_fusion.c   |   2 +
 drivers/scsi/mpi3mr/mpi3mr_app.c              |   1 +
 drivers/scsi/mpt3sas/mpt3sas_base.c           |  12 +-
 drivers/scsi/scsi_transport_iscsi.c           |   1 +
 drivers/scsi/sg.c                             |   1 +
 drivers/scsi/smartpqi/smartpqi_init.c         |  18 +++
 drivers/siox/siox-core.c                      |   2 +
 drivers/soc/qcom/qcom_pd_mapper.c             |   1 +
 drivers/soc/tegra/pmc.c                       |   1 +
 drivers/soundwire/stream.c                    |   3 +
 drivers/spi/spi-mem.c                         |   2 +
 drivers/spi/spi.c                             |   3 +
 drivers/ssb/main.c                            |   2 +
 drivers/staging/Makefile                      |   2 +
 .../gpib/lpvo_usb_gpib/lpvo_usb_gpib.c        |   4 +-
 drivers/staging/greybus/light.c               |   2 +
 .../interface/vchiq_arm/vchiq_core.c          |   1 +
 drivers/target/iscsi/iscsi_target_tpg.c       |   1 +
 drivers/target/target_core_device.c           |   9 +-
 drivers/target/target_core_pr.c               |   6 +-
 drivers/target/target_core_spc.c              |  20 +--
 drivers/tee/amdtee/core.c                     |   1 +
 drivers/thermal/mediatek/auxadc_thermal.c     |   2 +
 drivers/thermal/tegra/soctherm.c              |   2 +
 drivers/thermal/thermal_debugfs.c             |   4 +
 drivers/tty/n_tty.c                           |   1 +
 drivers/tty/serial/sc16is7xx.c                |   2 +
 drivers/tty/tty_buffer.c                      |   2 +
 drivers/tty/tty_io.c                          |   8 +-
 drivers/tty/tty_mutex.c                       |   5 +
 drivers/ufs/core/ufshcd.c                     |   4 +
 drivers/usb/class/cdc-wdm.c                   |   6 +-
 drivers/usb/class/usblp.c                     |   5 +-
 drivers/usb/class/usbtmc.c                    |   3 +
 drivers/usb/core/devio.c                      |   7 +
 drivers/usb/core/hcd-pci.c                    |   2 +
 drivers/usb/core/hub.c                        |   7 +
 drivers/usb/core/message.c                    |   2 +-
 drivers/usb/core/sysfs.c                      |  24 +--
 drivers/usb/gadget/configfs.c                 |   6 +
 drivers/usb/gadget/function/f_fs.c            |  14 +-
 drivers/usb/gadget/function/f_mass_storage.c  |   4 +-
 drivers/usb/gadget/function/u_fs.h            |   2 +
 drivers/usb/gadget/legacy/inode.c             |  14 +-
 drivers/usb/misc/yurex.c                      |   2 +-
 drivers/usb/serial/mos7720.c                  |   2 +
 drivers/usb/serial/usb-serial.c               |   3 +
 drivers/usb/storage/debug.c                   |   4 +-
 drivers/usb/storage/transport.c               |   3 +-
 drivers/usb/storage/usb.c                     |   2 +
 drivers/usb/typec/tcpm/tcpm.c                 |  16 ++
 drivers/usb/usb-skeleton.c                    |   2 +-
 drivers/usb/usbip/stub_dev.c                  |   2 +-
 drivers/usb/usbip/stub_main.c                 |   1 +
 drivers/usb/usbip/stub_rx.c                   |   2 +-
 drivers/vdpa/vdpa_sim/vdpa_sim_blk.c          |   2 +
 drivers/vfio/group.c                          |   1 +
 drivers/vfio/pci/mlx5/cmd.h                   |   3 +-
 drivers/vfio/pci/virtio/migrate.c             |   1 +
 drivers/vfio/vfio_iommu_type1.c               |   1 +
 drivers/vhost/vhost.c                         |   3 +
 drivers/video/fbdev/core/fb_procfs.c          |   2 +
 drivers/video/fbdev/smscufx.c                 |   1 +
 drivers/video/fbdev/udlfb.c                   |   1 +
 drivers/virt/vboxguest/vboxguest_linux.c      |   2 +
 drivers/virtio/virtio_mem.c                   |   5 +
 drivers/w1/masters/omap_hdq.c                 |   8 +-
 drivers/w1/slaves/w1_therm.c                  |   9 ++
 drivers/w1/w1.c                               |   3 +
 drivers/w1/w1_netlink.c                       |   1 +
 drivers/xen/balloon.c                         |   2 +
 drivers/xen/xen-pciback/passthrough.c         |   1 +
 drivers/xen/xen-pciback/vpci.c                |   1 +
 drivers/xen/xenbus/xenbus_comms.c             |   1 +
 drivers/xen/xenbus/xenbus_xs.c                |   4 +
 fs/affs/affs.h                                |   6 +
 fs/afs/validation.c                           |   3 +-
 fs/afs/vl_alias.c                             |   6 +-
 fs/autofs/waitq.c                             |   3 +
 fs/bcachefs/alloc_foreground.c                |   4 +
 fs/bcachefs/alloc_foreground.h                |   1 +
 fs/bcachefs/btree_locking.c                   |   1 +
 fs/bcachefs/btree_write_buffer.c              |   4 +
 fs/bcachefs/debug.c                           |   2 +
 fs/bcachefs/ec.c                              |   3 +
 fs/bcachefs/fs-ioctl.c                        |   1 +
 fs/bcachefs/fs.c                              |   4 +
 fs/bcachefs/io_write.c                        |   3 +
 fs/bcachefs/journal.c                         |   2 +
 fs/bcachefs/quota.c                           |   2 +
 fs/bcachefs/seqmutex.h                        |   4 +
 fs/btrfs/block-group.c                        |   2 +
 fs/btrfs/delayed-ref.c                        |   4 +
 fs/btrfs/delayed-ref.h                        |   1 +
 fs/btrfs/extent-tree.c                        |   1 +
 fs/btrfs/free-space-cache.c                   |   1 +
 fs/btrfs/ioctl.c                              |   2 +
 fs/btrfs/qgroup.c                             |   1 +
 fs/btrfs/scrub.c                              |   2 +
 fs/btrfs/tests/delayed-refs-tests.c           |   1 +
 fs/btrfs/tree-log.c                           |   2 +
 fs/btrfs/volumes.c                            |   4 +
 fs/btrfs/zoned.h                              |   4 +
 fs/ceph/caps.c                                |   4 +
 fs/ceph/mds_client.c                          |   1 +
 fs/coda/upcall.c                              |   1 +
 fs/dcache.c                                   |   1 +
 fs/dlm/recoverd.c                             |   2 +
 fs/ecryptfs/main.c                            |   1 +
 fs/ecryptfs/messaging.c                       |   1 +
 fs/erofs/zdata.c                              |   3 +
 fs/eventpoll.c                                |   3 +
 fs/exec.c                                     |   4 +
 fs/ext4/fast_commit.c                         |   1 +
 fs/ext4/mballoc.c                             |   2 +
 fs/f2fs/data.c                                |   1 +
 fs/fat/fatent.c                               |   2 +
 fs/fat/inode.c                                |   2 +
 fs/file.c                                     |   2 +
 fs/fsopen.c                                   |   2 +-
 fs/fuse/inode.c                               |   2 +
 fs/gfs2/rgrp.c                                |   2 +
 fs/gfs2/util.c                                |   1 +
 fs/hfs/bfind.c                                |   2 +
 fs/hfsplus/bfind.c                            |   2 +
 fs/hfsplus/extents.c                          |   2 +
 fs/hpfs/hpfs_fn.h                             |   2 +
 fs/jbd2/checkpoint.c                          |   2 +
 fs/jbd2/commit.c                              |   1 +
 fs/jbd2/journal.c                             |   5 +
 fs/jbd2/transaction.c                         |   2 +
 fs/jffs2/dir.c                                |   4 +
 fs/jffs2/fs.c                                 |   1 +
 fs/jffs2/gc.c                                 |   1 +
 fs/jffs2/nodemgmt.c                           |   2 +
 fs/jffs2/write.c                              |   2 +
 fs/jfs/namei.c                                |   1 +
 fs/kernfs/file.c                              |   9 ++
 fs/lockd/host.c                               |   1 +
 fs/lockd/svclock.c                            |   1 +
 fs/namei.c                                    |   4 +
 fs/namespace.c                                |   2 +-
 fs/netfs/write_issue.c                        |   2 +
 fs/nfsd/nfs4layouts.c                         |   2 +
 fs/nfsd/nfs4proc.c                            |   2 +
 fs/nfsd/nfs4state.c                           |  11 ++
 fs/ntfs3/frecord.c                            |   4 +-
 fs/ntfs3/inode.c                              |   1 +
 fs/ntfs3/namei.c                              |   2 +
 fs/ntfs3/ntfs_fs.h                            |   4 +
 fs/ntfs3/record.c                             |   1 +
 fs/ntfs3/xattr.c                              |   2 +
 fs/ocfs2/cluster/nodemanager.c                |   2 +
 fs/ocfs2/dlmglue.c                            |   2 +
 fs/ocfs2/inode.c                              |   2 +
 fs/ocfs2/refcounttree.c                       |   2 +
 fs/orangefs/devorangefs-req.c                 |   2 +-
 fs/orangefs/orangefs-debugfs.c                |   2 +
 fs/orangefs/waitqueue.c                       |   1 +
 fs/overlayfs/overlayfs.h                      |   3 +
 fs/pipe.c                                     |   2 +
 fs/proc/base.c                                |   2 +-
 fs/proc/proc_tty.c                            |   2 +
 fs/pstore/zone.c                              |   1 +
 fs/smb/client/cifsglob.h                      |   2 +
 fs/smb/client/connect.c                       |   3 +-
 fs/smb/client/fs_context.h                    |   2 +
 fs/smb/client/smbdirect.c                     |   2 +
 fs/smb/client/smbdirect.h                     |   2 +-
 fs/smb/server/connection.h                    |   6 +-
 fs/super.c                                    |   6 +
 fs/ubifs/compress.c                           |   2 +
 fs/ubifs/dir.c                                |   4 +
 fs/ubifs/file.c                               |   6 +
 fs/ubifs/journal.c                            |   3 +
 fs/ubifs/misc.h                               |   2 +
 fs/xfs/scrub/dirtree.c                        |   2 +
 fs/xfs/scrub/dirtree_repair.c                 |   3 +
 fs/xfs/scrub/quota.c                          |   1 +
 fs/xfs/scrub/quota_repair.c                   |   3 +
 fs/xfs/scrub/quotacheck_repair.c              |   3 +
 fs/xfs/scrub/rmap_repair.c                    |   1 +
 fs/xfs/scrub/rtrmap_repair.c                  |   1 +
 fs/xfs/xfs_dquot.c                            |   7 +
 fs/xfs/xfs_dquot.h                            |  10 +-
 fs/xfs/xfs_dquot_item.c                       |   2 +
 fs/xfs/xfs_qm.c                               |   3 +
 fs/xfs/xfs_qm_syscalls.c                      |   1 +
 fs/xfs/xfs_trans_dquot.c                      |   3 +
 include/linux/blkdev.h                        |  11 +-
 include/linux/cgroup.h                        |   2 +
 include/linux/cleanup.h                       |  34 ++++-
 include/linux/device.h                        |  13 +-
 include/linux/fb.h                            |   2 +
 include/linux/fpga/fpga-bridge.h              |   2 +-
 include/linux/fpga/fpga-mgr.h                 |   4 +-
 include/linux/fsnotify_backend.h              |   2 +
 include/linux/gameport.h                      |   1 +
 include/linux/kref.h                          |   3 +
 include/linux/memory_hotplug.h                |   2 +
 include/linux/mfd/si476x-core.h               |   2 +
 include/linux/mutex.h                         |  46 +++---
 include/linux/mutex_types.h                   |   5 +-
 include/linux/netdevice.h                     |   2 +
 include/linux/phy.h                           |   2 +
 include/linux/refcount.h                      |   5 +-
 include/linux/thread_safety.h                 | 141 ++++++++++++++++++
 include/linux/usb.h                           |   3 +-
 include/media/v4l2-ctrls.h                    |   2 +
 include/media/v4l2-subdev.h                   |   5 +
 include/net/bluetooth/l2cap.h                 |   2 +
 include/net/cfg80211.h                        |   2 +
 include/scsi/scsi_proto.h                     |   4 +-
 include/sound/emu10k1.h                       |  12 +-
 include/sound/i2c.h                           |   2 +
 include/sound/soc-card.h                      |   3 +
 include/sound/soc.h                           |  14 ++
 include/trace/events/scsi.h                   |   4 +-
 include/trace/events/target.h                 |   4 +-
 io_uring/cancel.c                             |   1 +
 io_uring/fdinfo.c                             |   1 +
 io_uring/io_uring.c                           |   5 +
 io_uring/io_uring.h                           |   2 +
 io_uring/msg_ring.c                           |   3 +
 io_uring/register.c                           |   6 +
 io_uring/rsrc.c                               |   3 +
 io_uring/sqpoll.c                             |   3 +
 io_uring/tctx.c                               |   1 +
 kernel/acct.c                                 |   3 +
 kernel/audit.c                                |   2 +
 kernel/audit_tree.c                           |   2 +
 kernel/audit_watch.c                          |   1 +
 kernel/bpf/btf.c                              |   1 +
 kernel/bpf/cgroup_iter.c                      |   2 +
 kernel/bpf/verifier.c                         |   1 +
 kernel/cgroup/cgroup-v1.c                     |   4 +
 kernel/cgroup/cgroup.c                        |  18 +++
 kernel/cgroup/cpuset.c                        |   2 +
 kernel/cpu.c                                  |   2 +
 kernel/events/callchain.c                     |   1 +
 kernel/events/core.c                          |   9 ++
 kernel/events/hw_breakpoint.c                 |   2 +
 kernel/fail_function.c                        |   2 +
 kernel/futex/core.c                           |   3 +
 kernel/irq/autoprobe.c                        |   3 +
 kernel/irq/irqdesc.c                          |   2 +
 kernel/irq/msi.c                              |   2 +
 kernel/jump_label.c                           |   2 +
 kernel/kprobes.c                              |   3 +
 kernel/locking/locktorture.c                  |   4 +
 kernel/locking/mutex.c                        |  20 ++-
 kernel/module/main.c                          |   1 +
 kernel/module/procfs.c                        |   2 +
 kernel/params.c                               |   2 +
 kernel/power/autosleep.c                      |   2 +
 kernel/power/main.c                           |   2 +
 kernel/printk/printk.c                        |   2 +
 kernel/rcu/srcutree.c                         |   4 +-
 kernel/rcu/tree_exp.h                         |   1 +
 kernel/sched/core.c                           |   1 +
 kernel/seccomp.c                              |  11 +-
 kernel/static_call_inline.c                   |   2 +
 kernel/torture.c                              |   2 +
 kernel/trace/ftrace.c                         |   7 +
 kernel/trace/ring_buffer.c                    |   2 +
 kernel/trace/rv/rv.c                          |   3 +
 kernel/trace/rv/rv_reactors.c                 |   2 +
 kernel/trace/trace.c                          |  12 ++
 kernel/trace/trace_dynevent.c                 |   2 +
 kernel/trace/trace_events.c                   |  10 ++
 kernel/trace/trace_events_trigger.c           |   2 +
 kernel/trace/trace_events_user.c              |   1 +
 kernel/trace/trace_hwlat.c                    |   2 +
 kernel/trace/trace_osnoise.c                  |   2 +
 kernel/trace/trace_printk.c                   |   8 +
 kernel/trace/trace_recursion_record.c         |   2 +
 kernel/trace/trace_stat.c                     |   2 +
 kernel/trace/trace_uprobe.c                   |   2 +
 kernel/workqueue.c                            |   2 +
 lib/Makefile                                  |   2 +
 lib/dynamic_debug.c                           |   2 +
 lib/error-inject.c                            |   2 +
 lib/kunit/platform.c                          |   1 +
 lib/once.c                                    |   2 +
 mm/damon/sysfs.c                              |   3 +
 mm/hugetlb.c                                  |   4 +
 mm/kmemleak.c                                 |   6 +-
 mm/ksm.c                                      |   1 +
 mm/oom_kill.c                                 |   1 +
 mm/page_alloc.c                               |   4 +
 mm/percpu.c                                   |   1 +
 mm/slab_common.c                              |   2 +
 mm/swap_slots.c                               |   2 +
 mm/swapfile.c                                 |   2 +
 mm/vma.c                                      |   2 +
 mm/zswap.c                                    |   2 +
 net/atm/resources.c                           |   2 +
 net/bluetooth/l2cap_core.c                    |   9 ++
 net/bluetooth/l2cap_sock.c                    |   2 +
 net/bluetooth/rfcomm/sock.c                   |   1 +
 net/bridge/netfilter/ebtables.c               |   5 +
 net/caif/caif_socket.c                        |   2 +
 net/can/j1939/main.c                          |   2 +
 net/ceph/messenger.c                          |   3 +
 net/ceph/messenger_v1.c                       |   2 +
 net/ceph/messenger_v2.c                       |  14 ++
 net/core/dev.c                                |   4 +
 net/core/drop_monitor.c                       |   2 +
 net/core/netdev-genl.c                        |   5 +
 net/core/pktgen.c                             |   1 +
 net/core/rtnetlink.c                          |  12 ++
 net/core/sock.c                               |   2 +
 net/devlink/core.c                            |   3 +
 net/devlink/devl_internal.h                   |   2 +
 net/ethtool/ioctl.c                           |   1 +
 net/ipv6/mcast.c                              |   1 +
 net/mac802154/cfg.c                           |   2 +
 net/mac802154/mib.c                           |   2 +
 net/netfilter/ipset/ip_set_core.c             |   2 +
 net/netfilter/ipvs/ip_vs_app.c                |   2 +
 net/netfilter/nf_log.c                        |   2 +
 net/netfilter/nf_tables_api.c                 |   5 +
 net/netfilter/nfnetlink.c                     |   2 +
 net/netfilter/x_tables.c                      |   8 +
 net/netfilter/xt_hashlimit.c                  |   1 +
 net/netlink/af_netlink.c                      |   2 +
 net/netlink/genetlink.c                       |   7 +
 net/openvswitch/datapath.c                    |   2 +
 net/phonet/socket.c                           |   2 +
 net/qrtr/af_qrtr.c                            |   1 +
 net/rds/ib_cm.c                               |   1 +
 net/rds/rdma_transport.c                      |   1 +
 net/rds/tcp_listen.c                          |   1 +
 net/rxrpc/af_rxrpc.c                          |   1 +
 net/rxrpc/call_object.c                       |   1 +
 net/rxrpc/recvmsg.c                           |   2 +-
 net/rxrpc/sendmsg.c                           |   5 +-
 net/sched/act_api.c                           |   1 +
 net/sched/cls_api.c                           |   1 +
 net/shaper/shaper.c                           |   2 +
 net/smc/af_smc.c                              |   1 +
 net/sunrpc/rpc_pipe.c                         |   2 +
 net/sunrpc/svc_xprt.c                         |   2 +
 net/unix/af_unix.c                            |   1 +
 net/unix/unix_bpf.c                           |   1 +
 net/wireless/nl80211.c                        |   9 ++
 samples/vfio-mdev/mtty.c                      |   1 +
 scripts/Makefile.clang                        |   3 +
 security/apparmor/apparmorfs.c                |   3 +
 security/integrity/ima/ima_fs.c               |   2 +-
 security/integrity/ima/ima_main.c             |   1 +
 security/keys/keyring.c                       |   3 +
 security/tomoyo/gc.c                          |   3 +
 sound/core/compress_offload.c                 |   3 +
 sound/core/oss/pcm_oss.c                      |   9 ++
 sound/core/pcm_native.c                       |   8 +
 sound/core/seq/oss/seq_oss.c                  |   1 +
 sound/core/seq/seq_clientmgr.c                |   2 +
 sound/core/seq/seq_memory.c                   |   1 +
 sound/core/sound.c                            |   1 +
 sound/isa/gus/gus_mem.c                       |   3 +
 sound/pci/ac97/ac97_codec.c                   |   2 +
 sound/pci/hda/hda_intel.c                     |   1 +
 sound/pci/hda/patch_realtek.c                 |   2 +
 sound/pci/hda/tas2781_hda_i2c.c               |   1 +
 sound/pci/ice1712/ak4xxx.c                    |   2 +
 sound/pci/ice1712/delta.c                     |   4 +
 sound/pci/ice1712/ews.c                       |   6 +
 sound/pci/ice1712/hoontech.c                  |   1 +
 sound/pci/ice1712/ice1712.h                   |   2 +
 sound/pci/ice1712/prodigy192.c                |   2 +
 sound/pci/ice1712/revo.c                      |   4 +
 sound/pci/oxygen/oxygen_lib.c                 |   2 +-
 sound/pci/pcxhr/pcxhr_core.c                  |   1 +
 sound/soc/codecs/rt5677.c                     |   2 +
 sound/soc/codecs/wcd-mbhc-v2.c                |   7 +-
 sound/soc/soc-dapm.c                          |   9 ++
 sound/soc/soc-pcm.c                           |  25 ++++
 sound/soc/sof/intel/hda-mlink.c               |   2 +
 sound/soc/sof/ipc3-control.c                  |   1 +
 sound/soc/sof/ipc4-control.c                  |   1 +
 sound/synth/emux/soundfont.c                  |   2 +
 virt/kvm/kvm_main.c                           |   3 +
 910 files changed, 2635 insertions(+), 422 deletions(-)
 create mode 100644 include/linux/thread_safety.h


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ