Re: [PATCH v4 01/13] notifier: add device-managed registration APIs
Andy Shevchenko <[email protected]> Mon, 10 Aug 2026 12:11:30 +0300
| Newsgroups | org.kernel.vger.linux-input,org.kernel.vger.linux-acpi,org.kernel.vger.linux-gpio,org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pwm,org.kernel.vger.platform-driver-x86 |
|---|---|
| Organization | Intel Finland Oy - BIC 0357606-4 - c/o Alberga Business Park, 6 krs, Bertel Jungin Aukio 5, 02600 Espoo |
| Message-ID | <[email protected]> |
On Mon, Aug 10, 2026 at 06:37:25AM +0200, Uwe Kleine-König wrote:
> On Sun, Jul 26, 2026 at 10:17:27AM +0000, Eliav Farber wrote:
...
> > +{
> > + struct atomic_notifier_chain_devres *dr;
> > + int ret;
> > +
> > + dr = devres_alloc(devm_atomic_notifier_chain_unregister,
> > + sizeof(*dr), GFP_KERNEL);
> > + if (!dr)
> > + return -ENOMEM;
> > +
> > + ret = atomic_notifier_chain_register(nh, n);
> > + if (ret) {
> > + devres_free(dr);
> > + return ret;
> > + }
> > +
> > + dr->nh = nh;
> > + dr->nb = n;
> > + devres_add(dev, dr);
> > +
> > + return 0;
> > +}
> > +EXPORT_SYMBOL_GPL(devm_atomic_notifier_chain_register);
>
> IMHO devm_atomic_notifier_chain_register() should look as follows:
>
> ret = atomic_notifier_chain_register(nh, n);
> if (ret)
> return ret;
>
> return devm_add_action_or_reset(dev, devm_atomic_notifier_chain_unregister, dr)
>
> which is much easier and includes less details from the inner workings
> of devm. Same for the blocking variant.
Won't work. We need more than one parameter and hence the whole devres_alloc().
Please, look closer to the code.
--
With Best Regards,
Andy Shevchenko