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/scsi/ips.c |
Line in file: | 2830 |
Project: | Linux Kernel |
Project version: | 2.6.28 |
Tools: |
Stanse
(1.2)
|
Entered: | 2012-05-29 20:11:37 UTC |
2800 scb->scsi_cmd->result = DID_ERROR << 16; 2801 scb->scsi_cmd->scsi_done(scb->scsi_cmd); 2802 } 2803 2804 if (scb->bus) 2805 ha->dcdb_active[scb->bus - 1] &= 2806 ~(1 << scb->target_id); 2807 2808 ips_freescb(ha, scb); 2809 break; 2810 case IPS_SUCCESS_IMM: 2811 if (scb->scsi_cmd) 2812 scb->scsi_cmd->scsi_done(scb->scsi_cmd); 2813 2814 if (scb->bus) 2815 ha->dcdb_active[scb->bus - 1] &= 2816 ~(1 << scb->target_id); 2817 2818 ips_freescb(ha, scb); 2819 break; 2820 default: 2821 break; 2822 } /* end case */ 2823 2824 p = (struct scsi_cmnd *) p->host_scribble; 2825 2826 } /* end while */ 2827 2828 if (intr == IPS_INTR_ON) 2829 spin_unlock(host->host_lock); 2830} 2831 2832/****************************************************************************/ 2833/* */ 2834/* Routine Name: ips_putq_scb_head */ 2835/* */ 2836/* Routine Description: */ 2837/* */ 2838/* Add an item to the head of the queue */ 2839/* */ 2840/* ASSUMED to be called from within the HA lock */