The 'uinput' driver doesn't work well in 2.6.15-rc1. It
triggers this complaint:
printk(KERN_WARNING "input: device %s is statically allocated, will not register\n"
"Please convert to input_allocate_device() or contact [email protected]\n",
dev->name ? dev->name : "<Unknown>");
The following patch fixes it for me, but I'm not convinced it is
correct. I would expect it to need a special 'free' routine to match
the special 'alloc' routine, but I couldn't easily find one.
NeilBrown
Signed-off-by: Neil Brown <[email protected]>
### Diffstat output
./drivers/input/misc/uinput.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff ./drivers/input/misc/uinput.c~current~ ./drivers/input/misc/uinput.c
--- ./drivers/input/misc/uinput.c~current~ 2005-11-14 14:34:56.000000000 +1100
+++ ./drivers/input/misc/uinput.c 2005-11-14 15:17:01.000000000 +1100
@@ -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;
On Monday 14 November 2005 00:11, Neil Brown wrote:
>
> The 'uinput' driver doesn't work well in 2.6.15-rc1. It
> triggers this complaint:
> printk(KERN_WARNING "input: device %s is statically allocated, will not register\n"
> "Please convert to input_allocate_device() or contact [email protected]\n",
> dev->name ? dev->name : "<Unknown>");
>
> The following patch fixes it for me, but I'm not convinced it is
> correct. I would expect it to need a special 'free' routine to match
> the special 'alloc' routine, but I couldn't easily find one.
>
Hi,
This should work OK as long as you don't try to reuse the uinput device
because input_unregister_device frees the data structure for you and
uinput does not expect to lose part of its data structure.
I am trying to comer up with a proper fix...
--
Dmitry