On Fri, Sep 22 2023 at 09:12, Biju Das wrote: > +static void alarmtimer_rtc_remove_device(struct device *dev) > +{ > + struct rtc_device *rtc = to_rtc_device(dev); > + > + if (rtcdev == rtc) { > + module_put(rtc->owner); > + if (device_may_wakeup(rtc->dev.parent)) > + device_init_wakeup(&alarmtimer_pdev->dev, false); > + > + platform_device_unregister(alarmtimer_pdev); > + put_device(dev); > + alarmtimer_pdev = NULL; > + rtcdev = NULL; > + } That's broken versus alarmtimer_get_rtcdev() and any user of it. Thanks, tglx