Skip to contentSkip to conversation

ASoC: fsl_asrc_dma: fix error handling for DMA channel retrieval

PATCH In review [email protected] 3 participants 5 messages Oct 28 – Nov 9

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ASoC: fsl_asrc_dma: fix error handling for DMA channel retrieval

From: Shengjiu Wang <[email protected]>

The original check used if (!tmp_chan), which only catches NULL pointers. However asrc->get_dma_channel() returns an error pointer. The NULL check will always succeed, so replace it with IS_ERR(tmp_chan) to correctly detect errors.

Fixes b4136c0d69ea ("ASoC: fsl_asrc: check the second front-end DMA channel")
---
 sound/soc/fsl/fsl_asrc_dma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
sound/soc/fsl/fsl_asrc_dma.c +1 -1
index b417de6abebe..b39d3d76d26a 100644
@@ -251,7 +251,7 @@ static int fsl_asrc_dma_hw_params(struct snd_soc_component *component,
 
 		/* Get DMA request of Front-End */
 		tmp_chan = asrc->get_dma_channel(pair, dir);
-		if (!tmp_chan) {
+		if (IS_ERR(tmp_chan)) {
 			dma_release_channel(pair->dma_chan[!dir]);
 			pair->dma_chan[!dir] = NULL;
 			return -EINVAL;
Signature · 1 line
2.34.1
Reviewed-by on v1 1/1
#1 lore raw
Quoted 9 lines · On 10/28/2026 10:59 AM, [email protected] wrote:

From: Shengjiu Wang <[email protected]>

The original check used if (!tmp_chan), which only catches NULL pointers. However asrc->get_dma_channel() returns an error pointer. The NULL check will always succeed, so replace it with IS_ERR(tmp_chan) to correctly detect errors.

Fixes b4136c0d69ea ("ASoC: fsl_asrc: check the second front-end DMA channel")

Regards,
Chancel Liu

Quoted 17 lines
---
 sound/soc/fsl/fsl_asrc_dma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
sound/soc/fsl/fsl_asrc_dma.c +1 -1
index b417de6abebe..b39d3d76d26a 100644
@@ -251,7 +251,7 @@ static int fsl_asrc_dma_hw_params(struct snd_soc_component *component,
 
 		/* Get DMA request of Front-End */
 		tmp_chan = asrc->get_dma_channel(pair, dir);
-		if (!tmp_chan) {
+		if (IS_ERR(tmp_chan)) {
 			dma_release_channel(pair->dma_chan[!dir]);
 			pair->dma_chan[!dir] = NULL;
 			return -EINVAL;
maintainer
#2 lore raw
Quoted 8 lines · Chancel Liu
Quoted 7 lines · On 10/28/2026 10:59 AM, [email protected] wrote:

From: Shengjiu Wang <[email protected]>

The original check used if (!tmp_chan), which only catches NULL pointers. However asrc->get_dma_channel() returns an error pointer. The NULL check will always succeed, so replace it with IS_ERR(tmp_chan) to correctly detect errors.

Quoted 4 lines
Quoted 2 lines
Fixes b4136c0d69ea ("ASoC: fsl_asrc: check the second front-end DMA channel")

Note that if you send from an address other than the one you're using for your R-b it'll be ignored by the tooling.

#3 lore raw
Quoted 9 lines · Mark Brown
Quoted 8 lines · Chancel Liu
Quoted 7 lines · On 10/28/2026 10:59 AM, [email protected] wrote:

From: Shengjiu Wang <[email protected]>

The original check used if (!tmp_chan), which only catches NULL pointers. However asrc->get_dma_channel() returns an error pointer. The NULL check will always succeed, so replace it with IS_ERR(tmp_chan) to correctly detect errors.

Quoted 7 lines
Quoted 4 lines
Quoted 2 lines
Fixes b4136c0d69ea ("ASoC: fsl_asrc: check the second front-end DMA channel")

Note that if you send from an address other than the one you're using for your R-b it'll be ignored by the tooling.

Oh, I never knew that. Thanks for the reminder!

Regards,
Chancel Liu

maintainer
#4 lore raw
In reply to [email protected]
Quoted 1 line · On Wed, 28 Oct 2026 10:59:21 +0800, [email protected] wrote:

ASoC: fsl_asrc_dma: fix error handling for DMA channel retrieval

Applied to

https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-7.5

Thanks!

[1/1] ASoC: fsl_asrc_dma: fix error handling for DMA channel retrieval

      https://git.kernel.org/broonie/sound/c/1f18d4babdf4

All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying to this mail.

Thanks,
Mark