* [PATCH] ASoC: rsnd: fix usrcnt decrementing bug [not found] <1450867041-729-1-git-send-email-a.hajda@samsung.com> @ 2015-12-23 10:37 ` Andrzej Hajda 2015-12-24 0:04 ` Kuninori Morimoto 0 siblings, 1 reply; 8+ messages in thread From: Andrzej Hajda @ 2015-12-23 10:37 UTC (permalink / raw) To: Liam Girdwood, Mark Brown Cc: alsa-devel, Kuninori Morimoto, Bartlomiej Zolnierkiewicz, open list, Takashi Iwai, Andrzej Hajda, Marek Szyprowski Field usrcnt is unsigned so it cannot be lesser than zero. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2038576 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> --- sound/soc/sh/rcar/ssi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c index 0b91692..8ca30fd 100644 --- a/sound/soc/sh/rcar/ssi.c +++ b/sound/soc/sh/rcar/ssi.c @@ -381,9 +381,9 @@ rsnd_ssi_quit_end: rsnd_mod_power_off(mod); - ssi->usrcnt--; - - if (ssi->usrcnt < 0) + if (ssi->usrcnt > 0) + ssi->usrcnt--; + else dev_err(dev, "%s[%d] usrcnt error\n", rsnd_mod_name(mod), rsnd_mod_id(mod)); -- 1.9.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] ASoC: rsnd: fix usrcnt decrementing bug 2015-12-23 10:37 ` [PATCH] ASoC: rsnd: fix usrcnt decrementing bug Andrzej Hajda @ 2015-12-24 0:04 ` Kuninori Morimoto 2015-12-24 5:56 ` Andrzej Hajda 0 siblings, 1 reply; 8+ messages in thread From: Kuninori Morimoto @ 2015-12-24 0:04 UTC (permalink / raw) To: Andrzej Hajda Cc: Liam Girdwood, Mark Brown, Bartlomiej Zolnierkiewicz, Marek Szyprowski, Jaroslav Kysela, Takashi Iwai, moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..., open list Hi Andrzej > Field usrcnt is unsigned so it cannot be lesser than zero. > > The problem has been detected using proposed semantic patch > scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1]. > > [1]: http://permalink.gmane.org/gmane.linux.kernel/2038576 > > Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> > --- Thank you for your patch. good catch ! I noticed current error case is not good for ssi.c Can you agree below ? --------- diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c index 7db05fd..e519e30 100644 --- a/sound/soc/sh/rcar/ssi.c +++ b/sound/soc/sh/rcar/ssi.c @@ -403,6 +403,12 @@ static int rsnd_ssi_quit(struct rsnd_mod *mod, struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); struct device *dev = rsnd_priv_to_dev(priv); + if (!ssi->usrcnt) { + dev_err(dev, "%s[%d] usrcnt error\n", + rsnd_mod_name(mod), rsnd_mod_id(mod)); + return -EIO; + } + if (rsnd_ssi_is_parent(mod, io)) goto rsnd_ssi_quit_end; @@ -422,10 +428,6 @@ rsnd_ssi_quit_end: ssi->usrcnt--; - if (ssi->usrcnt < 0) - dev_err(dev, "%s[%d] usrcnt error\n", - rsnd_mod_name(mod), rsnd_mod_id(mod)); - return 0; } --------- Best regards --- Kuninori Morimoto ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] ASoC: rsnd: fix usrcnt decrementing bug 2015-12-24 0:04 ` Kuninori Morimoto @ 2015-12-24 5:56 ` Andrzej Hajda 2015-12-24 6:14 ` Kuninori Morimoto 0 siblings, 1 reply; 8+ messages in thread From: Andrzej Hajda @ 2015-12-24 5:56 UTC (permalink / raw) To: Kuninori Morimoto Cc: Liam Girdwood, Mark Brown, Bartlomiej Zolnierkiewicz, Marek Szyprowski, Jaroslav Kysela, Takashi Iwai, moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..., open list On 12/24/2015 01:04 AM, Kuninori Morimoto wrote: > Hi Andrzej > >> Field usrcnt is unsigned so it cannot be lesser than zero. >> >> The problem has been detected using proposed semantic patch >> scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1]. >> >> [1]: http://permalink.gmane.org/gmane.linux.kernel/2038576 >> >> Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> >> --- > Thank you for your patch. good catch ! > I noticed current error case is not good for ssi.c > Can you agree below ? Yes, of course. Regards Andrzej > > --------- > diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c > index 7db05fd..e519e30 100644 > --- a/sound/soc/sh/rcar/ssi.c > +++ b/sound/soc/sh/rcar/ssi.c > @@ -403,6 +403,12 @@ static int rsnd_ssi_quit(struct rsnd_mod *mod, > struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); > struct device *dev = rsnd_priv_to_dev(priv); > > + if (!ssi->usrcnt) { > + dev_err(dev, "%s[%d] usrcnt error\n", > + rsnd_mod_name(mod), rsnd_mod_id(mod)); > + return -EIO; > + } > + > if (rsnd_ssi_is_parent(mod, io)) > goto rsnd_ssi_quit_end; > > @@ -422,10 +428,6 @@ rsnd_ssi_quit_end: > > ssi->usrcnt--; > > - if (ssi->usrcnt < 0) > - dev_err(dev, "%s[%d] usrcnt error\n", > - rsnd_mod_name(mod), rsnd_mod_id(mod)); > - > return 0; > } > > --------- > > > Best regards > --- > Kuninori Morimoto > > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ASoC: rsnd: fix usrcnt decrementing bug 2015-12-24 5:56 ` Andrzej Hajda @ 2015-12-24 6:14 ` Kuninori Morimoto 2015-12-24 7:02 ` [PATCH v2] " Andrzej Hajda 0 siblings, 1 reply; 8+ messages in thread From: Kuninori Morimoto @ 2015-12-24 6:14 UTC (permalink / raw) To: Andrzej Hajda Cc: moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..., Liam Girdwood, open list, Bartlomiej Zolnierkiewicz, Takashi Iwai, Mark Brown, Marek Szyprowski Hi Andrzej > >> Field usrcnt is unsigned so it cannot be lesser than zero. > >> > >> The problem has been detected using proposed semantic patch > >> scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1]. > >> > >> [1]: http://permalink.gmane.org/gmane.linux.kernel/2038576 > >> > >> Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> > >> --- > > Thank you for your patch. good catch ! > > I noticed current error case is not good for ssi.c > > Can you agree below ? > Yes, of course. Thanks. Who send this patch ? you or me ? I think you can do it ? ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2] ASoC: rsnd: fix usrcnt decrementing bug 2015-12-24 6:14 ` Kuninori Morimoto @ 2015-12-24 7:02 ` Andrzej Hajda 2015-12-24 7:38 ` Kuninori Morimoto ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Andrzej Hajda @ 2015-12-24 7:02 UTC (permalink / raw) To: Liam Girdwood, Mark Brown, Kuninori Morimoto Cc: Andrzej Hajda, Bartlomiej Zolnierkiewicz, Marek Szyprowski, Jaroslav Kysela, Takashi Iwai, moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..., open list Field usrcnt is unsigned so it cannot be lesser than zero. The patch fixes the check, moves it to the beginning of the function and changes return value to -EIO in case of usercnt error. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2038576 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> --- v2: changed according to Kuninori Morimoto advice --- sound/soc/sh/rcar/ssi.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c index 0b91692..f23c921 100644 --- a/sound/soc/sh/rcar/ssi.c +++ b/sound/soc/sh/rcar/ssi.c @@ -364,29 +364,30 @@ static int rsnd_ssi_quit(struct rsnd_mod *mod, struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); struct device *dev = rsnd_priv_to_dev(priv); - if (rsnd_ssi_is_parent(mod, io)) - goto rsnd_ssi_quit_end; + if (!ssi->usrcnt) { + dev_err(dev, "%s[%d] usrcnt error\n", + rsnd_mod_name(mod), rsnd_mod_id(mod)); + return -EIO; + } - if (ssi->err > 0) - dev_warn(dev, "%s[%d] under/over flow err = %d\n", - rsnd_mod_name(mod), rsnd_mod_id(mod), ssi->err); + if (!rsnd_ssi_is_parent(mod, io)) { + if (ssi->err > 0) + dev_warn(dev, "%s[%d] under/over flow err = %d\n", + rsnd_mod_name(mod), rsnd_mod_id(mod), + ssi->err); - ssi->cr_own = 0; - ssi->err = 0; + ssi->cr_own = 0; + ssi->err = 0; - rsnd_ssi_irq_disable(mod); + rsnd_ssi_irq_disable(mod); + } -rsnd_ssi_quit_end: rsnd_ssi_master_clk_stop(ssi, io); rsnd_mod_power_off(mod); ssi->usrcnt--; - if (ssi->usrcnt < 0) - dev_err(dev, "%s[%d] usrcnt error\n", - rsnd_mod_name(mod), rsnd_mod_id(mod)); - return 0; } -- 1.9.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2] ASoC: rsnd: fix usrcnt decrementing bug 2015-12-24 7:02 ` [PATCH v2] " Andrzej Hajda @ 2015-12-24 7:38 ` Kuninori Morimoto 2015-12-30 17:12 ` Mark Brown 2015-12-30 18:05 ` Applied "ASoC: rsnd: fix usrcnt decrementing bug" to the asoc tree Mark Brown 2 siblings, 0 replies; 8+ messages in thread From: Kuninori Morimoto @ 2015-12-24 7:38 UTC (permalink / raw) To: Andrzej Hajda Cc: Liam Girdwood, Mark Brown, Bartlomiej Zolnierkiewicz, Marek Szyprowski, Jaroslav Kysela, Takashi Iwai, moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..., open list Hi > > Field usrcnt is unsigned so it cannot be lesser than zero. > The patch fixes the check, moves it to the beginning of the function > and changes return value to -EIO in case of usercnt error. > > The problem has been detected using proposed semantic patch > scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1]. > > [1]: http://permalink.gmane.org/gmane.linux.kernel/2038576 > > Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> > --- Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] ASoC: rsnd: fix usrcnt decrementing bug 2015-12-24 7:02 ` [PATCH v2] " Andrzej Hajda 2015-12-24 7:38 ` Kuninori Morimoto @ 2015-12-30 17:12 ` Mark Brown 2015-12-30 18:05 ` Applied "ASoC: rsnd: fix usrcnt decrementing bug" to the asoc tree Mark Brown 2 siblings, 0 replies; 8+ messages in thread From: Mark Brown @ 2015-12-30 17:12 UTC (permalink / raw) To: Andrzej Hajda Cc: moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..., Kuninori Morimoto, Liam Girdwood, open list, Bartlomiej Zolnierkiewicz, Takashi Iwai, Marek Szyprowski [-- Attachment #1.1: Type: text/plain, Size: 379 bytes --] On Thu, Dec 24, 2015 at 08:02:39AM +0100, Andrzej Hajda wrote: > Field usrcnt is unsigned so it cannot be lesser than zero. > The patch fixes the check, moves it to the beginning of the function > and changes return value to -EIO in case of usercnt error. Please don't send new patches in reply to old ones, it makes it hard to figure out what the current version of things is. [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 473 bytes --] [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Applied "ASoC: rsnd: fix usrcnt decrementing bug" to the asoc tree 2015-12-24 7:02 ` [PATCH v2] " Andrzej Hajda 2015-12-24 7:38 ` Kuninori Morimoto 2015-12-30 17:12 ` Mark Brown @ 2015-12-30 18:05 ` Mark Brown 2 siblings, 0 replies; 8+ messages in thread From: Mark Brown @ 2015-12-30 18:05 UTC (permalink / raw) To: Andrzej Hajda, Kuninori Morimoto, Mark Brown; +Cc: alsa-devel The patch ASoC: rsnd: fix usrcnt decrementing bug has been applied to the asoc tree at git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git 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 >From e5d9cfc6f5fe56caa44cefbc7ef4531c480d901d Mon Sep 17 00:00:00 2001 From: Andrzej Hajda <a.hajda@samsung.com> Date: Thu, 24 Dec 2015 08:02:39 +0100 Subject: [PATCH] ASoC: rsnd: fix usrcnt decrementing bug Field usrcnt is unsigned so it cannot be lesser than zero. The patch fixes the check, moves it to the beginning of the function and changes return value to -EIO in case of usercnt error. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2038576 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org> --- sound/soc/sh/rcar/ssi.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c index 7db05fdfb656..7ee89da4dd5f 100644 --- a/sound/soc/sh/rcar/ssi.c +++ b/sound/soc/sh/rcar/ssi.c @@ -403,29 +403,30 @@ static int rsnd_ssi_quit(struct rsnd_mod *mod, struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); struct device *dev = rsnd_priv_to_dev(priv); - if (rsnd_ssi_is_parent(mod, io)) - goto rsnd_ssi_quit_end; + if (!ssi->usrcnt) { + dev_err(dev, "%s[%d] usrcnt error\n", + rsnd_mod_name(mod), rsnd_mod_id(mod)); + return -EIO; + } - if (ssi->err > 0) - dev_warn(dev, "%s[%d] under/over flow err = %d\n", - rsnd_mod_name(mod), rsnd_mod_id(mod), ssi->err); + if (!rsnd_ssi_is_parent(mod, io)) { + if (ssi->err > 0) + dev_warn(dev, "%s[%d] under/over flow err = %d\n", + rsnd_mod_name(mod), rsnd_mod_id(mod), + ssi->err); - ssi->cr_own = 0; - ssi->err = 0; + ssi->cr_own = 0; + ssi->err = 0; - rsnd_ssi_irq_disable(mod); + rsnd_ssi_irq_disable(mod); + } -rsnd_ssi_quit_end: rsnd_ssi_master_clk_stop(ssi, io); rsnd_mod_power_off(mod); ssi->usrcnt--; - if (ssi->usrcnt < 0) - dev_err(dev, "%s[%d] usrcnt error\n", - rsnd_mod_name(mod), rsnd_mod_id(mod)); - return 0; } -- 2.6.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-12-30 18:05 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1450867041-729-1-git-send-email-a.hajda@samsung.com>
2015-12-23 10:37 ` [PATCH] ASoC: rsnd: fix usrcnt decrementing bug Andrzej Hajda
2015-12-24 0:04 ` Kuninori Morimoto
2015-12-24 5:56 ` Andrzej Hajda
2015-12-24 6:14 ` Kuninori Morimoto
2015-12-24 7:02 ` [PATCH v2] " Andrzej Hajda
2015-12-24 7:38 ` Kuninori Morimoto
2015-12-30 17:12 ` Mark Brown
2015-12-30 18:05 ` Applied "ASoC: rsnd: fix usrcnt decrementing bug" to the asoc tree Mark Brown
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox