Hi Dominik, 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. Jason