From: Bjorn Helgaas <helgaas@kernel.org>
To: Yicong Yang <yangyicong@hisilicon.com>
Cc: Bolarinwa Olayemi Saheed <refactormyself@gmail.com>,
bjorn@helgaas.com, skhan@linuxfoundation.org,
linux-pci@vger.kernel.org
Subject: Re: [PATCH RFC] pci: Make return value of pcie_capability_read*() consistent
Date: Thu, 23 Apr 2020 17:38:19 -0500 [thread overview]
Message-ID: <20200423223819.GA248903@google.com> (raw)
In-Reply-To: <80f70efc-0ff6-a53f-9a86-d52e053e6a69@hisilicon.com>
On Thu, Apr 23, 2020 at 07:55:17PM +0800, Yicong Yang wrote:
> On 2020/4/19 14:51, Bolarinwa Olayemi Saheed wrote:
> > diff --git a/drivers/pci/access.c b/drivers/pci/access.c
> > index 79c4a2ef269a..451f2b8b2b3c 100644
> > --- a/drivers/pci/access.c
> > +++ b/drivers/pci/access.c
> > @@ -409,7 +409,7 @@ int pcie_capability_read_word(struct pci_dev *dev, int pos, u16 *val)
>
> Maybe provide some comments for the function, to notify the outside
> users to do the error code conversion.
A short function comment about the set of possible return values
wouldn't hurt. We don't have those for pci_read_config_word() and
friends, and there are several pcie_capability_*() functions. I don't
think it's worth repeating the comment for every function, so maybe we
could just extend the existing comment at pcie_capability_read_word().
> BTW, pci_{read, write}_config_*() may also have the issues that
> export the private err code outside. You may want to solve these in
> a series along with this patch.
If you see a specific issue, please point it out.
I looked at pci_read_config_word(), and it can return
PCIBIOS_DEVICE_NOT_FOUND, PCIBIOS_BAD_REGISTER_NUMBER, or the return
value from bus->ops->read().
I looked at all the users of PCIBIOS_*. There's really no interesting
use of any of them except by pcibios_err_to_errno() and
xen_pcibios_err_to_errno(), so I'm not sure it's even worth keeping
them.
But I think it's probably more work to excise all of them than it is
to simply make pci_read_config_word() and pcie_capability_read_word()
return the same set of error values. So I think we should do this
first.
> > *val = 0;
> > if (pos & 1)
> > - return -EINVAL;
> > + return PCIBIOS_BAD_REGISTER_NUMBER;
> >
> > if (pcie_capability_reg_implemented(dev, pos)) {
> > ret = pci_read_config_word(dev, pci_pcie_cap(dev) + pos, val);
> > @@ -444,7 +444,7 @@ int pcie_capability_read_dword(struct pci_dev *dev, int pos, u32 *val)
> >
> > *val = 0;
> > if (pos & 3)
> > - return -EINVAL;
> > + return PCIBIOS_BAD_REGISTER_NUMBER;
> >
> > if (pcie_capability_reg_implemented(dev, pos)) {
> > ret = pci_read_config_dword(dev, pci_pcie_cap(dev) + pos, val);
>
next prev parent reply other threads:[~2020-04-23 22:38 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-19 6:51 [PATCH RFC] pci: Make return value of pcie_capability_read*() consistent Bolarinwa Olayemi Saheed
2020-04-23 11:55 ` Yicong Yang
2020-04-23 22:38 ` Bjorn Helgaas [this message]
2020-04-24 6:02 ` Saheed Bolarinwa
2020-04-24 9:11 ` Yicong Yang
2020-04-24 15:12 ` Bjorn Helgaas
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=20200423223819.GA248903@google.com \
--to=helgaas@kernel.org \
--cc=bjorn@helgaas.com \
--cc=linux-pci@vger.kernel.org \
--cc=refactormyself@gmail.com \
--cc=skhan@linuxfoundation.org \
--cc=yangyicong@hisilicon.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.