Re: [PATCH v2 1/4] cxl: add a firmware update mechanism using the sysfs firmware loader

From: Jonathan Cameron
Date: Fri Jun 09 2023 - 07:09:16 EST


On Thu, 8 Jun 2023 20:26:43 +0000
"Verma, Vishal L" <vishal.l.verma@xxxxxxxxx> wrote:

> On Thu, 2023-06-08 at 20:15 +0000, Verma, Vishal L wrote:
> >
> > > > +
> > > > +       fwl = firmware_upload_register(THIS_MODULE, &cxlmd->dev,
> > > > +                                      dev_name(&cxlmd->dev),
> > > > +                                      &cxl_memdev_fw_ops, cxlds);
> > > > +       if (IS_ERR(fwl)) {
> > > > +               dev_err(&cxlmd->dev, "Failed to register firmware loader\n");
> > > > +               return PTR_ERR(fwl);
> > >
> > > It's called from probe only so could use dev_err_probe() for slight
> > > simplification.
> >
> > From what I can tell, this ends up looking like:
> >
> >         fwl = firmware_upload_register(THIS_MODULE, dev, dev_name(dev),
> >                                        &cxl_memdev_fw_ops, cxlds);
> >         rc = dev_err_probe(dev, PTR_ERR(fwl),
> >                            "Failed to register firmware loader\n");
> >         if (rc)
> >                 return rc;
> >
> > Is that what you meant? Happy to make the change if so.
> >
> >
> Actually I can't drop the IS_ERR() check - so unless I'm missing
> something, this doesn't look like much of a simplification:
>
>
> if (IS_ERR(fwl)) {
> rc = dev_err_probe(dev, PTR_ERR(fwl),
> "Failed to register firmware loader\n");
> if (rc)
> return rc;
> }
>

Ah. I replied to previous. It's simpler than that as you know rc != 0 as
it's IS_ERR(fwl)

dev_err_probe() does two helpful things over dev_err()
1. Handles stashing the debug messages for the deferred probe cases (not
relevant here but harmless)
2. Returns the variable you pass in as second argument to allow
return dev_err_probe()


Jonathan