Showing error 1570

User: Jiri Slaby
Error type: Leaving function in locked state
Error type description: Some lock is not unlocked on all paths of a function, so it is leaked
File location: drivers/block/cciss_scsi.c
Line in file: 1647
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-05-29 20:11:37 UTC


Source:

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        /* find the controller to which the command to be aborted was sent */
1629        c = (ctlr_info_t **) &scsicmd->device->host->hostdata[0];        
1630        if (c == NULL) /* paranoia */
1631                return FAILED;
1632        ctlr = (*c)->ctlr;
1633        printk(KERN_WARNING "cciss%d: aborting tardy SCSI cmd\n", ctlr);
1634
1635        /* find the command to be aborted */
1636        cmd_to_abort = (CommandList_struct *) scsicmd->host_scribble;
1637        if (cmd_to_abort == NULL) /* paranoia */
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        /* sendcmd turned off interrupts on the board, turn 'em back on. */
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 /* no CONFIG_CISS_SCSI_TAPE */
1652
1653/* If no tape support, then these become defined out of existence */
1654
1655#define cciss_scsi_setup(cntl_num)
1656
1657#endif /* CONFIG_CISS_SCSI_TAPE */
Show full sources