static irqreturn_t __inline__
DC390_Interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
- struct dc390_acb *pACB, *pACB2;
+ struct dc390_acb *pACB = (struct dc390_acb*)dev_id;
struct dc390_dcb *pDCB;
struct dc390_srb *pSRB;
u8 sstatus=0;
u8 dstatus;
#endif
- pACB = (struct dc390_acb*)dev_id;
- for (pACB2 = dc390_pACB_start; (pACB2 && pACB2 != pACB); pACB2 = pACB2->pNextACB);
- if (!pACB2)
- {
- printk ("DC390: IRQ called with foreign dev_id %p!\n", pACB);
- return IRQ_NONE;
- }
-
sstatus = DC390_read8 (Scsi_Status);
if( !(sstatus & INTERRUPT) )
return IRQ_NONE;
static void dc390_updateDCB (struct dc390_acb* pACB, struct dc390_dcb* pDCB);
-static struct dc390_acb* dc390_pACB_start= NULL;
-static struct dc390_acb* dc390_pACB_current = NULL;
static u32 dc390_laststatus = 0;
static u8 dc390_adapterCnt = 0;
static int __devinit dc390_probe_one(struct pci_dev *pdev,
const struct pci_device_id *id)
{
- struct dc390_acb *pACB, *pACB2;
+ struct dc390_acb *pACB;
struct Scsi_Host *shost;
unsigned long io_port;
int error = -ENODEV, i;
goto out_release_region;
}
- if (!dc390_pACB_start) {
- pACB2 = NULL;
- dc390_pACB_start = pACB;
- dc390_pACB_current = pACB;
- pACB->pNextACB = NULL;
- } else {
- pACB2 = dc390_pACB_current;
- dc390_pACB_current->pNextACB = pACB;
- dc390_pACB_current = pACB;
- pACB->pNextACB = NULL;
- }
-
dc390_init_hw(pACB, dc390_adapterCnt);
dc390_adapterCnt++;