Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Low] Conflicting declarations and missing `#ifdef` guards for `hv_build_devid_type_pci()` cause build failures under certain Kconfig combinations. --
commit 086da02227f217e959d3022c592e1b8698814d5b Author: Mukesh R <[email protected]> PCI: hv: VMBus and PCI device IDs for PCI passthru This commit introduces functions to build and export VMBus and PCI device IDs for use with Hyper-V PCI passthru. It exposes hv_build_devid_type_pci() and adds hv_pci_vmbus_device_id() to generate the device IDs expected by the hypervisor. > diff --git a/arch/x86/hyperv/irqdomain.c b/arch/x86/hyperv/irqdomain.c > index b3ad50a874dca..8780573a43326 100644 > --- a/arch/x86/hyperv/irqdomain.c > +++ b/arch/x86/hyperv/irqdomain.c > @@ -112,7 +112,7 @@ static int get_rid_cb(struct pci_dev *pdev, u16 alias, > void *data) > return 0; > } > > -static union hv_device_id hv_build_devid_type_pci(struct pci_dev *pdev) > +u64 hv_build_devid_type_pci(struct pci_dev *pdev) > { > int pos; [ ... ] > diff --git a/arch/x86/include/asm/mshyperv.h b/arch/x86/include/asm/mshyperv.h > index f64393e853ee3..2ef34001f8d31 100644 > --- a/arch/x86/include/asm/mshyperv.h > +++ b/arch/x86/include/asm/mshyperv.h [ ... ] > @@ -248,6 +248,12 @@ void hv_crash_asm_end(void); > static inline void hv_root_crash_init(void) {} > #endif /* CONFIG_MSHV_ROOT && CONFIG_CRASH_DUMP */ > > +#if IS_ENABLED(CONFIG_HYPERV_IOMMU) > +u64 hv_build_devid_type_pci(struct pci_dev *pdev); > +#else > +static inline u64 hv_build_devid_type_pci(struct pci_dev *pdev) { return 0; } > +#endif /* IS_ENABLED(CONFIG_HYPERV_IOMMU) */ Will this cause build failures under certain Kconfig combinations? If CONFIG_PCI_MSI=y and CONFIG_HYPERV_IOMMU=n, arch/x86/hyperv/irqdomain.c provides a non-static definition of hv_build_devid_type_pci(), but this header provides a static inline definition, which leads to a redefinition error. Conversely, if CONFIG_PCI_MSI=n and CONFIG_HYPERV_IOMMU=y, this header declares the function, but it is never defined because irqdomain.c is not compiled, resulting in linker errors. -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=8
