Commit 4263cf0f authored by Dmitry Torokhov's avatar Dmitry Torokhov

Input: make input_register_handler() return error codes

Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent 68c2a160
...@@ -1362,6 +1362,7 @@ static struct input_handler kbd_handler = { ...@@ -1362,6 +1362,7 @@ static struct input_handler kbd_handler = {
int __init kbd_init(void) int __init kbd_init(void)
{ {
int i; int i;
int error;
for (i = 0; i < MAX_NR_CONSOLES; i++) { for (i = 0; i < MAX_NR_CONSOLES; i++) {
kbd_table[i].ledflagstate = KBD_DEFLEDS; kbd_table[i].ledflagstate = KBD_DEFLEDS;
...@@ -1373,7 +1374,9 @@ int __init kbd_init(void) ...@@ -1373,7 +1374,9 @@ int __init kbd_init(void)
kbd_table[i].kbdmode = VC_XLATE; kbd_table[i].kbdmode = VC_XLATE;
} }
input_register_handler(&kbd_handler); error = input_register_handler(&kbd_handler);
if (error)
return error;
tasklet_enable(&keyboard_tasklet); tasklet_enable(&keyboard_tasklet);
tasklet_schedule(&keyboard_tasklet); tasklet_schedule(&keyboard_tasklet);
......
...@@ -91,8 +91,7 @@ static struct input_handler evbug_handler = { ...@@ -91,8 +91,7 @@ static struct input_handler evbug_handler = {
static int __init evbug_init(void) static int __init evbug_init(void)
{ {
input_register_handler(&evbug_handler); return input_register_handler(&evbug_handler);
return 0;
} }
static void __exit evbug_exit(void) static void __exit evbug_exit(void)
......
...@@ -695,8 +695,7 @@ static struct input_handler evdev_handler = { ...@@ -695,8 +695,7 @@ static struct input_handler evdev_handler = {
static int __init evdev_init(void) static int __init evdev_init(void)
{ {
input_register_handler(&evdev_handler); return input_register_handler(&evdev_handler);
return 0;
} }
static void __exit evdev_exit(void) static void __exit evdev_exit(void)
......
...@@ -1037,19 +1037,20 @@ void input_unregister_device(struct input_dev *dev) ...@@ -1037,19 +1037,20 @@ void input_unregister_device(struct input_dev *dev)
} }
EXPORT_SYMBOL(input_unregister_device); EXPORT_SYMBOL(input_unregister_device);
void input_register_handler(struct input_handler *handler) int input_register_handler(struct input_handler *handler)
{ {
struct input_dev *dev; struct input_dev *dev;
struct input_handle *handle; struct input_handle *handle;
const struct input_device_id *id; const struct input_device_id *id;
if (!handler)
return;
INIT_LIST_HEAD(&handler->h_list); INIT_LIST_HEAD(&handler->h_list);
if (handler->fops != NULL) if (handler->fops != NULL) {
if (input_table[handler->minor >> 5])
return -EBUSY;
input_table[handler->minor >> 5] = handler; input_table[handler->minor >> 5] = handler;
}
list_add_tail(&handler->node, &input_handler_list); list_add_tail(&handler->node, &input_handler_list);
...@@ -1063,6 +1064,7 @@ void input_register_handler(struct input_handler *handler) ...@@ -1063,6 +1064,7 @@ void input_register_handler(struct input_handler *handler)
} }
input_wakeup_procfs_readers(); input_wakeup_procfs_readers();
return 0;
} }
EXPORT_SYMBOL(input_register_handler); EXPORT_SYMBOL(input_register_handler);
......
...@@ -606,8 +606,7 @@ static struct input_handler joydev_handler = { ...@@ -606,8 +606,7 @@ static struct input_handler joydev_handler = {
static int __init joydev_init(void) static int __init joydev_init(void)
{ {
input_register_handler(&joydev_handler); return input_register_handler(&joydev_handler);
return 0;
} }
static void __exit joydev_exit(void) static void __exit joydev_exit(void)
......
...@@ -738,7 +738,12 @@ static int psaux_registered; ...@@ -738,7 +738,12 @@ static int psaux_registered;
static int __init mousedev_init(void) static int __init mousedev_init(void)
{ {
input_register_handler(&mousedev_handler); struct class_device *cdev;
int error;
error = input_register_handler(&mousedev_handler);
if (error)
return error;
memset(&mousedev_mix, 0, sizeof(struct mousedev)); memset(&mousedev_mix, 0, sizeof(struct mousedev));
INIT_LIST_HEAD(&mousedev_mix.list); INIT_LIST_HEAD(&mousedev_mix.list);
...@@ -747,12 +752,20 @@ static int __init mousedev_init(void) ...@@ -747,12 +752,20 @@ static int __init mousedev_init(void)
mousedev_mix.exist = 1; mousedev_mix.exist = 1;
mousedev_mix.minor = MOUSEDEV_MIX; mousedev_mix.minor = MOUSEDEV_MIX;
class_device_create(&input_class, NULL, cdev = class_device_create(&input_class, NULL,
MKDEV(INPUT_MAJOR, MOUSEDEV_MINOR_BASE + MOUSEDEV_MIX), NULL, "mice"); MKDEV(INPUT_MAJOR, MOUSEDEV_MINOR_BASE + MOUSEDEV_MIX), NULL, "mice");
if (IS_ERR(cdev)) {
input_unregister_handler(&mousedev_handler);
return PTR_ERR(cdev);
}
#ifdef CONFIG_INPUT_MOUSEDEV_PSAUX #ifdef CONFIG_INPUT_MOUSEDEV_PSAUX
if (!(psaux_registered = !misc_register(&psaux_mouse))) error = misc_register(&psaux_mouse);
printk(KERN_WARNING "mice: could not misc_register the device\n"); if (error)
printk(KERN_WARNING "mice: could not register psaux device, "
"error: %d\n", error);
else
psaux_registered = 1;
#endif #endif
printk(KERN_INFO "mice: PS/2 mouse device common for all mice\n"); printk(KERN_INFO "mice: PS/2 mouse device common for all mice\n");
......
...@@ -150,8 +150,7 @@ static struct input_handler power_handler = { ...@@ -150,8 +150,7 @@ static struct input_handler power_handler = {
static int __init power_init(void) static int __init power_init(void)
{ {
input_register_handler(&power_handler); return input_register_handler(&power_handler);
return 0;
} }
static void __exit power_exit(void) static void __exit power_exit(void)
......
...@@ -479,9 +479,7 @@ static struct input_handler tsdev_handler = { ...@@ -479,9 +479,7 @@ static struct input_handler tsdev_handler = {
static int __init tsdev_init(void) static int __init tsdev_init(void)
{ {
input_register_handler(&tsdev_handler); return input_register_handler(&tsdev_handler);
printk(KERN_INFO "ts: Compaq touchscreen protocol output\n");
return 0;
} }
static void __exit tsdev_exit(void) static void __exit tsdev_exit(void)
......
...@@ -1106,7 +1106,7 @@ static inline void input_put_device(struct input_dev *dev) ...@@ -1106,7 +1106,7 @@ static inline void input_put_device(struct input_dev *dev)
int input_register_device(struct input_dev *); int input_register_device(struct input_dev *);
void input_unregister_device(struct input_dev *); void input_unregister_device(struct input_dev *);
void input_register_handler(struct input_handler *); int input_register_handler(struct input_handler *);
void input_unregister_handler(struct input_handler *); void input_unregister_handler(struct input_handler *);
int input_grab_device(struct input_handle *); int input_grab_device(struct input_handle *);
......
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