On Thu, Oct 01, 2020 at 09:02:12AM -0300, Jason Gunthorpe wrote: > On Thu, Oct 01, 2020 at 01:54:02PM +0200, Greg KH wrote: > > On Thu, Oct 01, 2020 at 08:46:08AM -0300, Jason Gunthorpe wrote: > > > 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. > > > > Printing an error and returning an error value also does the same exact > > thing, the developer will not have a working system. > > > > Please don't abuse WARN_ON() for things that should just be normal error > > checking logic of api calls. > > This is not normal error checking, it is precondition > assertion. Something has gone badly wrong if it ever triggers. > > If you don't want to use WARN_ON for assertions then when should it be > used? > > pr_err is not the same thing, it doesn't trigger reports from fuzzers. fuzzers shouldn't be messing with device registration functions :) just do a normal pr_err() and all is fine, again, this is like any other in-kernel api that is trying to check for valid values being passed to it. thanks, grteg k-h