[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 3/4] igb: Fix ARI next function numbers
From: |
Akihiko Odaki |
Subject: |
[PATCH v2 3/4] igb: Fix ARI next function numbers |
Date: |
Sun, 2 Jul 2023 18:46:27 +0900 |
The ARI next function number field is undefined for VF so the PF should
end the linked list formed with the field by specifying 0.
Fixes: 3a977deebe ("Intrdocue igb device emulation")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
hw/core/machine.c | 3 ++-
hw/net/igb.c | 5 ++++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/hw/core/machine.c b/hw/core/machine.c
index f984a767a2..1f5aacd1dc 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -41,7 +41,8 @@
GlobalProperty hw_compat_8_0[] = {
{ "migration", "multifd-flush-after-each-section", "on"},
- { "nvme", "ari-nextfn-1", "on"},
+ { "igb", "ari-nextfn-1", "on" },
+ { "nvme", "ari-nextfn-1", "on" },
};
const size_t hw_compat_8_0_len = G_N_ELEMENTS(hw_compat_8_0);
diff --git a/hw/net/igb.c b/hw/net/igb.c
index 1c989d7677..d37d43c155 100644
--- a/hw/net/igb.c
+++ b/hw/net/igb.c
@@ -78,6 +78,8 @@ struct IGBState {
uint32_t ioaddr;
IGBCore core;
+
+ bool ari_nextfn_1;
};
#define IGB_CAP_SRIOV_OFFSET (0x160)
@@ -431,7 +433,7 @@ static void igb_pci_realize(PCIDevice *pci_dev, Error
**errp)
hw_error("Failed to initialize AER capability");
}
- pcie_ari_init(pci_dev, 0x150, 1);
+ pcie_ari_init(pci_dev, 0x150, s->ari_nextfn_1 ? 1 : 0);
pcie_sriov_pf_init(pci_dev, IGB_CAP_SRIOV_OFFSET, TYPE_IGBVF,
IGB_82576_VF_DEV_ID, IGB_MAX_VF_FUNCTIONS, IGB_MAX_VF_FUNCTIONS,
@@ -582,6 +584,7 @@ static const VMStateDescription igb_vmstate = {
static Property igb_properties[] = {
DEFINE_NIC_PROPERTIES(IGBState, conf),
+ DEFINE_PROP_BOOL("ari-nextfn-1", IGBState, ari_nextfn_1, false),
DEFINE_PROP_END_OF_LIST(),
};
--
2.41.0