From: "Cédric Le Goater" <clg@redhat.com>
To: "Jason Wang" <jasowang@redhat.com>, "Cédric Le Goater" <clg@kaod.org>
Cc: qemu-devel@nongnu.org, Akihiko Odaki <akihiko.odaki@daynix.com>,
Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Subject: Re: [PATCH 2/2] igb: Add Function Level Reset to PF and VF
Date: Fri, 20 Oct 2023 11:41:00 +0200 [thread overview]
Message-ID: <b744bd42-0b46-44ce-8d60-28d4d31427e0@redhat.com> (raw)
In-Reply-To: <d9df1c95-f681-4962-be74-671cef90e908@redhat.com>
On 10/20/23 09:40, Cédric Le Goater wrote:
> On 10/20/23 06:24, Jason Wang wrote:
>> On Tue, Aug 29, 2023 at 5:06 PM Cédric Le Goater <clg@kaod.org> wrote:
>>>
>>> From: Cédric Le Goater <clg@redhat.com>
>>>
>>> The Intel 82576EB GbE Controller say that the Physical and Virtual
>>> Functions support Function Level Reset. Add the capability to each
>>> device model.
>>>
>>
>> Do we need to do migration compatibility for this?
>
> Yes. it does. the config space is now different.
Jason,
To avoid an extra compat property, would it be ok to let the VF peek into
the PF capabilities to set FLR or not ? Something like below.
Thanks,
C.
@@ -238,6 +238,12 @@ static const MemoryRegionOps mmio_ops =
},
};
+static bool igbvf_check_pf_flr(PCIDevice *dev)
+{
+ return !!(pci_get_long(dev->config + dev->exp.exp_cap + PCI_EXP_DEVCAP)
+ & PCI_EXP_DEVCAP_FLR);
+}
+
static void igbvf_pci_realize(PCIDevice *dev, Error **errp)
{
IgbVfState *s = IGBVF(dev);
@@ -267,7 +273,9 @@ static void igbvf_pci_realize(PCIDevice
hw_error("Failed to initialize PCIe capability");
}
- pcie_cap_flr_init(dev);
+ if (igbvf_check_pf_flr(pcie_sriov_get_pf(dev))) {
+ pcie_cap_flr_init(dev);
+ }
if (pcie_aer_init(dev, 1, 0x100, 0x40, errp) < 0) {
hw_error("Failed to initialize AER capability");
>
> Thanks,
>
> C.
>
>
>>
>> Thanks
>>
>>> Cc: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
>>> Fixes: 3a977deebe6b ("Intrdocue igb device emulation")
>>> Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
>>> Tested-by: Akihiko Odaki <akihiko.odaki@daynix.com>
>>> Signed-off-by: Cédric Le Goater <clg@redhat.com>
>>> ---
>>> hw/net/igb.c | 3 +++
>>> hw/net/igbvf.c | 3 +++
>>> 2 files changed, 6 insertions(+)
>>>
>>> diff --git a/hw/net/igb.c b/hw/net/igb.c
>>> index e70a66ee038e..b8c170ad9b1a 100644
>>> --- a/hw/net/igb.c
>>> +++ b/hw/net/igb.c
>>> @@ -101,6 +101,7 @@ static void igb_write_config(PCIDevice *dev, uint32_t addr,
>>>
>>> trace_igb_write_config(addr, val, len);
>>> pci_default_write_config(dev, addr, val, len);
>>> + pcie_cap_flr_write_config(dev, addr, val, len);
>>>
>>> if (range_covers_byte(addr, len, PCI_COMMAND) &&
>>> (dev->config[PCI_COMMAND] & PCI_COMMAND_MASTER)) {
>>> @@ -433,6 +434,8 @@ static void igb_pci_realize(PCIDevice *pci_dev, Error **errp)
>>> }
>>>
>>> /* PCIe extended capabilities (in order) */
>>> + pcie_cap_flr_init(pci_dev);
>>> +
>>> if (pcie_aer_init(pci_dev, 1, 0x100, 0x40, errp) < 0) {
>>> hw_error("Failed to initialize AER capability");
>>> }
>>> diff --git a/hw/net/igbvf.c b/hw/net/igbvf.c
>>> index 07343fa14a89..55e321e4ec20 100644
>>> --- a/hw/net/igbvf.c
>>> +++ b/hw/net/igbvf.c
>>> @@ -204,6 +204,7 @@ static void igbvf_write_config(PCIDevice *dev, uint32_t addr, uint32_t val,
>>> {
>>> trace_igbvf_write_config(addr, val, len);
>>> pci_default_write_config(dev, addr, val, len);
>>> + pcie_cap_flr_write_config(dev, addr, val, len);
>>> }
>>>
>>> static uint64_t igbvf_mmio_read(void *opaque, hwaddr addr, unsigned size)
>>> @@ -266,6 +267,8 @@ static void igbvf_pci_realize(PCIDevice *dev, Error **errp)
>>> hw_error("Failed to initialize PCIe capability");
>>> }
>>>
>>> + pcie_cap_flr_init(dev);
>>> +
>>> if (pcie_aer_init(dev, 1, 0x100, 0x40, errp) < 0) {
>>> hw_error("Failed to initialize AER capability");
>>> }
>>> --
>>> 2.41.0
>>>
>>>
>>
>
next prev parent reply other threads:[~2023-10-20 9:41 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-29 9:05 [PATCH 0/2] igb: Add FLR support Cédric Le Goater
2023-08-29 9:05 ` [PATCH 1/2] igb: Add a VF reset handler Cédric Le Goater
2023-08-29 11:13 ` Philippe Mathieu-Daudé
2023-08-30 0:36 ` Akihiko Odaki
2023-08-30 10:11 ` Sriram Yagnaraman
2023-08-29 9:05 ` [PATCH 2/2] igb: Add Function Level Reset to PF and VF Cédric Le Goater
2023-08-30 10:12 ` Sriram Yagnaraman
2023-10-20 4:24 ` Jason Wang
2023-10-20 7:40 ` Cédric Le Goater
2023-10-20 9:41 ` Cédric Le Goater [this message]
2023-10-23 3:11 ` Jason Wang
2023-10-23 10:57 ` Akihiko Odaki
2023-10-23 11:28 ` Cédric Le Goater
2023-10-18 12:55 ` [PATCH 0/2] igb: Add FLR support Cédric Le Goater
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=b744bd42-0b46-44ce-8d60-28d4d31427e0@redhat.com \
--to=clg@redhat.com \
--cc=akihiko.odaki@daynix.com \
--cc=clg@kaod.org \
--cc=jasowang@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=sriram.yagnaraman@est.tech \
/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).