I have a PCI modem (US Robotics model 3CP5610A). The bus walk places the modem at port 0xd400 and irq 9 (from /proc/pci). I use setserial to set the port and irq values, but setserial changes my irq 9 request to irq 2. The man page for setserial has the statement, "On AT class machines, IRQ2 is seen as IRQ9 and Linux will interpret it in this way." This may be fine for AT class machines, but this is disaster for PCI - irq 2 is assigned to the process controller for cascade interrupts. This technique for configuring PCI modems is documented at http://www.o2.net/~gromitkc/3cp5610.txt with a pointer to this page from Red Hat.
What exactly are the bad effects that you see?
Apprently this works fine in 7.1. Closing.