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.