[PATCH 1/6] Add ancillary bus support

Jason Gunthorpe jgg at nvidia.com
Thu Oct 1 13:46:08 CEST 2020


On Thu, Oct 01, 2020 at 01:01:20PM +0200, Greg KH wrote:
> On Wed, Sep 30, 2020 at 03:50:46PM -0700, Dave Ertman wrote:
> > +int ancillary_device_initialize(struct ancillary_device *ancildev)
> > +{
> > +	struct device *dev = &ancildev->dev;
> > +
> > +	dev->bus = &ancillary_bus_type;
> > +
> > +	if (WARN_ON(!dev->parent) || WARN_ON(!ancildev->name) ||
> > +	    WARN_ON(!(dev->type && dev->type->release) && !dev->release))
> > +		return -EINVAL;
> 
> You have a lot of WARN_ON() calls in this patch.  That blows up anyone
> who runs with panic-on-warn, right?

AFAIK this is the standard pattern to code a "can't happen"
assertion. Linus has been clear not to use BUG_ON, but to try and
recover. The WARN_ON directly points to the faulty driver so it can be
fixed. 

panic-on-warn is a good thing because it causes fuzzers to report a
"can't happen" condition as a failure.

In a real production system if any of these trigger it means the
kernel has detected an internal integrity problem (corrupted memory,
code, ROP attempt, etc). People using panic-on-warn absolutely want
their kernel to stop of it is not functioning properly to protect
data-integrity.

Jason


More information about the Alsa-devel mailing list