Commit affc9a0d authored by Ben Hutchings's avatar Ben Hutchings Committed by Mauro Carvalho Chehab
Browse files

[media] staging: lirc_serial: Do not assume error codes returned by request_irq()



lirc_serial_probe() must fail if request_irq() returns an error, even if
it isn't EBUSY or EINVAL,

Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 9b98d606
Loading
Loading
Loading
Loading
+9 −12
Original line number Diff line number Diff line
@@ -843,18 +843,15 @@ static int __devinit lirc_serial_probe(struct platform_device *dev)
	result = request_irq(irq, irq_handler,
			     (share_irq ? IRQF_SHARED : 0),
			     LIRC_DRIVER_NAME, (void *)&hardware);

	switch (result) {
	case -EBUSY:
		printk(KERN_ERR LIRC_DRIVER_NAME ": IRQ %d busy\n", irq);
		return -EBUSY;
	case -EINVAL:
	if (result < 0) {
		if (result == -EBUSY)
			printk(KERN_ERR LIRC_DRIVER_NAME ": IRQ %d busy\n",
			       irq);
		else if (result == -EINVAL)
			printk(KERN_ERR LIRC_DRIVER_NAME
			       ": Bad irq number or handler\n");
		return -EINVAL;
	default:
		break;
	};
		return result;
	}

	/* Reserve io region. */
	/*