[PATCH v2 1/6] Add ancillary bus support

Parav Pandit parav at nvidia.com
Thu Oct 8 19:35:04 CEST 2020



> From: Ertman, David M <david.m.ertman at intel.com>
> Sent: Thursday, October 8, 2020 10:24 PM

> > From: Parav Pandit <parav at nvidia.com>
> > Sent: Wednesday, October 7, 2020 9:56 PM


> > /**
> >  * ancillar_device_register() - register an ancillary device
> >  * NOTE: __never directly free @adev after calling this function, even
> > if it returned
> >  * an error. Always use ancillary_device_put() to give up the
> > reference initialized by this function.
> >  * This note matches with the core and caller knows exactly what to be
> done.
> >  */
> > ancillary_device_register()
> > {
> > 	device_initialize(&adev->dev);
> > 	if (!dev->parent || !adev->name)
> > 		return -EINVAL;
> > 	if (!dev->release && !(dev->type && dev->type->release)) {
> > 		/* core is already capable and throws the warning when
> release
> > callback is not set.
> > 		 * It is done at drivers/base/core.c:1798.
> > 		 * For NULL release it says, "does not have a release()
> function, it
> > is broken and must be fixed"
> > 		 */
> > 		return -EINVAL;
> > 	}
> That code is in device_release().  Because of this check we will never hit that
> code.
> 
> We either need to leave the error message here, or if we are going to rely on
> the core to find this condition at the end of the process, then we need to
> completely remove this check from the registration flow.
> 
Yes. Since the core is checking it, ancillary bus doesn't need to check here and release callback check can be removed.

> -DaveE


More information about the Alsa-devel mailing list