Showing error 1130

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: 2663
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-04-29 14:49:11 UTC


Source:

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) {
2667                                scb->scsi_cmd->result = DID_ERROR << 16;
2668                                scb->scsi_cmd->scsi_done(scb->scsi_cmd);
2669                        }
2670
2671                        ips_freescb(ha, scb);
2672                        break;
2673                case IPS_SUCCESS_IMM:
Show full sources