> > Didn't work in 2.6.14 - uinput device open was broken. The following patch > > fixes it: > > Can you send that patch to greg for the stable series ?
Yep. There's still something strange with evdev though - it shows a usage count of 14 regardless of how many devices I keep open. Closed devices don't seem to get reused. Anyway, this works for me: diff --git a/drivers/input/misc/uinput.c b/drivers/input/misc/uinput.c index 948c1cc..c696ae3 100644 --- a/drivers/input/misc/uinput.c +++ b/drivers/input/misc/uinput.c @@ -199,10 +199,9 @@ static int uinput_open(struct inode *ino spin_lock_init(&newdev->requests_lock); init_waitqueue_head(&newdev->requests_waitq); - newinput = kmalloc(sizeof(struct input_dev), GFP_KERNEL); + newinput = input_allocate_device(); if (!newinput) goto cleanup; - memset(newinput, 0, sizeof(struct input_dev)); newdev->dev = newinput; @@ -373,7 +372,6 @@ static int uinput_burn_device(struct uin kfree(udev->dev->name); kfree(udev->dev->phys); - kfree(udev->dev); kfree(udev); return 0; Signed-off-by: Michael Schmitz <[EMAIL PROTECTED]> Can you apply this to 2.6.14, Greg? Michael -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]