ALSA: sgio2audio: Fine-tuning for two function implementations
Subsystems (2)
cover ALSA: sgio2audio: Fine-tuning for two function implementations
From: Markus Elfring <[email protected]>
Date: Sat, 11 Nov 2017 20:16:32 +0100
Three update suggestions were taken into account
from static source code analysis.
Markus Elfring (3):
Use common error handling code in two functions Improve a size determination in snd_sgio2audio_create() Adjust two null pointer checks in snd_sgio2audio_create()
sound/mips/sgio2audio.c | 53 ++++++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 27 deletions(-)
Signature · 1 line
2.15.0
PATCH 1/3 ALSA: sgio2audio: Use common error handling code in two functions
From: Markus Elfring <[email protected]>
Date: Sat, 11 Nov 2017 19:56:07 +0100
Add jump targets so that a bit of exception handling can be better reused at the end of these functions.
This issue was detected by using the Coccinelle software.
--- sound/mips/sgio2audio.c | 47 +++++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 24 deletions(-)
sound/mips/sgio2audio.c +23 -24
@@ -893,18 +893,19 @@ static int snd_sgio2audio_create(struct snd_card *card,/* initialize the AD1843 codec */ err =ad1843_init (&chip->ad1843); -if (err <0 ) { -snd_sgio2audio_free (chip); -return err; - } +if (err <0 ) + goto free_chip; err =snd_device_new (card,SNDRV_DEV_LOWLEVEL , chip, &ops); -if (err <0 ) { -snd_sgio2audio_free (chip); -return err; - } +if (err <0 ) + goto free_chip; + *rchip = chip;return 0 ; + +free_chip: +snd_sgio2audio_free (chip); +return err; }static int snd_sgio2audio_probe (struct platform_device *pdev)
@@ -918,21 +919,16 @@ static int snd_sgio2audio_probe(struct platform_device *pdev)return err; err =snd_sgio2audio_create (card, &chip); -if (err <0 ) { -snd_card_free (card); -return err; - } +if (err <0 ) + goto free_card; err =snd_sgio2audio_new_pcm (chip); -if (err <0 ) { -snd_card_free (card); -return err; - } +if (err <0 ) + goto free_card; + err =snd_sgio2audio_new_mixer (chip); -if (err <0 ) { -snd_card_free (card); -return err; - } +if (err <0 ) + goto free_card;strcpy (card->driver,"SGI O2 Audio" );strcpy (card->shortname,"SGI O2 Audio" );
@@ -942,12 +938,15 @@ static int snd_sgio2audio_probe(struct platform_device *pdev) MACEISA_AUDIO3_MERR_IRQ); err =snd_card_register (card); -if (err <0 ) { -snd_card_free (card); -return err; - } +if (err <0 ) + goto free_card; +platform_set_drvdata (pdev, card);return 0 ; + +free_card: +snd_card_free (card); +return err; }static int snd_sgio2audio_remove (struct platform_device *pdev)
Signature · 1 line
2.15.0
PATCH 2/3 ALSA: sgio2audio: Improve a size determination in snd_sgio2audio_create()
In reply to SF Markus ElfringFrom: Markus Elfring <[email protected]>
Date: Sat, 11 Nov 2017 20:02:07 +0100
Replace the specification of a data structure by a pointer dereference as the parameter for the operator "sizeof" to make the corresponding size determination a bit safer according to the Linux coding style convention.
This issue was detected by using the Coccinelle software.
--- sound/mips/sgio2audio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
sound/mips/sgio2audio.c +1 -1
@@ -840,7 +840,7 @@ static int snd_sgio2audio_create(struct snd_card *card,if (!(readq (&mace->perif.audio.control) &AUDIO_CONTROL_CODEC_PRESENT ))return -ENOENT ; - chip =kzalloc (sizeof (struct snd_sgio2audio ),GFP_KERNEL ); + chip =kzalloc (sizeof (*chip),GFP_KERNEL );if (chip =NULL )return -ENOMEM ;
Signature · 1 line
2.15.0
Takashi Iwai
AppliedRe: [PATCH 2/3] ALSA: sgio2audio: Improve a size determination in snd_sgio2audio_create()
Quoted 11 lines · SF Markus Elfring
From: Markus Elfring <[email protected]>
Date: Sat, 11 Nov 2017 20:02:07 +0100Replace the specification of a data structure by a pointer dereference as the parameter for the operator "sizeof" to make the corresponding size determination a bit safer according to the Linux coding style convention.
This issue was detected by using the Coccinelle software.
Signed-off-by Markus Elfring <[email protected]>
Applied, thanks.
Takashi
PATCH 3/3 ALSA: sgio2audio: Adjust two null pointer checks in snd_sgio2audio_create()
In reply to SF Markus ElfringFrom: Markus Elfring <[email protected]>
Date: Sat, 11 Nov 2017 20:10:22 +0100
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The script “checkpatch.pl” pointed information out like the following.
Comparison to NULL could be written !…
Thus fix the affected source code places.
--- sound/mips/sgio2audio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
sound/mips/sgio2audio.c +2 -2
@@ -841,14 +841,14 @@ static int snd_sgio2audio_create(struct snd_card *card,return -ENOENT ; chip =kzalloc (sizeof (*chip),GFP_KERNEL ); -if (chip =NULL ) +if (!chip)return -ENOMEM ; chip->card = card; chip->ring_base =dma_alloc_coherent (NULL ,MACEISA_RINGBUFFERS_SIZE , &chip->ring_base_dma,GFP_USER ); -if (chip->ring_base =NULL ) { +if (!chip->ring_base) {printk (KERN_ERR "sgio2audio: could not allocate ring buffers\n" );kfree (chip);
Signature · 1 line
2.15.0