[PATCH 00/36] treewide: remove conditional returns with no effect
From: Sang-Heon Jeon <hidden>
Date: 2026-07-23 18:45:59
Also in:
amd-gfx, cocci, dm-devel, dmaengine, dri-devel, intel-gfx, intel-wired-lan, linux-cifs, linux-clk, linux-crypto, linux-edac, linux-gpio, linux-iio, linux-input, linux-iommu, linux-media, linux-mm, linux-pm, linux-rdma, linux-rtc, linux-s390, linux-scsi, linux-sound, linux-usb, linux-wireless, lkml, lvs-devel, netfilter-devel, nouveau, platform-driver-x86
Hello, While reading mm/memblock, I found a conditional return where both branches return the same value: err = do_something(); if (err) return err; return err; Such code is usually a leftover from removing a statement between the two returns, and the tree has about a hundred of these. Patch 1 adds a Coccinelle script that matches the pattern, including negation and constant-comparison variants. Where a local variable is assigned right before the check, the assignment and the two returns turn into a single return of the assigned expression. Patches 2-36 are generated by the script, with hand fixes to restore unexpectedly removed comments and to fix the formatting checkpatch.pl complained about. The patches are grouped by subsystem instead of split per file. If you would rather split, merge or drop your part, just let me know and I will address it in the next version. All patches are independent and can be applied separately, but for everyone's convenience, it would be nice if they were merged through a single tree. The series is based on next-20260721. Sang-Heon Jeon (36): coccinelle: misc: add cond_return_no_effect.cocci drm/amd: remove conditional return with no effect drm/radeon: remove conditional return with no effect dpll: zl3073x: remove conditional return with no effect drm/i915: remove conditional return with no effect drm: remove conditional return with no effect net: ethernet: remove conditional return with no effect net: remove conditional return with no effect net: intel: remove conditional return with no effect wifi: remove conditional return with no effect ipvs: remove conditional return with no effect media: remove conditional return with no effect ALSA: remove conditional return with no effect ASoC: remove conditional return with no effect iio: remove conditional return with no effect Input: remove conditional return with no effect clk: remove conditional return with no effect crypto: drivers - remove conditional return with no effect dmaengine: qcom_hidma: remove conditional return with no effect stm class: remove conditional return with no effect RDMA/ocrdma: remove conditional return with no effect iommu/s390: remove conditional return with no effect dm vdo: remove conditional return with no effect pinctrl: mediatek: remove conditional return with no effect platform/x86: toshiba_haps: remove conditional return with no effect power: supply: pm8916_lbc: remove conditional return with no effect RAS/AMD/ATL: remove conditional return with no effect regulator: wm831x-isink: remove conditional return with no effect rtc: pcf2127: remove conditional return with no effect scsi: mpt3sas: remove conditional return with no effect thermal/drivers/k3_bandgap: remove conditional return with no effect USB: serial: ch341: remove conditional return with no effect usb: typec: fusb302: remove conditional return with no effect smb: client: remove conditional return with no effect cpupower: remove conditional return with no effect memblock: remove conditional return with no effect drivers/clk/clk-cs2000-cp.c | 6 +- drivers/clk/clk-lmk04832.c | 12 +- .../intel/qat/qat_common/adf_gen2_config.c | 8 +- .../marvell/octeontx2/otx2_cpt_mbox_common.c | 7 +- drivers/dma/qcom/hidma_ll.c | 6 +- drivers/dpll/zl3073x/dpll.c | 6 +- drivers/dpll/zl3073x/out.c | 8 +- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 6 +- drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 6 +- drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c | 6 +- drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c | 6 +- drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 6 +- drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 6 +- drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c | 6 +- drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 6 +- drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 6 +- drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 6 +- drivers/gpu/drm/amd/amdgpu/vce_v4_0.c | 6 +- drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c | 32 ++--- drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 6 +- drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 6 +- .../gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 6 +- .../gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 6 +- .../gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 19 +-- .../gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c | 7 +- .../gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c | 7 +- .../drm/amd/pm/swsmu/smu13/aldebaran_ppt.c | 6 +- .../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 19 +-- .../drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 6 +- .../drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c | 10 +- .../drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 6 +- .../gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c | 19 +-- .../drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c | 6 +- .../gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c | 9 +- .../drm/amd/pm/swsmu/smu15/smu_v15_0_8_ppt.c | 16 +-- drivers/gpu/drm/i915/display/intel_hdmi.c | 7 +- drivers/gpu/drm/i915/gvt/gtt.c | 8 +- drivers/gpu/drm/imx/ipuv3/imx-drm-core.c | 6 +- drivers/gpu/drm/nouveau/dispnv50/disp.c | 14 +- .../drm/panel/panel-osd-osd101t2587-53ts.c | 7 +- drivers/gpu/drm/radeon/ci_dpm.c | 6 +- drivers/gpu/drm/radeon/kv_dpm.c | 30 ++--- drivers/gpu/drm/radeon/si_dpm.c | 14 +- drivers/gpu/drm/tilcdc/tilcdc_drv.c | 6 +- drivers/hwtracing/stm/core.c | 8 +- drivers/iio/light/isl29028.c | 6 +- drivers/iio/light/tsl2583.c | 14 +- drivers/iio/magnetometer/ak8974.c | 6 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 7 +- drivers/input/keyboard/pmic8xxx-keypad.c | 8 +- drivers/input/mouse/synaptics_i2c.c | 6 +- drivers/input/rmi4/rmi_smbus.c | 7 +- drivers/iommu/s390-iommu.c | 8 +- drivers/md/dm-vdo/encodings.c | 8 +- drivers/media/i2c/mt9p031.c | 6 +- .../microchip/microchip-sama7g5-isc.c | 7 +- .../media/platform/qcom/iris/iris_resources.c | 6 +- .../media/platform/qcom/venus/pm_helpers.c | 7 +- drivers/media/platform/renesas/rcar-csi2.c | 6 +- .../platform/samsung/s3c-camif/camif-core.c | 7 +- drivers/media/usb/dvb-usb-v2/mxl111sf.c | 12 +- drivers/media/usb/gspca/jl2005bcd.c | 7 +- drivers/net/ethernet/amazon/ena/ena_netdev.c | 6 +- .../ethernet/aquantia/atlantic/aq_macsec.c | 6 +- .../ethernet/freescale/dpaa2/dpaa2-switch.c | 6 +- drivers/net/ethernet/freescale/gianfar.c | 6 +- drivers/net/ethernet/intel/i40e/i40e_main.c | 8 +- drivers/net/ethernet/intel/igb/e1000_i210.c | 6 +- drivers/net/ethernet/intel/igc/igc_phy.c | 6 +- .../ethernet/qlogic/netxen/netxen_nic_hw.c | 7 +- .../ethernet/qlogic/qlcnic/qlcnic_83xx_init.c | 6 +- drivers/net/ethernet/renesas/rtsn.c | 7 +- drivers/net/phy/microchip_t1.c | 6 +- drivers/net/pse-pd/tps23881.c | 6 +- drivers/net/wireless/ath/ath6kl/init.c | 6 +- drivers/net/wireless/intel/iwlwifi/mvm/link.c | 6 +- .../wireless/realtek/rtlwifi/rtl8821ae/hw.c | 7 +- drivers/net/wireless/realtek/rtw89/mac.c | 6 +- drivers/net/wireless/realtek/rtw89/mac_be.c | 6 +- .../pinctrl/mediatek/pinctrl-mtk-common-v2.c | 6 +- drivers/platform/x86/toshiba_haps.c | 6 +- drivers/power/supply/pm8916_lbc.c | 8 +- drivers/ras/amd/atl/map.c | 6 +- drivers/regulator/wm831x-isink.c | 6 +- drivers/rtc/rtc-pcf2127.c | 7 +- drivers/scsi/mpt3sas/mpt3sas_base.c | 6 +- drivers/thermal/k3_bandgap.c | 7 +- drivers/usb/serial/ch341.c | 8 +- drivers/usb/typec/tcpm/fusb302.c | 14 +- fs/smb/client/smb1maperror.c | 6 +- mm/memblock.c | 7 +- net/netfilter/ipvs/ip_vs_sync.c | 7 +- .../misc/cond_return_no_effect.cocci | 121 ++++++++++++++++++ sound/pci/echoaudio/echoaudio_dsp.c | 6 +- sound/pci/echoaudio/layla24_dsp.c | 6 +- sound/pci/riptide/riptide.c | 5 +- sound/soc/amd/acp/acp-mach-common.c | 11 +- sound/soc/intel/atom/sst-mfld-platform-pcm.c | 7 +- sound/soc/samsung/smdk_spdif.c | 8 +- sound/soc/sof/intel/hda-dsp.c | 6 +- sound/usb/mixer_scarlett.c | 26 ++-- tools/power/cpupower/utils/powercap-info.c | 2 - 102 files changed, 295 insertions(+), 643 deletions(-) create mode 100644 scripts/coccinelle/misc/cond_return_no_effect.cocci -- 2.43.0