On Thu, 3 Jun 2021 18:23:34 -0500 Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote: > [+cc Alex, FYI] > > On Thu, Jun 03, 2021 at 12:01:11AM +0000, Krzysztof Wilczyński wrote: > > Only expose the value of the "driver_override" variable through the > > corresponding sysfs object when a value is actually set. > > This changes the attribute contents from "(null)" to an empty > (zero-length) file when no driver override has been set. > > There are a few other driver_override_show() functions. Most don't > check the pointer so they'll show "(null)". One (spi.c) checks and > shows an empty string ("", file containing a single NULL character) > instead of an empty (zero-length) file. Yeah, "(null)" was the expected output in this case. It looks like this might break driverctl. Thanks, Alex > > Signed-off-by: Krzysztof Wilczyński <kw@xxxxxxxxx> > > Reviewed-by: Logan Gunthorpe <logang@xxxxxxxxxxxx> > > --- > > drivers/pci/pci-sysfs.c | 5 +++-- > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c > > index 5d63df7c1820..4e9f582ca10f 100644 > > --- a/drivers/pci/pci-sysfs.c > > +++ b/drivers/pci/pci-sysfs.c > > @@ -580,10 +580,11 @@ static ssize_t driver_override_show(struct device *dev, > > struct device_attribute *attr, char *buf) > > { > > struct pci_dev *pdev = to_pci_dev(dev); > > - ssize_t len; > > + ssize_t len = 0; > > > > device_lock(dev); > > - len = sysfs_emit(buf, "%s\n", pdev->driver_override); > > + if (pdev->driver_override) > > + len = sysfs_emit(buf, "%s\n", pdev->driver_override); > > device_unlock(dev); > > return len; > > } > > -- > > 2.31.1 > > >