linux/sound/soc
Haotian Zhang bfa4f33f0a ASoC: cs4271: Fix regulator leak on probe failure
[ Upstream commit 6b6eddc63c ]

The probe function enables regulators at the beginning
but fails to disable them in its error handling path.
If any operation after enabling the regulators fails,
the probe will exit with an error, leaving the regulators
permanently enabled, which could lead to a resource leak.

Add a proper error handling path to call regulator_bulk_disable()
before returning an error.

Fixes: 9a397f4736 ("ASoC: cs4271: add regulator consumer support")
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20251105062246.1955-1-vulab@iscas.ac.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-12-07 06:09:28 +09:00
..
adi ASoC: axi-i2s: Use devm_platform_get_and_ioremap_resource() 2021-06-14 15:01:03 +01:00
amd ASoC: amd: vg: fix for pm resume callback sequence 2022-04-08 14:24:02 +02:00
atmel Revert "ASoC: atmel: Remove system clock tree configuration for at91sam9g20ek" 2024-01-25 14:52:31 -08:00
au1x ASoC: allow module autoloading for table db1200_pids 2024-10-17 15:10:38 +02:00
bcm ASoC: Updates for v5.15 2021-08-30 14:57:03 +02:00
cirrus ASoC: cirrus: sync parameter naming (rate/sample_bits) 2021-01-21 12:37:48 +00:00
codecs ASoC: cs4271: Fix regulator leak on probe failure 2025-12-07 06:09:28 +09:00
dwc ASoC: dwc: move DMA init to snd_soc_dai_driver probe() 2023-06-21 15:59:13 +02:00
fsl ASoC: fsl_sai: replace regmap_write with regmap_update_bits 2025-08-28 16:24:26 +02:00
generic ASoC: soc-dai.h: merge DAI call back functions into ops 2025-08-28 16:24:26 +02:00
hisilicon ASoC: hisilicon: Use devm_platform_get_and_ioremap_resource() 2021-06-15 16:39:49 +01:00
img ASoC: img-spdif-out: Use devm_platform_get_and_ioremap_resource() 2021-06-15 16:39:47 +01:00
intel ASoC: Intel: bytcr_rt5651: Fix invalid quirk input mapping 2025-10-19 16:21:34 +02:00
jz4740 ASoC: jz4740-i2s: Handle independent FIFO flush bits 2023-01-12 11:58:57 +01:00
kirkwood ASoC: kirkwood: Fix potential NULL dereference 2024-06-16 13:39:27 +02:00
mediatek ASoC: mediatek: disable buffer pre-allocation 2025-01-23 17:15:49 +01:00
meson ASoC: meson: aiu-encoder-i2s: fix bit clock polarity 2025-12-07 06:09:25 +09:00
mxs ASoC: mxs-saif: Fix refcount leak in mxs_saif_probe 2022-06-09 10:22:56 +02:00
pxa ARM: pxa: spitz: use gpio descriptors for audio 2024-08-19 05:44:54 +02:00
qcom ASoC: qdsp6: q6asm: do not sleep while atomic 2025-12-07 06:09:13 +09:00
rockchip ASoC: rockchip: spdif: Add missing clk_disable_unprepare() in rk_spdif_runtime_resume() 2022-12-31 13:14:45 +01:00
samsung ASoC: samsung: Add missing depends on I2C 2025-02-01 18:24:00 +01:00
sh ASoC: rsnd: don't indicate warning on rsnd_kctrl_accept_runtime() 2025-04-10 14:31:50 +02:00
sof ASoC: SOF: Intel: hda-stream: Fix incorrect variable used in error message 2025-10-02 13:39:08 +02:00
spear ASoC: spear: spdif_out: Use devm_platform_get_and_ioremap_resource() 2021-06-17 13:47:06 +01:00
sprd ASoC: sprd: Use managed buffer allocation 2021-08-04 08:10:27 +02:00
sti ASoC: sti: Fix deadlock via snd_pcm_stop_xrun() call 2022-03-28 09:58:43 +02:00
stm ASoC: stm: Prevent potential division by zero in stm32_sai_get_clk_div() 2024-12-14 19:50:41 +01:00
sunxi ASoC: sun4i-spdif: Add clock multiplier settings 2025-03-13 12:50:00 +01:00
tegra ASoC: tegra210_ahub: Add check to of_device_get_match_data() 2025-06-27 11:05:28 +01:00
ti ASoC: ti: j721e-evm: Fix clock configuration for ti,j7200-cpb-audio compatible 2025-04-10 14:31:58 +02:00
uniphier ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA 2022-01-27 11:04:06 +01:00
ux500 ASoC: ux500: mop500: align function prototype 2021-03-31 18:03:28 +01:00
xilinx ASoC: xilinx: xlnx_formatter_pcm: Handle sysclk setting 2022-04-08 14:23:13 +02:00
xtensa ASoC: xtensa: use asoc_substream_to_rtd() 2020-07-23 19:07:42 +01:00
Kconfig ASoC: topology: Select SND_DYNAMIC_MINORS 2021-07-27 13:13:04 +01:00
Makefile ASoC: topology: adhere to KUNIT formatting standard 2021-04-14 15:26:24 +01:00
soc-ac97.c ASoC: soc-ac97: cleanup cppcheck warning 2021-08-16 13:29:36 +01:00
soc-acpi.c ASoC: soc-acpi: remove useless initialization 2021-04-19 14:03:29 +01:00
soc-card.c ASoC: soc-card: add snd_soc_card_remove_dai_link() 2020-05-30 02:11:42 +01:00
soc-component.c ASoC: soc-component: cleanup cppcheck warning at snd_soc_pcm_component_pm_runtime_get() 2021-08-16 13:29:35 +01:00
soc-compress.c ASoC: soc-compress: Inherit atomicity from DAI link for Compress FE 2023-05-17 11:50:26 +02:00
soc-core.c ASoC: soc-dai.h: merge DAI call back functions into ops 2025-08-28 16:24:26 +02:00
soc-dai.c ASoC: soc-dai.h: merge DAI call back functions into ops 2025-08-28 16:24:26 +02:00
soc-dapm.c ASoC: soc-dapm: set bias_level if snd_soc_dapm_set_bias_level() was successed 2025-08-28 16:24:18 +02:00
soc-devres.c ASoC: core: Remove only the registered component in devm functions 2020-07-07 11:55:46 +01:00
soc-generic-dmaengine-pcm.c ALSA: dmaengine: Synchronize dma channel after drop() 2024-07-27 10:46:11 +02:00
soc-jack.c ASoC: soc-jack: cleanup cppcheck warning for CONFIG_GPIOLIB 2021-08-16 13:29:34 +01:00
soc-link.c ASoC: soc-pcm: care trigger rollback 2020-12-09 12:13:38 +00:00
soc-ops.c ASoC: ops: dynamically allocate struct snd_ctl_elem_value 2025-08-28 16:24:06 +02:00
soc-pcm.c ASoC: soc-pcm: test if a BE can be prepared 2023-06-21 15:59:13 +02:00
soc-topology-test.c ASoC: topology: KUnit: Convert from cpu to data format 2021-02-02 17:08:21 +00:00
soc-topology.c ASoC: topology: Properly initialize soc_enum values 2024-09-12 11:07:47 +02:00
soc-utils.c ASoC: soc-utils: Export snd_soc_dai_is_dummy() symbol 2023-10-10 21:59:04 +02:00