Input: mice - handle errors when registering input devices
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
@@ -66,7 +66,10 @@ static irqreturn_t rpcmouse_irq(int irq, void *dev_id)
|
||||
|
||||
static int __init rpcmouse_init(void)
|
||||
{
|
||||
if (!(rpcmouse_dev = input_allocate_device()))
|
||||
int err;
|
||||
|
||||
rpcmouse_dev = input_allocate_device();
|
||||
if (!rpcmouse_dev)
|
||||
return -ENOMEM;
|
||||
|
||||
rpcmouse_dev->name = "Acorn RiscPC Mouse";
|
||||
@@ -85,13 +88,22 @@ static int __init rpcmouse_init(void)
|
||||
|
||||
if (request_irq(IRQ_VSYNCPULSE, rpcmouse_irq, IRQF_SHARED, "rpcmouse", rpcmouse_dev)) {
|
||||
printk(KERN_ERR "rpcmouse: unable to allocate VSYNC interrupt\n");
|
||||
input_free_device(rpcmouse_dev);
|
||||
return -EBUSY;
|
||||
err = -EBUSY;
|
||||
goto err_free_dev;
|
||||
}
|
||||
|
||||
input_register_device(rpcmouse_dev);
|
||||
err = input_register_device(rpcmouse_dev);
|
||||
if (err)
|
||||
goto err_free_irq;
|
||||
|
||||
return 0;
|
||||
|
||||
err_free_irq:
|
||||
free_irq(IRQ_VSYNCPULSE, rpcmouse_dev);
|
||||
err_free_dev:
|
||||
input_free_device(rpcmouse_dev);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
static void __exit rpcmouse_exit(void)
|
||||
|
Reference in New Issue
Block a user