lkml.org 
[lkml]   [2017]   [Aug]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH v2] ALSA: pcsp: Use common error handling code in snd_card_pcsp_probe()
    From
    Date
    From: Markus Elfring <elfring@users.sourceforge.net>
    Date: Tue, 22 Aug 2017 15:50:53 +0200

    Add a jump target so that a bit of exception handling can be better reused
    at the end of this function.

    This issue was detected by using the Coccinelle software.

    Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
    ---

    v2:
    Do you find this refactoring acceptable instead?

    sound/drivers/pcsp/pcsp.c | 28 ++++++++++++----------------
    1 file changed, 12 insertions(+), 16 deletions(-)

    diff --git a/sound/drivers/pcsp/pcsp.c b/sound/drivers/pcsp/pcsp.c
    index 72e2d0012084..fc83139fcfa2 100644
    --- a/sound/drivers/pcsp/pcsp.c
    +++ b/sound/drivers/pcsp/pcsp.c
    @@ -108,22 +108,17 @@ static int snd_card_pcsp_probe(int devnum, struct device *dev)
    return err;

    err = snd_pcsp_create(card);
    - if (err < 0) {
    - snd_card_free(card);
    - return err;
    - }
    + if (err)
    + goto free_card;
    +
    if (!nopcm) {
    err = snd_pcsp_new_pcm(&pcsp_chip);
    - if (err < 0) {
    - snd_card_free(card);
    - return err;
    - }
    + if (err)
    + goto free_card;
    }
    err = snd_pcsp_new_mixer(&pcsp_chip, nopcm);
    - if (err < 0) {
    - snd_card_free(card);
    - return err;
    - }
    + if (err)
    + goto free_card;

    strcpy(card->driver, "PC-Speaker");
    strcpy(card->shortname, "pcsp");
    @@ -131,12 +126,13 @@ static int snd_card_pcsp_probe(int devnum, struct device *dev)
    pcsp_chip.port);

    err = snd_card_register(card);
    - if (err < 0) {
    - snd_card_free(card);
    - return err;
    - }
    + if (err)
    + goto free_card;

    return 0;
    +free_card:
    + snd_card_free(card);
    + return err;
    }

    static int alsa_card_pcsp_init(struct device *dev)
    --
    2.14.0
    \
     
     \ /
      Last update: 2017-08-22 16:01    [W:3.289 / U:0.856 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site