summaryrefslogtreecommitdiffstats
path: root/drivers/input/joydev.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/input/joydev.c')
-rw-r--r--drivers/input/joydev.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c
index 065e67bf56dd..29d677c714d2 100644
--- a/drivers/input/joydev.c
+++ b/drivers/input/joydev.c
@@ -742,8 +742,6 @@ static void joydev_cleanup(struct joydev *joydev)
742 joydev_mark_dead(joydev); 742 joydev_mark_dead(joydev);
743 joydev_hangup(joydev); 743 joydev_hangup(joydev);
744 744
745 cdev_del(&joydev->cdev);
746
747 /* joydev is marked dead so no one else accesses joydev->open */ 745 /* joydev is marked dead so no one else accesses joydev->open */
748 if (joydev->open) 746 if (joydev->open)
749 input_close_device(handle); 747 input_close_device(handle);
@@ -913,12 +911,8 @@ static int joydev_connect(struct input_handler *handler, struct input_dev *dev,
913 goto err_free_joydev; 911 goto err_free_joydev;
914 912
915 cdev_init(&joydev->cdev, &joydev_fops); 913 cdev_init(&joydev->cdev, &joydev_fops);
916 joydev->cdev.kobj.parent = &joydev->dev.kobj;
917 error = cdev_add(&joydev->cdev, joydev->dev.devt, 1);
918 if (error)
919 goto err_unregister_handle;
920 914
921 error = device_add(&joydev->dev); 915 error = cdev_device_add(&joydev->cdev, &joydev->dev);
922 if (error) 916 if (error)
923 goto err_cleanup_joydev; 917 goto err_cleanup_joydev;
924 918
@@ -926,7 +920,6 @@ static int joydev_connect(struct input_handler *handler, struct input_dev *dev,
926 920
927 err_cleanup_joydev: 921 err_cleanup_joydev:
928 joydev_cleanup(joydev); 922 joydev_cleanup(joydev);
929 err_unregister_handle:
930 input_unregister_handle(&joydev->handle); 923 input_unregister_handle(&joydev->handle);
931 err_free_joydev: 924 err_free_joydev:
932 put_device(&joydev->dev); 925 put_device(&joydev->dev);
@@ -939,7 +932,7 @@ static void joydev_disconnect(struct input_handle *handle)
939{ 932{
940 struct joydev *joydev = handle->private; 933 struct joydev *joydev = handle->private;
941 934
942 device_del(&joydev->dev); 935 cdev_device_del(&joydev->cdev, &joydev->dev);
943 joydev_cleanup(joydev); 936 joydev_cleanup(joydev);
944 input_free_minor(MINOR(joydev->dev.devt)); 937 input_free_minor(MINOR(joydev->dev.devt));
945 input_unregister_handle(handle); 938 input_unregister_handle(handle);