Hi Jason, Am Wed, Mar 02, 2022 at 12:42:56PM +0100 schrieb Jason A. Donenfeld: > On Wed, Mar 2, 2022 at 6:35 AM Dominik Brodowski > <linux@xxxxxxxxxxxxxxxxxxxx> wrote: > > > > Am Wed, Mar 02, 2022 at 12:10:36AM +0100 schrieb Jason A. Donenfeld: > > > /* > > > * Delete a previously registered readiness callback function. > > > */ > > > -void del_random_ready_callback(struct random_ready_callback *rdy) > > > +int unregister_random_ready_notifier(struct notifier_block *nb) > > > { > > > unsigned long flags; > > > - struct module *owner = NULL; > > > - > > > - spin_lock_irqsave(&random_ready_list_lock, flags); > > > - if (!list_empty(&rdy->list)) { > > > - list_del_init(&rdy->list); > > > - owner = rdy->owner; > > > - } > > > - spin_unlock_irqrestore(&random_ready_list_lock, flags); > > > + int ret; > > > > > > - module_put(owner); > > > + spin_lock_irqsave(&random_ready_chain_lock, flags); > > > + ret = raw_notifier_chain_unregister(&random_ready_chain, nb); > > > + spin_unlock_irqrestore(&random_ready_chain_lock, flags); > > > + return ret; > > > } > > > -EXPORT_SYMBOL(del_random_ready_callback); > > > > That doesn't seem to be used anywhere, so I'd suggest removing this function > > altogether. > > I thought about this, but it feels weird to have a registration > function without an unregistration function... No other notifier is > unbalanced like that. ... but having unused code compiled in (unless LTO is enabled, of course) seems worse. Maybe comment it out, #ifdef COMPILE_TEST or something like that? Thanks, Dominik