From: Bjorn Helgaas <helgaas@kernel.org>
To: "Krzysztof Wilczyński" <kw@linux.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
Logan Gunthorpe <logang@deltatee.com>,
Joe Perches <joe@perches.com>,
Oliver O'Halloran <oohall@gmail.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>,
Tyrel Datwyler <tyreld@linux.ibm.com>,
Russell Currey <ruscur@russell.cc>,
Kurt Schwemmer <kurt.schwemmer@microsemi.com>,
Vidya Sagar <vidyas@nvidia.com>,
Xiongfeng Wang <wangxiongfeng2@huawei.com>,
linux-pci@vger.kernel.org
Subject: Re: [PATCH v6 5/6] PCI/sysfs: Only show value when driver_override is not NULL
Date: Thu, 3 Jun 2021 16:37:03 -0500 [thread overview]
Message-ID: <20210603213703.GA2143496@bjorn-Precision-5520> (raw)
In-Reply-To: <20210603211741.GA2141918@bjorn-Precision-5520>
On Thu, Jun 03, 2021 at 04:17:41PM -0500, Bjorn Helgaas wrote:
> 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.
>
> What's the reason for this change? The above tells me what it *does*,
> but not *why* or whether it affects users.
>
> Is this to avoid trying to print a NULL pointer as %s? Do we print
> "(null)" or something in that case now? I assume sprintf() doesn't
> actually oops. If we change what appears in sysfs, we should mention
> that here. And maybe consider whether there's any chance of breaking
> user code that might know what to do with "(null)" but not with an
> empty string.
>
> There are six other driver_override_show() methods. Five don't check
> the ->driver_override pointer at all; one (spi.c) checks like this:
>
> len = snprintf(buf, PAGE_SIZE, "%s\n", spi->driver_override ? : "");
>
> Do the others need similar fixes? Most of them still use sprintf()
> also.
I can't remember if there's a reason for holding device_lock() around
this. Of the seven: amba, platform, vmbus, pci, s390, and spi hold
it, while fsl-mc does not.
Since we're only reading a single scalar, I don't see the reason for
device_lock(). If we do need it, it would be nice to have a brief
comment explaining why. Obviously not an issue with this patch :)
> > Signed-off-by: Krzysztof Wilczyński <kw@linux.com>
> > Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
> > ---
> > 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
> >
next prev parent reply other threads:[~2021-06-03 21:37 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-03 0:01 [PATCH v6 0/6] PCI/sysfs: Use sysfs_emit() and sysfs_emit_at() in "show" functions Krzysztof Wilczyński
2021-06-03 0:01 ` [PATCH v6 1/6] " Krzysztof Wilczyński
2021-06-03 0:01 ` [PATCH v6 2/6] PCI/sysfs: Use return value from dsm_label_utf16s_to_utf8s() directly Krzysztof Wilczyński
2021-06-03 0:01 ` [PATCH v6 3/6] PCI/sysfs: Fix trailing newline handling of resource_alignment_param Krzysztof Wilczyński
2021-06-03 23:40 ` Bjorn Helgaas
2021-06-04 13:25 ` Krzysztof Wilczyński
2021-06-03 0:01 ` [PATCH v6 4/6] PCI/sysfs: Add missing trailing newline to devspec_show() Krzysztof Wilczyński
2021-06-03 23:00 ` Bjorn Helgaas
2021-06-03 0:01 ` [PATCH v6 5/6] PCI/sysfs: Only show value when driver_override is not NULL Krzysztof Wilczyński
2021-06-03 21:17 ` Bjorn Helgaas
2021-06-03 21:37 ` Bjorn Helgaas [this message]
2021-06-03 22:19 ` Krzysztof Wilczyński
2021-06-03 23:23 ` Bjorn Helgaas
2021-06-04 0:47 ` Alex Williamson
2021-06-04 1:10 ` Krzysztof Wilczyński
2021-06-03 0:01 ` [PATCH v6 6/6] PCI/sysfs: Fix a buffer overrun problem with dsm_label_utf16s_to_utf8s() Krzysztof Wilczyński
2021-06-04 4:07 ` [PATCH v6 0/6] PCI/sysfs: Use sysfs_emit() and sysfs_emit_at() in "show" functions Bjorn Helgaas
2021-06-04 13:38 ` Krzysztof Wilczyński
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210603213703.GA2143496@bjorn-Precision-5520 \
--to=helgaas@kernel.org \
--cc=benh@kernel.crashing.org \
--cc=bhelgaas@google.com \
--cc=joe@perches.com \
--cc=kurt.schwemmer@microsemi.com \
--cc=kw@linux.com \
--cc=linux-pci@vger.kernel.org \
--cc=logang@deltatee.com \
--cc=mpe@ellerman.id.au \
--cc=oohall@gmail.com \
--cc=paulus@samba.org \
--cc=ruscur@russell.cc \
--cc=tyreld@linux.ibm.com \
--cc=vidyas@nvidia.com \
--cc=wangxiongfeng2@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).