Commit ec1f43c8 authored by Markus Elfring's avatar Markus Elfring Committed by Takashi Iwai

ALSA: mpu401: Use common error handling code in snd_mpu401_uart_new()

Add a jump target so that a bit of exception handling can be better reused
at the end of this function.
Signed-off-by: default avatarMarkus Elfring <elfring@users.sourceforge.net>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 30b2aeb8
......@@ -545,8 +545,8 @@ int snd_mpu401_uart_new(struct snd_card *card, int device,
return err;
mpu = kzalloc(sizeof(*mpu), GFP_KERNEL);
if (mpu == NULL) {
snd_device_free(card, rmidi);
return -ENOMEM;
err = -ENOMEM;
goto free_device;
}
rmidi->private_data = mpu;
rmidi->private_free = snd_mpu401_uart_free;
......@@ -562,8 +562,8 @@ int snd_mpu401_uart_new(struct snd_card *card, int device,
snd_printk(KERN_ERR "mpu401_uart: "
"unable to grab port 0x%lx size %d\n",
port, res_size);
snd_device_free(card, rmidi);
return -EBUSY;
err = -EBUSY;
goto free_device;
}
}
if (info_flags & MPU401_INFO_MMIO) {
......@@ -583,8 +583,8 @@ int snd_mpu401_uart_new(struct snd_card *card, int device,
"MPU401 UART", (void *) mpu)) {
snd_printk(KERN_ERR "mpu401_uart: "
"unable to grab IRQ %d\n", irq);
snd_device_free(card, rmidi);
return -EBUSY;
err = -EBUSY;
goto free_device;
}
}
if (irq < 0 && !(info_flags & MPU401_INFO_IRQ_HOOK))
......@@ -612,6 +612,9 @@ int snd_mpu401_uart_new(struct snd_card *card, int device,
if (rrawmidi)
*rrawmidi = rmidi;
return 0;
free_device:
snd_device_free(card, rmidi);
return err;
}
EXPORT_SYMBOL(snd_mpu401_uart_new);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment