lkml.org 
[lkml]   [2015]   [Jan]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 12/13] ALSA: msnd: One function call less in snd_msnd_attach() after error detection
    From: Markus Elfring <elfring@users.sourceforge.net>
    Date: Sun, 4 Jan 2015 11:00:11 +0100

    The iounmap() function was called in one case by the snd_msnd_attach() function
    even if a previous call of the ioremap_nocache() function failed.

    This implementation detail could be improved by the introduction of another
    jump label.

    Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
    ---
    sound/isa/msnd/msnd_pinnacle.c | 15 ++++++++-------
    1 file changed, 8 insertions(+), 7 deletions(-)

    diff --git a/sound/isa/msnd/msnd_pinnacle.c b/sound/isa/msnd/msnd_pinnacle.c
    index 4c07266..e2e940d 100644
    --- a/sound/isa/msnd/msnd_pinnacle.c
    +++ b/sound/isa/msnd/msnd_pinnacle.c
    @@ -575,23 +575,23 @@ static int snd_msnd_attach(struct snd_card *card)

    err = snd_msnd_dsp_full_reset(card);
    if (err < 0)
    - goto err_release_region;
    + goto io_unmap;

    /* Register device */
    err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops);
    if (err < 0)
    - goto err_release_region;
    + goto io_unmap;

    err = snd_msnd_pcm(card, 0);
    if (err < 0) {
    printk(KERN_ERR LOGNAME ": error creating new PCM device\n");
    - goto err_release_region;
    + goto io_unmap;
    }

    err = snd_msndmix_new(card);
    if (err < 0) {
    printk(KERN_ERR LOGNAME ": error creating new Mixer device\n");
    - goto err_release_region;
    + goto io_unmap;
    }


    @@ -607,7 +607,7 @@ static int snd_msnd_attach(struct snd_card *card)
    if (err < 0) {
    printk(KERN_ERR LOGNAME
    ": error creating new Midi device\n");
    - goto err_release_region;
    + goto io_unmap;
    }
    mpu = chip->rmidi->private_data;

    @@ -622,12 +622,13 @@ static int snd_msnd_attach(struct snd_card *card)

    err = snd_card_register(card);
    if (err < 0)
    - goto err_release_region;
    + goto io_unmap;

    return 0;

    -err_release_region:
    +io_unmap:
    iounmap(chip->mappedbase);
    +err_release_region:
    release_mem_region(chip->base, BUFFSIZE);
    release_region(chip->io, DSP_NUMIO);
    free_irq(chip->irq, chip);
    --
    2.2.1


    \
     
     \ /
      Last update: 2015-01-04 15:01    [W:4.020 / U:0.192 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site