"revision id 0x%x\n",
                         np->s.chip_name, np->device_id, np->revision_id);
        copy_info(&info, "At PCI address %s, IRQ " IRQ_FMT "\n",
-               pci_name(np->s.device), IRQ_PRM(np->s.irq));
+               pci_name(np->s.device), IRQ_PRM(np->s.device->irq));
        copy_info(&info, "Min. period factor %d, %s SCSI BUS%s\n",
                         (int) (np->minsync_dt ? np->minsync_dt : np->minsync),
                         np->maxwide ? "Wide" : "Narrow",
        /*
         *  Free O/S specific resources.
         */
-       if (np->s.irq)
-               free_irq(np->s.irq, np);
+       if (pdev->irq)
+               free_irq(pdev->irq, np);
        if (np->s.ioaddr)
                pci_iounmap(pdev, np->s.ioaddr);
        if (np->s.ramaddr)
                        sym_name(np), pdev->irq);
                goto attach_failed;
        }
-       np->s.irq = pdev->irq;
 
        /*
         *  After SCSI devices have been opened, we cannot
 
        void __iomem *  ioaddr;         /* MMIO kernel io address       */
        void __iomem *  ramaddr;        /* RAM  kernel io address       */
        u_short         io_ws;          /* IO window size               */
-       int             irq;            /* IRQ number                   */
 
        struct timer_list timer;        /* Timer handler link header    */
        u_long          lasttime;