azx_probe() cleanup
PATCH 1/1 azx_probe() cleanup
Replace 5 free-and-return-err blocks with goto-out-free ones. This makes the main logic more outstanding.
Signed-off-by Wu Fengguang <[email protected]>
--- sound/pci/hda/hda_intel.c | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-)
sound/pci/hda/hda_intel.c +13 -20
@@ -2317,40 +2317,30 @@ static int __devinit azx_probe(struct pc } err =azx_create (card, pci, dev, pci_id->driver_data, &chip); -if (err <0 ) { -snd_card_free (card); -return err; - } +if (err <0 ) + goto out_free; card->private_data = chip;/* create codec instances */ err =azx_codec_create (chip, model[dev], probe_mask[dev]); -if (err <0 ) { -snd_card_free (card); -return err; - } +if (err <0 ) + goto out_free;/* create PCM streams */ err =snd_hda_build_pcms (chip->bus); -if (err <0 ) { -snd_card_free (card); -return err; - } +if (err <0 ) + goto out_free;/* create mixer controls */ err =azx_mixer_create (chip); -if (err <0 ) { -snd_card_free (card); -return err; - } +if (err <0 ) + goto out_free;snd_card_set_dev (card, &pci->dev); err =snd_card_register (card); -if (err <0 ) { -snd_card_free (card); -return err; - } +if (err <0 ) + goto out_free;pci_set_drvdata (pci, card); chip->running =1 ;
@@ -2359,6 +2349,9 @@ static int __devinit azx_probe(struct pc dev++;return err; +out_free: +snd_card_free (card); +return err; } static void __devexit azx_remove(struct pci_dev *pci)
Takashi Iwai
AppliedAt Thu, 20 Nov 2008 09:24:52 +0800,
Quoted 5 lines · Wu Fengguang
Replace 5 free-and-return-err blocks with goto-out-free ones. This makes the main logic more outstanding.
Signed-off-by Wu Fengguang <[email protected]>
Thanks, applied.
Takashi