On 20/03/20(Fri) 12:01, Mark Kettenis wrote:
> > Date: Fri, 20 Mar 2020 11:54:59 +0100
> > From: Martin Pieuchot <[email protected]>
> >
> > As explained in my recent ix(4) diff, using a define when an arch
> > doesn't support a given function makes the compiler complain that
> > the arguments are unused:
> >
> > /sys/dev/pci/if_ix.c:1789:21: error: unused variable 'dummy'
> > [-Werror,-Wunused-variable]
> > pci_intr_handle_t dummy;
> > ^
> > /sys/dev/pci/if_ix.c:1788:26: error: unused variable 'pa'
> > [-Werror,-Wunused-variable]
> > struct pci_attach_args *pa = &os->os_pa;
> >
> > So the diff below uses a stub instead, as discussed with kettenis@.
> > This is enough to not break any build with the above mentioned ix(4)
> > diff.
> >
> > That said alpha, hppa, landisk, macppc and the various mips64 could
> > benefit from the same treatment to prevent future bad surprises.
> >
> > ok?
>
> Does it have to be a real function? Or can it be a static inline?
> The latter has the benefit that the compiler can optimize away the
> function call.
static inline works as well:
Index: arch/i386/pci/pci_machdep.h
===================================================================
RCS file: /cvs/src/sys/arch/i386/pci/pci_machdep.h,v
retrieving revision 1.30
diff -u -p -r1.30 pci_machdep.h
--- arch/i386/pci/pci_machdep.h 19 Aug 2018 08:23:47 -0000 1.30
+++ arch/i386/pci/pci_machdep.h 20 Mar 2020 11:46:38 -0000
@@ -96,7 +96,6 @@ void pci_conf_write(pci_chipset_tag_t,
struct pci_attach_args;
int pci_intr_map_msi(struct pci_attach_args *, pci_intr_handle_t *);
int pci_intr_map(struct pci_attach_args *, pci_intr_handle_t *);
-#define pci_intr_map_msix(p, vec, ihp) (-1)
#define pci_intr_line(c, ih) ((ih).line)
const char *pci_intr_string(pci_chipset_tag_t, pci_intr_handle_t);
void *pci_intr_establish(pci_chipset_tag_t, pci_intr_handle_t,
@@ -113,6 +112,12 @@ void pci_set_powerstate_md(pci_chipset_
void pci_mcfg_init(bus_space_tag_t, bus_addr_t, int, int, int);
pci_chipset_tag_t pci_lookup_segment(int);
+
+static inline int
+pci_intr_map_msix(struct pci_attach_args *pa, int vec, pci_intr_handle_t *ihp)
+{
+ return -1;
+}
/*
* Section 6.2.4, `Miscellaneous Functions' of the PIC Specification,