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