On 2024/11/19 00:05, Anthony PERARD wrote: > On Wed, Nov 06, 2024 at 02:14:18PM +0800, Jiqian Chen wrote: >> In PVH dom0, when passthrough a device to domU, QEMU code >> xen_pt_realize->xc_physdev_map_pirq wants to use gsi, but in current codes >> the gsi number is got from file /sys/bus/pci/devices/<sbdf>/irq, that is >> wrong, because irq is not equal with gsi, they are in different spaces, so >> pirq mapping fails. >> >> To solve above problem, use new interface of Xen, xc_pcidev_get_gsi to get >> gsi and use xc_physdev_map_pirq_gsi to map pirq when dom0 is PVH. >> >> Signed-off-by: Jiqian Chen <jiqian.c...@amd.com> >> Signed-off-by: Huang Rui <ray.hu...@amd.com> >> Signed-off-by: Jiqian Chen <jiqian.c...@amd.com> > > Acked-by: Anthony PERARD <anth...@xenproject.org> > > But, this following change probably needs an ack from PCI maintaners, > CCed. As PCI maintainers didn't response for weeks, can I just move the definition of the macro back to xen_pt.c file ?
> >> diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h >> index eb26cac81098..07805aa8a5f3 100644 >> --- a/include/hw/pci/pci.h >> +++ b/include/hw/pci/pci.h >> @@ -23,6 +23,10 @@ extern bool pci_available; >> #define PCI_SLOT_MAX 32 >> #define PCI_FUNC_MAX 8 >> >> +#define PCI_SBDF(seg, bus, dev, func) \ >> + ((((uint32_t)(seg)) << 16) | \ >> + (PCI_BUILD_BDF(bus, PCI_DEVFN(dev, func)))) >> + >> /* Class, Vendor and Device IDs from Linux's pci_ids.h */ >> #include "hw/pci/pci_ids.h" > > Thanks, > -- Best regards, Jiqian Chen.