mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-29 07:04:10 +08:00
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: Markus Elfring <elfring@users.sourceforge.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
30b2aeb8a8
commit
ec1f43c83b
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user