From: Wei Liu <wei.liu@kernel.org>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: "Wei Liu" <wei.liu@kernel.org>,
"Linux on Hyper-V List" <linux-hyperv@vger.kernel.org>,
stable@kernel.org, "K. Y. Srinivasan" <kys@microsoft.com>,
"Haiyang Zhang" <haiyangz@microsoft.com>,
"Dexuan Cui" <decui@microsoft.com>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Krzysztof Wilczyński" <kw@linux.com>,
"Rob Herring" <robh@kernel.org>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Jake Oshins" <jakeo@microsoft.com>,
"open list:PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS"
<linux-pci@vger.kernel.org>,
"open list" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2] PCI: hv: fix reading of PCI_INTERRUPT_PIN
Date: Mon, 1 Jul 2024 06:16:18 +0000 [thread overview]
Message-ID: <ZoJJsolJJcLUYiVG@liuwe-devbox-debian-v2> (raw)
In-Reply-To: <20240626151039.GA1466747@bhelgaas>
On Wed, Jun 26, 2024 at 10:10:39AM -0500, Bjorn Helgaas wrote:
> 1) Capitalize subject to match history
What do you mean here? I got the "PCI: hv: ..." format from recent
commits. "PCI" is capitalized. You want to to capitalize "fix"?
> 2) Say something more specific than "fix reading ..."
>
> Apparently this returns garbage in some case where you want to return
> zero?
Yes. *val is not changed in the old code, so garbage is returned.
Here is the updated commit message. I can resend once you confirm you're
happy with it.
PCI: hv: Fix reading of PCI_INTERRUPT_PIN
The intent of the code snippet is to always return 0 for both
PCI_INTERRUPT_LINE and PCI_INTERRUPT_PIN.
The check misses PCI_INTERRUPT_PIN. This patch fixes that.
This is discovered by this call in VFIO:
pci_read_config_byte(vdev->pdev, PCI_INTERRUPT_PIN, &pin);
The old code does not set *val to 0 because it misses the check for
PCI_INTERRUPT_PIN. Garbage is returned in this case.
Fixes: 4daace0d8ce8 ("PCI: hv: Add paravirtual PCI front-end for Microsoft Hyper-V VMs")
Cc: stable@kernel.org
Signed-off-by: Wei Liu <wei.liu@kernel.org>
Thanks,
Wei.
>
> On Fri, Jun 21, 2024 at 09:00:18PM +0000, Wei Liu wrote:
> > The intent of the code snippet is to always return 0 for both
> > PCI_INTERRUPT_LINE and PCI_INTERRUPT_PIN.
> >
> > The check misses PCI_INTERRUPT_PIN. This patch fixes that.
> >
> > This is discovered by this call in VFIO:
> >
> > pci_read_config_byte(vdev->pdev, PCI_INTERRUPT_PIN, &pin);
> >
> > The old code does not set *val to 0 because it misses the check for
> > PCI_INTERRUPT_PIN.
> >
> > Fixes: 4daace0d8ce8 ("PCI: hv: Add paravirtual PCI front-end for Microsoft Hyper-V VMs")
> > Cc: stable@kernel.org
> > Signed-off-by: Wei Liu <wei.liu@kernel.org>
> > ---
> > v2:
> > * Change the commit subject line and message
> > * Change the code according to feedback
> > ---
> > drivers/pci/controller/pci-hyperv.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c
> > index 5992280e8110..cdd5be16021d 100644
> > --- a/drivers/pci/controller/pci-hyperv.c
> > +++ b/drivers/pci/controller/pci-hyperv.c
> > @@ -1130,8 +1130,8 @@ static void _hv_pcifront_read_config(struct hv_pci_dev *hpdev, int where,
> > PCI_CAPABILITY_LIST) {
> > /* ROM BARs are unimplemented */
> > *val = 0;
> > - } else if (where >= PCI_INTERRUPT_LINE && where + size <=
> > - PCI_INTERRUPT_PIN) {
> > + } else if ((where >= PCI_INTERRUPT_LINE && where + size <= PCI_INTERRUPT_PIN) ||
> > + (where >= PCI_INTERRUPT_PIN && where + size <= PCI_MIN_GNT)) {
> > /*
> > * Interrupt Line and Interrupt PIN are hard-wired to zero
> > * because this front-end only supports message-signaled
> > --
> > 2.43.0
> >
next prev parent reply other threads:[~2024-07-01 6:16 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-21 21:00 [PATCH v2] PCI: hv: fix reading of PCI_INTERRUPT_PIN Wei Liu
2024-06-23 22:05 ` Michael Kelley
2024-06-26 15:10 ` Bjorn Helgaas
2024-07-01 6:16 ` Wei Liu [this message]
2024-07-01 17:20 ` Bjorn Helgaas
2024-07-01 20:01 ` Wei Liu
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=ZoJJsolJJcLUYiVG@liuwe-devbox-debian-v2 \
--to=wei.liu@kernel.org \
--cc=bhelgaas@google.com \
--cc=decui@microsoft.com \
--cc=haiyangz@microsoft.com \
--cc=helgaas@kernel.org \
--cc=jakeo@microsoft.com \
--cc=kw@linux.com \
--cc=kys@microsoft.com \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=robh@kernel.org \
--cc=stable@kernel.org \
/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.