1617 printk(KERN_WARNING "cciss%d: resetting device failed.\n", ctlr);
1618 return FAILED;
1619}
1620
1621static int cciss_eh_abort_handler(struct scsi_cmnd *scsicmd)
1622{
1623 int rc;
1624 CommandList_struct *cmd_to_abort;
1625 ctlr_info_t **c;
1626 int ctlr;
1627
1628
1629 c = (ctlr_info_t **) &scsicmd->device->host->hostdata[0];
1630 if (c == NULL)
1631 return FAILED;
1632 ctlr = (*c)->ctlr;
1633 printk(KERN_WARNING "cciss%d: aborting tardy SCSI cmd\n", ctlr);
1634
1635
1636 cmd_to_abort = (CommandList_struct *) scsicmd->host_scribble;
1637 if (cmd_to_abort == NULL)
1638 return FAILED;
1639 rc = sendcmd(CCISS_ABORT_MSG, ctlr, &cmd_to_abort->Header.Tag,
1640 0, 2, 0, 0,
1641 (unsigned char *) &cmd_to_abort->Header.LUN.LunAddrBytes[0],
1642 TYPE_MSG);
1643
1644 (*c)->access.set_intr_mask(*c, CCISS_INTR_ON);
1645 if (rc == 0)
1646 return SUCCESS;
1647 return FAILED;
1648
1649}
1650
1651#else
1652
1653
1654
1655#define cciss_scsi_setup(cntl_num)
1656
1657#endif