Hi Thomas Gleixner, > Subject: RE: [PATCH v2] alarmtimer: Fix rebind failure > > On Mon, Oct 09 2023 at 17:02, Biju Das wrote: > >> On Mon, Oct 09 2023 at 15:30, Biju Das wrote: > >> > You mean we should update[1] (charger-manager driver)as it is the > >> > one using alarmtimer_get_rtcdev()?? > >> > >> # git grep -c alarmtimer_get_rtcdev > >> drivers/power/supply/charger-manager.c:1 > >> include/linux/alarmtimer.h:2 > >> kernel/time/alarmtimer.c:10 > > > > kernel/time/alarmtimer.c has alarmtimer_get_rtcdev()check everywhere, > > that is missing in charger-manager.c. I will add the same, is it ok? > > The code does in the init function: > > if (alarmtimer_get_rtcdev()) { > .... > } > > IOW, charger-manager.c expects that alarm is working when > alarmtimer_get_rtcdev() returns non NULL at init. So ripping the RTC device > out under it is going to result in a disfunctional driver. I'm not > convinced that you can fix this by sprinkling a ton of checks around the > code. > > But that's not the worst of it. The alarmtimer infrastructure is generally > not designed for device/module removal. Why? > > The posix timer interface is fundamentally expecting that an armed alarm > timer is actually functional. The fact that the class interface does not > have a remove_dev callback is not an oversight and holding a reference on > the module and a reference on the device is intended to ensure that the > device cannot vanish. Thanks for the explanation, I am not aware we should not remove RTC device. > > The changelog lacks any form of explanation why this is required and how > removal of the registered RTC device is actually possible. Neither does it > provide any analysis why this cannot result in malfunction. RTC driver is defined as a module, so I was testing remove/unbind followed by install/bind on RTC driver to check any resource leakage and found that device is not working properly. As you mentioned above, we should not remove RTC driver. So I would like to drop this patch. Is there any place we can document this to avoid another person doing same mistake? Cheers, Biju