Re: [PATCH 1/3] random: replace custom notifier chain with standard one

From: Jason A. Donenfeld
Date: Wed Mar 02 2022 - 06:43:20 EST


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