Showing error 1222

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: 2656
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-04-30 10:52:00 UTC


Source:

2626         * this command won't time out
2627         */
2628        if (intr == IPS_INTR_ON)
2629                spin_lock(host->host_lock);
2630
2631        if ((ha->subsys->param[3] & 0x300000)
2632            && (ha->scb_activelist.count == 0)) {
2633                struct timeval tv;
2634
2635                do_gettimeofday(&tv);
2636
2637                if (tv.tv_sec - ha->last_ffdc > IPS_SECS_8HOURS) {
2638                        ha->last_ffdc = tv.tv_sec;
2639                        ips_ffdc_time(ha);
2640                }
2641        }
2642
2643        /*
2644         * Send passthru commands
2645         * These have priority over normal I/O
2646         * but shouldn't affect performance too much
2647         * since we limit the number that can be active
2648         * on the card at any one time
2649         */
2650        while ((ha->num_ioctl < IPS_MAX_IOCTL) &&
2651               (ha->copp_waitlist.head) && (scb = ips_getscb(ha))) {
2652
2653                item = ips_removeq_copp_head(&ha->copp_waitlist);
2654                ha->num_ioctl++;
2655                if (intr == IPS_INTR_ON)
2656                        spin_unlock(host->host_lock);
2657                scb->scsi_cmd = item->scsi_cmd;
2658                kfree(item);
2659
2660                ret = ips_make_passthru(ha, scb->scsi_cmd, scb, intr);
2661
2662                if (intr == IPS_INTR_ON)
2663                        spin_lock(host->host_lock);
2664                switch (ret) {
2665                case IPS_FAILURE:
2666                        if (scb->scsi_cmd) {
Show full sources