Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -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);