2017-07-31 07:18:33

by Janani Sankara Babu

[permalink] [raw]
Subject: [PATCH] Staging: vc04_services: Fix WARN_ON instead of BUG_ON

This patch is to replace the use of BUG_ON macro with WARN_ON
inorder to prevent the crashing of the kernel.

Signed-off-by: Janani Sankara Babu <[email protected]>
---
drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c
index f484bb0..30bc246 100644
--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c
@@ -91,7 +91,7 @@ static int snd_bcm2835_ctl_get(struct snd_kcontrol *kcontrol,
if (mutex_lock_interruptible(&chip->audio_mutex))
return -EINTR;

- BUG_ON(!chip && !(chip->avail_substreams & AVAIL_SUBSTREAMS_MASK));
+ WARN_ON(!chip && !(chip->avail_substreams & AVAIL_SUBSTREAMS_MASK));

if (kcontrol->private_value == PCM_PLAYBACK_VOLUME)
ucontrol->value.integer.value[0] = chip2alsa(chip->volume);
--
1.9.1


2017-07-31 08:17:03

by Stefan Wahren

[permalink] [raw]
Subject: Re: [PATCH] Staging: vc04_services: Fix WARN_ON instead of BUG_ON

Am 31.07.2017 um 09:14 schrieb janani-sankarababu:
> This patch is to replace the use of BUG_ON macro with WARN_ON
> inorder to prevent the crashing of the kernel.

Unfortunately it isn't always that simple. checkpatch isn't smart. It's
preferred to handle error cases instead of flooding the kernel log.

>
> Signed-off-by: Janani Sankara Babu <[email protected]>
> ---
> drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c
> index f484bb0..30bc246 100644
> --- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c
> +++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c
> @@ -91,7 +91,7 @@ static int snd_bcm2835_ctl_get(struct snd_kcontrol *kcontrol,
> if (mutex_lock_interruptible(&chip->audio_mutex))
> return -EINTR;
>
> - BUG_ON(!chip && !(chip->avail_substreams & AVAIL_SUBSTREAMS_MASK));
> + WARN_ON(!chip && !(chip->avail_substreams & AVAIL_SUBSTREAMS_MASK));

The complete logic seems strange to me and the statement before didn't
even check for chip.

Regards
Stefan

>
> if (kcontrol->private_value == PCM_PLAYBACK_VOLUME)
> ucontrol->value.integer.value[0] = chip2alsa(chip->volume);

2017-07-31 08:46:24

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH] Staging: vc04_services: Fix WARN_ON instead of BUG_ON

On Mon, Jul 31, 2017 at 12:44:03PM +0530, janani-sankarababu wrote:
> This patch is to replace the use of BUG_ON macro with WARN_ON
> inorder to prevent the crashing of the kernel.
>
> Signed-off-by: Janani Sankara Babu <[email protected]>
> ---
> drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c
> index f484bb0..30bc246 100644
> --- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c
> +++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c
> @@ -91,7 +91,7 @@ static int snd_bcm2835_ctl_get(struct snd_kcontrol *kcontrol,
> if (mutex_lock_interruptible(&chip->audio_mutex))
^^^^^^
We dereference chip here.

> return -EINTR;
>
> - BUG_ON(!chip && !(chip->avail_substreams & AVAIL_SUBSTREAMS_MASK));
> + WARN_ON(!chip && !(chip->avail_substreams & AVAIL_SUBSTREAMS_MASK));
^^^^^
Too late.

regards,
dan carpenter