From: Richard Yang <weiyang@linux.vnet.ibm.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: Wei Yang <weiyang@linux.vnet.ibm.com>,
linux-pci@vger.kernel.org,
Alex Williamson <alex.williamson@redhat.com>
Subject: Re: [PATCH v2] PCI: Don't update VF's BAR
Date: Fri, 28 Aug 2015 11:51:47 +0800 [thread overview]
Message-ID: <20150828035147.GA4390@Richards-MBP.lan> (raw)
In-Reply-To: <20150827172753.GA27056@google.com>
On Thu, Aug 27, 2015 at 12:27:53PM -0500, Bjorn Helgaas wrote:
>[+cc Alex]
>
>On Wed, Jul 29, 2015 at 04:52:58PM +0800, Wei Yang wrote:
>> VF BARs are RO zero, so updating VF BARs will not take any effect.
>> See the SR-IOV spec r1.1, sec 3.4.1.11.
>>
>> Also this patch adds a warning in pci_update_resource() in case someone
>> really tries to update it.
>>
>> Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
>
>I applied this with some whitespace and changelog fixes to
>pci-4.4/virtualization for v4.4, thanks! I will rebase this branch
>v4.3-rc1 or later.
>
>You mentioned the justification (avoids "error updating" messages) on the
>mailing list. It helps me out if you include that in the changelog, but I
>added it for you.
Bjorn,
You are always nice to us :-)
Have a good weekend.
>
>Bjorn
>
>commit fa47e4466c567b43bcf8e152a4425277b6d033d9
>Author: Wei Yang <weiyang@linux.vnet.ibm.com>
>Date: Wed Jul 29 16:52:58 2015 +0800
>
> PCI: Don't try to restore VF BARs
>
> VF BARs are read-only zero, so updating VF BARs will not have any effect.
> See the SR-IOV spec r1.1, sec 3.4.1.11.
>
> Don't update VF BARs in pci_restore_bars().
>
> This avoids spurious "BAR %d: error updating" messages that we see when
> doing vfio pass-through after 6eb7018705de ("vfio-pci: Move idle devices to
> D3hot power state").
>
> [bhelgaas: changelog, fix whitespace]
> Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
>
>diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
>index 0008c95..1a682f8 100644
>--- a/drivers/pci/pci.c
>+++ b/drivers/pci/pci.c
>@@ -473,7 +473,7 @@ int pci_wait_for_pending(struct pci_dev *dev, int pos, u16 mask)
> }
>
> /**
>- * pci_restore_bars - restore a devices BAR values (e.g. after wake-up)
>+ * pci_restore_bars - restore a device's BAR values (e.g. after wake-up)
> * @dev: PCI device to have its BARs restored
> *
> * Restore the BAR values for a given device, so as to make it
>@@ -483,6 +483,10 @@ static void pci_restore_bars(struct pci_dev *dev)
> {
> int i;
>
>+ /* Per SR-IOV spec 3.4.1.11, VF BARs are RO zero */
>+ if (dev->is_virtfn)
>+ return;
>+
> for (i = 0; i < PCI_BRIDGE_RESOURCES; i++)
> pci_update_resource(dev, i);
> }
>diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
>index 232f925..152de5c 100644
>--- a/drivers/pci/setup-res.c
>+++ b/drivers/pci/setup-res.c
>@@ -36,6 +36,11 @@ void pci_update_resource(struct pci_dev *dev, int resno)
> enum pci_bar_type type;
> struct resource *res = dev->resource + resno;
>
>+ if (dev->is_virtfn) {
>+ dev_warn(&dev->dev, "can't update VF BAR%d\n", resno);
>+ return;
>+ }
>+
> /*
> * Ignore resources for unimplemented BARs and unused resource slots
> * for 64 bit BARs.
--
Richard Yang
Help you, Help me
prev parent reply other threads:[~2015-08-28 3:53 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-30 7:37 [PATCH] PCI: Don't update VF's BAR Wei Yang
2015-07-14 22:15 ` Bjorn Helgaas
2015-07-15 1:38 ` Wei Yang
2015-07-29 8:52 ` [PATCH v2] " Wei Yang
2015-08-27 17:27 ` Bjorn Helgaas
2015-08-28 3:51 ` Richard Yang [this message]
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=20150828035147.GA4390@Richards-MBP.lan \
--to=weiyang@linux.vnet.ibm.com \
--cc=alex.williamson@redhat.com \
--cc=bhelgaas@google.com \
--cc=linux-pci@vger.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.