vserver 1.9.5.x5
[linux-2.6.git] / drivers / input / evdev.c
index 3737e5a..39c497e 100644 (file)
@@ -91,8 +91,6 @@ static int evdev_flush(struct file * file)
 
 static void evdev_free(struct evdev *evdev)
 {
-       devfs_remove("input/event%d", evdev->minor);
-       class_simple_device_remove(MKDEV(INPUT_MAJOR, EVDEV_MINOR_BASE + evdev->minor));
        evdev_table[evdev->minor] = NULL;
        kfree(evdev);
 }
@@ -441,6 +439,8 @@ static void evdev_disconnect(struct input_handle *handle)
 {
        struct evdev *evdev = handle->private;
 
+       class_simple_device_remove(MKDEV(INPUT_MAJOR, EVDEV_MINOR_BASE + evdev->minor));
+       devfs_remove("input/event%d", evdev->minor);
        evdev->exist = 0;
 
        if (evdev->open) {