Re: [rtc-linux] [PATCH] rtc: recycle id when unloading a rtc driver

From: Alexander Holler
Date: Wed Dec 19 2012 - 03:56:13 EST


Am 19.12.2012 09:27, schrieb Andrew Morton:
On Wed, 19 Dec 2012 08:55:57 +0100 Alexander Holler <holler@xxxxxxxxxxxxx> wrote:


I'm all confused.

Lothar's patch simply reverts Vincent's patch. And that appears to be
the correct thing to so, as the ida_simple_remove() in
rtc_device_release() should be sufficient.

But apparently that doesn't work, because Vincent was seeing the RTC
ID's increment rather than getting reused.

Is it the case that rtc_device_release() is not being called sometimes?
If so, under what circumstances?

Maybe something (sysfs or whatever) still has a reference to it. Vincent
should check that.

But I'm sure the ID will be recycled with that put_device() in
unregister because I've got the same warning as Lothar did when
(porperly) removing an RTC (with kernel 3.7).

If, as appears to be the case, rtc_device_release() is not being called
then we're also leaking memory. So yes please, it would be good if
someone who can reproduce the IDs-dont-decrease problem could dive in
and work out why ->release() isn't begin called.

Unlikely, as I've worked hard to get one of the first drivers for pluggable RTCs into the kernel. ;)
I think every sane kernel has them statically linked in and it's likely a problem of the RTC-driver Vincent experienced that with.

Regards,

Alexander
--
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/