Showing error 1218

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


Source:

2630
2631                if (scb->sno >= MBOX_MAX_SCSI_CMDS) {
2632                        con_log(CL_ANN, (KERN_WARNING
2633                        "megaraid: IOCTL packet with %d[%d:%d] being reset\n",
2634                        scb->sno, scb->dev_channel, scb->dev_target));
2635
2636                        scb->status = -1;
2637
2638                        kioc                        = (uioc_t *)scb->gp;
2639                        kioc->status                = -EFAULT;
2640
2641                        megaraid_mbox_mm_done(adapter, scb);
2642                } else {
2643                        if (scb->scp == scp) {        // Found command
2644                                con_log(CL_ANN, (KERN_WARNING
2645                                        "megaraid: %ld:%d[%d:%d], reset from pending list\n",
2646                                        scp->serial_number, scb->sno,
2647                                        scb->dev_channel, scb->dev_target));
2648                        } else {
2649                                con_log(CL_ANN, (KERN_WARNING
2650                                "megaraid: IO packet with %d[%d:%d] being reset\n",
2651                                scb->sno, scb->dev_channel, scb->dev_target));
2652                        }
2653
2654                        scb->scp->result = (DID_RESET << 16);
2655                        scb->scp->scsi_done(scb->scp);
2656
2657                        megaraid_dealloc_scb(adapter, scb);
2658                }
2659        }
2660        spin_unlock_irqrestore(PENDING_LIST_LOCK(adapter), flags);
2661
2662        if (adapter->outstanding_cmds) {
2663                con_log(CL_ANN, (KERN_NOTICE
2664                        "megaraid: %d outstanding commands. Max wait %d sec\n",
2665                        adapter->outstanding_cmds,
2666                        (MBOX_RESET_WAIT + MBOX_RESET_EXT_WAIT)));
2667        }
2668
2669        recovery_window = MBOX_RESET_WAIT + MBOX_RESET_EXT_WAIT;
2670
Show full sources