drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c | 5 +++++ 1 file changed, 5 insertions(+)
Current ionic devices only support 52 internal physical address
lines. This is sufficient for x86_64 systems which have similar
limitations but does not apply to all other architectures,
notably IBM POWER (ppc64). To ensure that MSI/MSI-X vectors are
not set outside the physical address limits of the NIC, set the
no_64bit_msi value of the pci_dev structure during device probe.
Signed-off-by: David Christensen <drc@linux.ibm.com>
---
v2: Limit change to ppc64 systems as suggested
---
drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c b/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c
index 6ba8d4aca0a0..a7146d50f814 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c
@@ -326,6 +326,11 @@ static int ionic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
goto err_out;
}
+#ifdef CONFIG_PPC64
+ /* Ensure MSI/MSI-X interrupts lie within addressable physical memory */
+ pdev->no_64bit_msi = 1;
+#endif
+
err = ionic_setup_one(ionic);
if (err)
goto err_out;
--
2.43.0
On 6/3/2024 2:27 PM, David Christensen wrote: > > Current ionic devices only support 52 internal physical address > lines. This is sufficient for x86_64 systems which have similar > limitations but does not apply to all other architectures, > notably IBM POWER (ppc64). To ensure that MSI/MSI-X vectors are > not set outside the physical address limits of the NIC, set the > no_64bit_msi value of the pci_dev structure during device probe. > > Signed-off-by: David Christensen <drc@linux.ibm.com> > --- > v2: Limit change to ppc64 systems as suggested > --- Works for me, thanks! Reviewed-by: Shannon Nelson <shannon.nelson@amd.com> > drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c b/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c > index 6ba8d4aca0a0..a7146d50f814 100644 > --- a/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c > +++ b/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c > @@ -326,6 +326,11 @@ static int ionic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > goto err_out; > } > > +#ifdef CONFIG_PPC64 > + /* Ensure MSI/MSI-X interrupts lie within addressable physical memory */ > + pdev->no_64bit_msi = 1; > +#endif > + > err = ionic_setup_one(ionic); > if (err) > goto err_out; > -- > 2.43.0 >
© 2016 - 2025 Red Hat, Inc.