[PATCH 00/36] treewide: remove conditional returns with no effect

Sang-Heon Jeon posted 36 patches 9 hours ago
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
[PATCH 00/36] treewide: remove conditional returns with no effect
Posted by Sang-Heon Jeon 9 hours ago
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