From: Bart Van Assche <bvanassche@acm.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Will Deacon <will@kernel.org>, Christoph Hellwig <hch@lst.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Marco Elver <elver@google.com>,
Nick Desaulniers <ndesaulniers@google.com>,
Nathan Chancellor <nathan@kernel.org>,
Kees Cook <kees@kernel.org>, Jann Horn <jannh@google.com>,
linux-kernel@vger.kernel.org,
Bart Van Assche <bvanassche@acm.org>
Subject: [PATCH RFC 00/33] Compile-time thread-safety checking
Date: Thu, 6 Feb 2025 09:50:41 -0800 [thread overview]
Message-ID: <20250206175114.1974171-1-bvanassche@acm.org> (raw)
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
next reply other threads:[~2025-02-06 17:52 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-06 17:50 Bart Van Assche [this message]
2025-02-06 17:50 ` [PATCH RFC 01/33] scsi, usb: Rename the RESERVE and RELEASE constants Bart Van Assche
2025-02-07 3:44 ` Christoph Hellwig
2025-02-06 17:50 ` [PATCH RFC 02/33] s390: Comment out the RELEASE constant Bart Van Assche
2025-02-06 17:50 ` [PATCH RFC 03/33] locking: Introduce <linux/thread_safety.h> Bart Van Assche
2025-02-07 3:53 ` Christoph Hellwig
2025-02-07 8:29 ` Marco Elver
2025-02-07 22:34 ` Bart Van Assche
2025-02-07 23:19 ` Marco Elver
2025-02-07 23:50 ` Bart Van Assche
2025-02-06 17:50 ` [PATCH RFC 04/33] include/linux/cleanup.h: Support thread-safety analysis Bart Van Assche
2025-02-06 17:50 ` [PATCH RFC 05/33] locking/mutex: Change the atomic_dec_and_mutex_lock() return type Bart Van Assche
2025-02-07 3:47 ` Christoph Hellwig
2025-02-06 17:50 ` [PATCH RFC 06/33] locking/mutex: Annotate struct mutex and mutex functions Bart Van Assche
2025-02-06 17:50 ` [PATCH RFC 07/33] driver core: Annotate locking functions in <linux/device.h> Bart Van Assche
2025-02-06 17:50 ` [PATCH RFC 08/33] kref: Add thread-safety annotations in <linux/kref.h> Bart Van Assche
2025-02-06 17:50 ` [PATCH RFC 09/33] refcount: Add thread-safety annotations in <linux/refcount.h> Bart Van Assche
2025-02-06 17:50 ` [PATCH RFC 10/33] treewide: Modify mutex_lock_interruptible() return value checks Bart Van Assche
2025-02-06 17:50 ` [PATCH RFC 11/33] PNP: isapnp: Check the isapnp_cfg_begin() return value Bart Van Assche
2025-02-06 17:50 ` [PATCH RFC 12/33] scsi: mpi3mr: Fix locking in an error path Bart Van Assche
2025-02-06 17:50 ` [PATCH RFC 13/33] scsi: mpt3sas: Fix a locking bug " Bart Van Assche
2025-02-06 17:50 ` [PATCH RFC 14/33] ice: Split ice_dcb_rebuild() Bart Van Assche
2025-02-06 22:01 ` Przemek Kitszel
2025-02-06 17:50 ` [PATCH RFC 15/33] ice: Fix a locking bug in an error path Bart Van Assche
2025-02-06 21:35 ` Tony Nguyen
2025-02-06 21:44 ` Bart Van Assche
2025-02-06 21:48 ` Tony Nguyen
2025-02-06 17:50 ` [PATCH RFC 16/33] net/mlx5e: Make the code easier to analyze Bart Van Assche
2025-02-06 17:50 ` [PATCH RFC 17/33] Input: synaptics-rmi4 - fix a locking bug in an error path Bart Van Assche
2025-02-06 17:50 ` [PATCH RFC 18/33] misc: nsm: Fix " Bart Van Assche
2025-02-06 17:51 ` [PATCH RFC 19/33] drm/amdgpu: Unlock a mutex before destroying it Bart Van Assche
2025-02-06 17:51 ` [PATCH RFC 20/33] drm/amdgpu: Fix a locking bug in an error path Bart Van Assche
2025-02-06 17:51 ` [PATCH RFC 21/33] drm/amdgpu: Fix locking bugs in error paths Bart Van Assche
2025-02-06 17:51 ` [PATCH RFC 22/33] drm: bridge: cdns-mhdp8546: Fix a locking bug in an error path Bart Van Assche
2025-02-06 17:51 ` [PATCH RFC 23/33] " Bart Van Assche
2025-02-06 17:51 ` [PATCH RFC 24/33] drm: zynqmp_dp: Fix a deadlock in zynqmp_dp_ignore_hpd_set() Bart Van Assche
2025-02-06 19:22 ` Sean Anderson
2025-02-06 20:24 ` Bart Van Assche
2025-02-06 17:51 ` [PATCH RFC 25/33] wifi: ath12k: Fix locking in error paths Bart Van Assche
2025-02-06 18:25 ` Jeff Johnson
2025-02-06 22:13 ` Bart Van Assche
2025-02-06 17:51 ` [PATCH RFC 26/33] mctp i3c: " Bart Van Assche
2025-02-06 17:51 ` [PATCH RFC 27/33] iavf: Fix a locking bug in an error path Bart Van Assche
2025-02-12 2:03 ` Jakub Kicinski
2025-02-06 17:51 ` [PATCH RFC 28/33] wifi: mt76: mt7925: " Bart Van Assche
2025-02-06 17:51 ` [PATCH RFC 29/33] hwmon: (it87) Check the it87_lock() return value Bart Van Assche
2025-02-06 22:51 ` Guenter Roeck
2025-02-06 23:34 ` Bart Van Assche
2025-02-06 23:41 ` Guenter Roeck
2025-02-09 5:04 ` Frank Crawford
2025-02-07 3:45 ` Christoph Hellwig
2025-02-06 17:51 ` [PATCH RFC 30/33] drivers/net/ethernet/marvell/octeontx2/nic: Fix locking in an error path Bart Van Assche
2025-02-06 17:51 ` [PATCH RFC 31/33] md/raid*: Fix raid*_set_queue_limits() Bart Van Assche
2025-02-06 17:51 ` [PATCH RFC 32/33] treewide: Annotate all struct mutex users Bart Van Assche
2025-02-06 17:51 ` [PATCH RFC 33/33] kbuild: clang: Unconditionally enable thread-safety checking Bart Van Assche
2025-02-06 18:20 ` [PATCH RFC 00/33] Compile-time " Marco Elver
2025-02-06 18:34 ` Bart Van Assche
2025-02-07 8:42 ` Peter Zijlstra
2025-02-07 9:05 ` Marco Elver
2025-02-07 9:08 ` Peter Zijlstra
2025-02-07 9:41 ` Marco Elver
2025-02-07 17:46 ` Bart Van Assche
2025-02-07 18:24 ` Marco Elver
2025-02-07 18:35 ` Bart Van Assche
2025-02-07 18:54 ` Marco Elver
2025-02-07 3:44 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250206175114.1974171-1-bvanassche@acm.org \
--to=bvanassche@acm.org \
--cc=elver@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=hch@lst.de \
--cc=jannh@google.com \
--cc=kees@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=peterz@infradead.org \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®