if (pcibios_flags & PCIBIOS_INTR_FIXUP) return 1;
pci_intr_header_fixup(pc, tag, ihp)	pci_chipset_tag_t pc;	pcitag_t tag;	pci_intr_handle_t *ihp;{	struct pcibios_intr_routing *pir;	struct pciintr_link_map *l;	int irq, link, bus, device, function;	char *p = NULL;	irq = ihp->line;	ihp->link = NULL;	ihp->tag = tag;	pci_decompose_tag(pc, tag, &bus, &device, &function);	if ((pir = pciintr_pir_lookup(bus, device)) == NULL ||	    (link = pir->linkmap[ihp->pin - 1].link) == 0) {		PCIBIOS_PRINTV(("Interrupt not connected; no need to change."));		return 1;	}	if ((l = pciintr_link_lookup(link)) == NULL) {		/*		 * No link map entry.		 * Probably pciintr_icu_getclink() or pciintr_icu_get_intr()		 * was failed.		 */		if (pcibios_flags & PCIBIOS_INTRDEBUG)			printf("pci_intr_header_fixup: no entry for link "			    "0x%02x (%d:%d:%d:%c)\n",			    link, bus, device, function, '@' + ihp->pin);		return 1;	}	ihp->link = l;	if (irq == 14 || irq == 15)		p = " WARNING: ignored";	else if (l->irq == I386_PCI_INTERRUPT_LINE_NO_CONNECTION) {		/* Appropriate interrupt was not found. */		if (pciintr_icu_tag == NULL && ihp->line != 0 &&		    ihp->line != I386_PCI_INTERRUPT_LINE_NO_CONNECTION)			/*			 * Do not print warning,			 * if no compatible PCI ICU found,			 * but the irq is already assigned by BIOS.			 */			p = "";		else			p = " WARNING: missing";	} else if (irq == 0 || irq == I386_PCI_INTERRUPT_LINE_NO_CONNECTION) {		p = " fixed up";		ihp->line = l->irq;	} else {		/* routed by BIOS, but inconsistent */#ifdef PCIBIOS_INTR_FIXUP_FORCE		/* believe PCI IRQ Routing table */		p = " WARNING: overriding";		ihp->line = l->irq;#else		/* believe PCI Interrupt Configuration Register (default) */		p = " WARNING: preserving";#endif	}	if (pcibios_flags & PCIBIOS_INTRDEBUG) {		register pcireg_t id = pci_conf_read(pc, tag, PCI_ID_REG);		printf("%d:%d:%d %04x:%04x pin %c clink 0x%02x irq %d stage %d"		    "%s irq %d\n", bus, device, function,		    PCI_VENDOR(id), PCI_PRODUCT(id), '@' + ihp->pin, l->clink,		    ((l->irq == I386_PCI_INTERRUPT_LINE_NO_CONNECTION)?		    -1 : l->irq), l->fixup_stage, p, irq);	}	return (1);}