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

From: Dominik Brodowski
Date: Wed Mar 02 2022 - 09:54:13 EST


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