Showing error 1129

User: Jiri Slaby
Error type: Double Lock
Error type description: Some lock is locked twice unintentionally in a sequence
File location: drivers/scsi/ips.c
Line in file: 2790
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-04-29 14:49:11 UTC


Source:

2760                                if (ips_fill_scb_sg_single
2761                                    (ha, sg_dma_address(sg), scb, i,
2762                                     sg_dma_len(sg)) < 0)
2763                                        break;
2764                        }
2765                        scb->dcdb.transfer_length = scb->data_len;
2766                } else {
2767                        scb->data_busaddr = 0L;
2768                        scb->sg_len = 0;
2769                        scb->data_len = 0;
2770                        scb->dcdb.transfer_length = 0;
2771                }
2772
2773                scb->dcdb.cmd_attribute =
2774                    ips_command_direction[scb->scsi_cmd->cmnd[0]];
2775
2776                /* Allow a WRITE BUFFER Command to Have no Data */
2777                /* This is Used by Tape Flash Utilites          */
2778                if ((scb->scsi_cmd->cmnd[0] == WRITE_BUFFER) &&
2779                                (scb->data_len == 0))
2780                        scb->dcdb.cmd_attribute = 0;
2781
2782                if (!(scb->dcdb.cmd_attribute & 0x3))
2783                        scb->dcdb.transfer_length = 0;
2784
2785                if (scb->data_len >= IPS_MAX_XFER) {
2786                        scb->dcdb.cmd_attribute |= IPS_TRANSFER64K;
2787                        scb->dcdb.transfer_length = 0;
2788                }
2789                if (intr == IPS_INTR_ON)
2790                        spin_lock(host->host_lock);
2791
2792                ret = ips_send_cmd(ha, scb);
2793
2794                switch (ret) {
2795                case IPS_SUCCESS:
2796                        ips_putq_scb_head(&ha->scb_activelist, scb);
2797                        break;
2798                case IPS_FAILURE:
2799                        if (scb->scsi_cmd) {
2800                                scb->scsi_cmd->result = DID_ERROR << 16;
Show full sources