On Thu, Jul 17, 2003 at 06:37:15PM +0200, Gerd Knorr wrote:
> Version (1) can be done without breaking the build, with a hack along
> the lines "if (no release callback) printk(KERN_WARN please fix your
> driver)", so the drivers can be fixed step-by-step afterwards.
That sounds like a nice way to start.
> Fixing the drivers might be non-trivial through. Some drivers are
> hot-pluggable (usb cams), some drivers register more than one v4l device
> (bttv wants up to three). Those drivers can't just call kfree() in the
> ->release callback because there might be other references, some open
> file handle for a unplugged usb cam, another not-yet unregistered
> v4l device, whatever. Probably they must implement some reference
> counting scheme to get that right. The very simple ones (in
> drivers/media/radio for example) likely just need the kfree() moved
> from the ->remove function into the new ->release() callback.
I don't think it will be that bad for them. Just have them change the
v4l device from being a structure included in their structure, into a
pointer, and then create it before registering, and free it in the
That being said, I haven't actually looked at the code to verify that
this is all that is needed :)
> Version (2) needs every v4l driver touched to make it compile again.
> Not sure how hard it is to fixup them. I'd guess it is pretty straigt
> forward to do the conversion, it's just alot of work. I also could do
> a number of other cleanups along the way. Maybe I trap into some hidden
> pitfalls through, havn't looked at all the drivers in detail yet.
Breaking the build is a very good thing to do at times, to ensure that
stuff gets fixed properly. Users might go for a while without realizing
that there really is a problem in their driver.
But in the end, it's up to you...
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to firstname.lastname@example.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Wed Jul 23 2003 - 22:00:31 EST