> > static int pirq_via_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) > { > - write_config_nybble(router, 0x55, pirq, irq); > + write_config_nybble(router, 0x55, pirq == 4 ? 5 : pirq, irq); > return 1; > } you missed the > + return (x >> 4); in the original patch... so your code is NOT identical.