Re: [patch 08/28] Input: prepare to sysfs integration

From: Dmitry Torokhov
Date: Thu Oct 06 2005 - 23:01:05 EST


On Thursday 06 October 2005 18:05, Vojtech Pavlik wrote:
> On Thu, Oct 06, 2005 at 12:46:59PM -0500, Dmitry Torokhov wrote:
> > On 10/5/05, Greg KH <gregkh@xxxxxxx> wrote:
> > > On Wed, Oct 05, 2005 at 05:17:00PM -0500, Dmitry Torokhov wrote:
> > >
> > > > The reason is that I want to change input_allocate_device to take
> > > > bitmap of supported events. This way I could allocate ABS tables
> > > > dynamically at the same time I allocate input_dev itself and it will
> > > > simplify error handling logic in drivers and it will save I think 1260
> > > > bytes per input_dev structure which is nice. And I don't want to go
> > > > through all subsystems yet again soI want to fold into my input
> > > > dynalloc patch...
> > >
> > > That sounds good.
> > >
> >
> > Well, I tried implementing the proposal above and interface came out
> > pretty awkward to use. My next option is to move abs table into
> > "->private" structure, much like keytable was moved, or (for HID-like
> > devices) allocate it when actually needed and adjust individual
> > drivers. So I guess the patches that you have right now are good after
> > all.
>
> The problem is that the ->abs tables are accessed in the input core and
> in the handlers, too, which means they have to share the lifetime rules
> with the input_dev struct itself.
>
> That means we probably have a problem with the drivers deallocating the
> keytable, while the device still exists, because there is a reference to
> it from say sysfs, and keyboard.c tries to access the keytable because
> of an ioctl.
>

Not necessarily, you just need to make sure that you don't try to access
these fields when input_dev is "half-dead". But we have many issues with
locking/lifetime rules in input core so that's just another item that
needs to be considered.

I wanted to get basic sysfs support in and then work on locking...

--
Dmitry
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/