Showing error 1221

User: Jiri Slaby
Error type: Double Unlock
Error type description: Some lock is unlocked twice unintentionally in a sequence
File location: drivers/scsi/ips.c
Line in file: 2733
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-04-30 10:52:00 UTC


Source:

2703                        ips_freescb(ha, scb);
2704                        break;
2705                case IPS_SUCCESS_IMM:
2706                        ips_freescb(ha, scb);
2707                        break;
2708                default:
2709                        break;
2710                }                /* end case */
2711
2712        }
2713
2714        /*
2715         * Send "Normal" I/O commands
2716         */
2717
2718        p = ha->scb_waitlist.head;
2719        while ((p) && (scb = ips_getscb(ha))) {
2720                if ((scmd_channel(p) > 0)
2721                    && (ha->
2722                        dcdb_active[scmd_channel(p) -
2723                                    1] & (1 << scmd_id(p)))) {
2724                        ips_freescb(ha, scb);
2725                        p = (struct scsi_cmnd *) p->host_scribble;
2726                        continue;
2727                }
2728
2729                q = p;
2730                SC = ips_removeq_wait(&ha->scb_waitlist, q);
2731
2732                if (intr == IPS_INTR_ON)
2733                        spin_unlock(host->host_lock);        /* Unlock HA after command is taken off queue */
2734
2735                SC->result = DID_OK;
2736                SC->host_scribble = NULL;
2737
2738                scb->target_id = SC->device->id;
2739                scb->lun = SC->device->lun;
2740                scb->bus = SC->device->channel;
2741                scb->scsi_cmd = SC;
2742                scb->breakup = 0;
2743                scb->data_len = 0;
Show full sources