On Mon, Oct 25, 2021 at 01:38:19PM +0000, Oleksandr Andrushchenko wrote: > Hi, Roger! > > On 25.10.21 16:22, Roger Pau Monné wrote: > > On Fri, Oct 08, 2021 at 08:55:32AM +0300, Oleksandr Andrushchenko wrote: > >> From: Oleksandr Andrushchenko <oleksandr_andrushche...@epam.com> > >> > >> Arm's PCI passthrough implementation doesn't support legacy interrupts, > >> but MSI/MSI-X. This can be the case for other platforms too. > >> For that reason introduce a new CONFIG_PCI_SUPP_LEGACY_IRQ and add > >> it to the CFLAGS and compile the relevant code in the toolstack only if > >> applicable. > >> > >> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushche...@epam.com> > >> Reviewed-by: Stefano Stabellini <sstabell...@kernel.org> > >> Reviewed-by: Rahul Singh <rahul.si...@arm.com> > >> Tested-by: Rahul Singh <rahul.si...@arm.com> > >> --- > >> Cc: Ian Jackson <i...@xenproject.org> > >> Cc: Juergen Gross <jgr...@suse.com> > >> > >> Since v1: > >> - Minimized #idefery by introducing pci_supp_legacy_irq function > >> for relevant checks > >> --- > >> tools/libs/light/Makefile | 4 ++++ > >> tools/libs/light/libxl_pci.c | 13 +++++++++++++ > >> 2 files changed, 17 insertions(+) > >> > >> diff --git a/tools/libs/light/Makefile b/tools/libs/light/Makefile > >> index 7d8c51d49242..bd3f6be2a183 100644 > >> --- a/tools/libs/light/Makefile > >> +++ b/tools/libs/light/Makefile > >> @@ -46,6 +46,10 @@ CFLAGS += -Wno-format-zero-length > >> -Wmissing-declarations \ > >> -Wno-declaration-after-statement -Wformat-nonliteral > >> CFLAGS += -I. > >> > >> +ifeq ($(CONFIG_X86),y) > >> +CFLAGS += -DCONFIG_PCI_SUPP_LEGACY_IRQ > >> +endif > > TBH, since CONFIG_PCI_SUPP_LEGACY_IRQ is used in a single place in the > > source I would consider just using CONFIG_X86, as I think it would be > > clear enough that some arches support legacy interrupt while others > > don't. Not sure it's worth going through the obfuscation of defining a > > separate one. > The idea behind not using CONFIG_X86 is to be arch agnostic, > so CONFIG_PCI_SUPP_LEGACY_IRQ makes more sense with this > respect
I'm not going to insist, but you could have avoided modifying the Makefile at all by just using: static bool pci_supp_legacy_irq(void) { #ifdef CONFIG_X86 return true; #else return false; #endif } Which IMO is clearer than the current approach since it's a single place where CONFIG_PCI_SUPP_LEGACY_IRQ gets used. > >> + > >> SRCS-$(CONFIG_X86) += libxl_cpuid.c > >> SRCS-$(CONFIG_X86) += libxl_x86.c > >> SRCS-$(CONFIG_X86) += libxl_psr.c > >> diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c > >> index 59f3686fc85e..4c2d7aeefbb2 100644 > >> --- a/tools/libs/light/libxl_pci.c > >> +++ b/tools/libs/light/libxl_pci.c > >> @@ -1364,6 +1364,15 @@ static void pci_add_timeout(libxl__egc *egc, > >> libxl__ev_time *ev, > >> pci_add_dm_done(egc, pas, rc); > >> } > >> > >> +static bool pci_supp_legacy_irq(void) > > A naming more inline with the PCI specification (since we insisted on > > using ECAM instead of MCFG) would be intx, ie: pci_supports_intx. > This will require a follow up patch if we all agree this change is needed. > @Jan, are you ok with the rename? Didn't realize it was already committed, in which case I guess we could leave it as-is. Thanks, Roger.