[4.19,068/422] ASoC: meson: axg-fifo: report interrupt request failure

Message ID 20191119051404.060509734@linuxfoundation.org
State New
Headers show
Series
  • Untitled series #25072
Related show

Commit Message

Greg Kroah-Hartman Nov. 19, 2019, 5:14 a.m.
From: Jerome Brunet <jbrunet@baylibre.com>


[ Upstream commit dadfab7272b13ca441efdb9aa9117bc669680b05 ]

Return value of request_irq() was irgnored. Fix this and report
the failure if any

Fixes: 6dc4fa179fb8 ("ASoC: meson: add axg fifo base driver")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>

Signed-off-by: Mark Brown <broonie@kernel.org>

Signed-off-by: Sasha Levin <sashal@kernel.org>

---
 sound/soc/meson/axg-fifo.c | 2 ++
 1 file changed, 2 insertions(+)

-- 
2.20.1

Comments

Pavel Machek Nov. 21, 2019, 10:14 a.m. | #1
Hi!

> Return value of request_irq() was irgnored. Fix this and report

> the failure if any


>  1 file changed, 2 insertions(+)

> 

> diff --git a/sound/soc/meson/axg-fifo.c b/sound/soc/meson/axg-fifo.c

> index 30262550e37b1..0e4f65e654c4b 100644

> --- a/sound/soc/meson/axg-fifo.c

> +++ b/sound/soc/meson/axg-fifo.c

> @@ -203,6 +203,8 @@ static int axg_fifo_pcm_open(struct snd_pcm_substream *ss)

>  

>  	ret = request_irq(fifo->irq, axg_fifo_pcm_irq_block, 0,

>  			  dev_name(dev), ss);

> +	if (ret)

> +		return ret;

>  

>  	/* Enable pclk to access registers and clock the fifo ip */

>  	ret = clk_prepare_enable(fifo->pclk);


While this is not incorrect... 

Do we need to free_irq in case of clk_prepare_enable() or other stuff
below fails?

Best regards,
								Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Patch

diff --git a/sound/soc/meson/axg-fifo.c b/sound/soc/meson/axg-fifo.c
index 30262550e37b1..0e4f65e654c4b 100644
--- a/sound/soc/meson/axg-fifo.c
+++ b/sound/soc/meson/axg-fifo.c
@@ -203,6 +203,8 @@  static int axg_fifo_pcm_open(struct snd_pcm_substream *ss)
 
 	ret = request_irq(fifo->irq, axg_fifo_pcm_irq_block, 0,
 			  dev_name(dev), ss);
+	if (ret)
+		return ret;
 
 	/* Enable pclk to access registers and clock the fifo ip */
 	ret = clk_prepare_enable(fifo->pclk);