if (find_node_intr(node, &addr[0].phys_hi, &irq) == -1) return;
fix_node_irq(node, pba)	int node;	struct pcibus_attach_args *pba;{	struct { 		u_int32_t phys_hi, phys_mid, phys_lo;		u_int32_t size_hi, size_lo;	} addr [8];	int len;	pcitag_t tag;	u_int32_t irq;	u_int32_t intr;	pci_chipset_tag_t pc = pba->pba_pc;	len = OF_getprop(node, "assigned-addresses", addr, sizeof(addr));	if (len < sizeof(addr[0])) {		return;	}	tag = pci_make_tag(pc, pcibus(addr[0].phys_hi),		pcidev(addr[0].phys_hi),		pcifunc(addr[0].phys_hi));	/* program the interrupt line register with the value	 * found in openfirmware	 */	if (find_node_intr(node, &addr[0].phys_hi, &irq) == -1)		return;	intr = pci_conf_read(pc, tag, PCI_INTERRUPT_REG);#if 0	printf("changing interrupt from %d to %d\n",		intr & PCI_INTERRUPT_LINE_MASK,		irq & PCI_INTERRUPT_LINE_MASK);#endif	intr &= ~PCI_INTERRUPT_LINE_MASK;	intr |= irq & PCI_INTERRUPT_LINE_MASK;	pci_conf_write(pc, tag, PCI_INTERRUPT_REG, intr);}