cleanup and error reporting for sound/core/init.c
PATCH 1/1 cleanup and error reporting for sound/core/init.c
Hi,
please accept this patch, which makes the control flow clear with indentation, adds some comments and improves error reporting.
Regards
Oliver
--
sound/core/init.c +12 -8
@@ -114,22 +114,26 @@if (idx <0 ) {int idx2;for (idx2 =0 ; idx2 <SNDRV_CARDS ; idx2++) +/* idx == -1 == 0xffff means: take any free slot */ if (~snd_cards_lock & idx &1 <<idx2) { idx = idx2;if (idx >= snd_ecards_limit) snd_ecards_limit = idx +1 ;break ; } - }else if (idx < snd_ecards_limit) { -if (snd_cards_lock & (1 << idx)) - err = -ENODEV ;/* invalid */ - }else if (idx <SNDRV_CARDS ) - snd_ecards_limit = idx +1 ;/* increase the limit */ -else - err = -ENODEV ; + }else { +if (idx < snd_ecards_limit) { +if (snd_cards_lock & (1 << idx)) + err = -EBUSY ;/* invalid */ + }else if (idx <SNDRV_CARDS ) + snd_ecards_limit = idx +1 ;/* increase the limit */ +else + err = -ENODEV ; + }if (idx <0 || err <0 ) {mutex_unlock (&snd_card_mutex); -snd_printk (KERN_ERR "cannot find the slot for index %d (range 0-%i)\n" , idx, snd_ecards_limit -1 ); +snd_printk (KERN_ERR "cannot find the slot for index %d (range 0-%i), error: %d\n" , + idx, snd_ecards_limit -1 , err); goto __error; } snd_cards_lock |=1 << idx;/* lock it */
At Fri, 12 Jan 2007 14:49:57 +0100,
sound/core/init.c line 131
Quoted 9 lines · Oliver Neukum
sound/core/init.c +8
-0+ }else { +if (idx < snd_ecards_limit) { +if (snd_cards_lock & (1 << idx)) + err = -EBUSY ;/* invalid */ + }else if (idx <SNDRV_CARDS ) + snd_ecards_limit = idx +1 ;/* increase the limit */ +else + err = -ENODEV ;
The indent looks strange in the above three lines. Also, for me it's not much better than before... :) (all if's are comparisons of idx with other values.)
Takashi
Am Freitag, 12. Januar 2007 18:42 schrieb Takashi Iwai:
Quoted 15 lines
At Fri, 12 Jan 2007 14:49:57 +0100,
Review
Quoted 9 lines · Oliver Neukum
(quoted diff) +8
-0+ } else { + if (idx < snd_ecards_limit) { + if (snd_cards_lock & (1 << idx)) + err = -EBUSY; /* invalid */ + } else if (idx < SNDRV_CARDS) + snd_ecards_limit = idx + 1; /* increase the limit */ + else + err = -ENODEV;The indent looks strange in the above three lines. Also, for me it's not much better than before... :) (all if's are comparisons of idx with other values.)
Hi,
OK, how about this one? The original indentation makes the control flow very hard to follow.
Regards
Oliver
--
core/init.c renamed from core/init.c.alt +14 -8
@@ -114,22 +114,28 @@if (idx <0 ) {int idx2;for (idx2 =0 ; idx2 <SNDRV_CARDS ; idx2++) +/* idx = -1 = 0xffff means: take any free slot */ if (~snd_cards_lock & idx &1 <<idx2) { idx = idx2;if (idx >= snd_ecards_limit) snd_ecards_limit = idx +1 ;break ; } - }else if (idx < snd_ecards_limit) { -if (snd_cards_lock & (1 << idx)) - err = -ENODEV ;/* invalid */ - }else if (idx <SNDRV_CARDS ) - snd_ecards_limit = idx +1 ;/* increase the limit */ -else - err = -ENODEV ; + }else { +if (idx < snd_ecards_limit) { +if (snd_cards_lock & (1 << idx)) + err = -EBUSY ;/* invalid */ + }else { +if (idx <SNDRV_CARDS ) + snd_ecards_limit = idx +1 ;/* increase the limit */ +else + err = -ENODEV ; + } + }if (idx <0 || err <0 ) {mutex_unlock (&snd_card_mutex); -snd_printk (KERN_ERR "cannot find the slot for index %d (range 0-%i)\n" , idx, snd_ecards_limit -1 ); +snd_printk (KERN_ERR "cannot find the slot for index %d (range 0-%i), error: %d\n" , + idx, snd_ecards_limit -1 , err); goto __error; } snd_cards_lock |=1 << idx;/* lock it */
At Sat, 13 Jan 2007 07:37:59 +0100,
Quoted 20 lines · Oliver Neukum
Am Freitag, 12. Januar 2007 18:42 schrieb Takashi Iwai:
Quoted 15 lines
At Fri, 12 Jan 2007 14:49:57 +0100,
core/init.c line 132
Quoted 9 lines · Oliver Neukum
core/init.c renamed from core/init.c.alt +8
-0+ }else { +if (idx < snd_ecards_limit) { +if (snd_cards_lock & (1 << idx)) + err = -EBUSY ;/* invalid */ + }else if (idx <SNDRV_CARDS ) + snd_ecards_limit = idx +1 ;/* increase the limit */ +else + err = -ENODEV ;The indent looks strange in the above three lines. Also, for me it's not much better than before... :) (all if's are comparisons of idx with other values.)
Hi,
Quoted 7 lines
OK, how about this one? The original indentation makes the control flow very hard to follow.
Regards
OliverSigned-off-by Oliver Neukum <[email protected]>
Thanks, now applied to ALSA tree.
Takashi