Showing error 1085

User: Jiri Slaby
Error type: Leaving function in locked state
Error type description: Some lock is not unlocked on all paths of a function, so it is leaked
File location: drivers/block/cciss.c
Line in file: 2913
Project: Linux Kernel
Project version: 2.6.28
Tools: Undetermined 1
Entered: 2012-03-04 17:07:06 UTC


Source:

2883                        c->Request.CDB[9]= start_blk & 0xff;
2884                        c->Request.CDB[10]= (creq->nr_sectors >>  24) & 0xff;
2885                        c->Request.CDB[11]= (creq->nr_sectors >>  16) & 0xff;
2886                        c->Request.CDB[12]= (creq->nr_sectors >>  8) & 0xff;
2887                        c->Request.CDB[13]= creq->nr_sectors & 0xff;
2888                        c->Request.CDB[14] = c->Request.CDB[15] = 0;
2889                }
2890        } else if (blk_pc_request(creq)) {
2891                c->Request.CDBLen = creq->cmd_len;
2892                memcpy(c->Request.CDB, creq->cmd, BLK_MAX_CDB);
2893        } else {
2894                printk(KERN_WARNING "cciss%d: bad request type %d\n", h->ctlr, creq->cmd_type);
2895                BUG();
2896        }
2897
2898        spin_lock_irq(q->queue_lock);
2899
2900        addQ(&(h->reqQ), c);
2901        h->Qdepth++;
2902        if (h->Qdepth > h->maxQsinceinit)
2903                h->maxQsinceinit = h->Qdepth;
2904
2905        goto queue;
2906full:
2907        blk_stop_queue(q);
2908startio:
2909        /* We will already have the driver lock here so not need
2910         * to lock it.
2911         */
2912        start_io(h);
2913}
2914
2915static inline unsigned long get_next_completion(ctlr_info_t *h)
2916{
2917#ifdef CONFIG_CISS_SCSI_TAPE
2918        /* Any rejects from sendcmd() lying around? Process them first */
2919        if (h->scsi_rejects.ncompletions == 0)
2920                return h->access.command_completed(h);
2921        else {
2922                struct sendcmd_reject_list *srl;
2923                int n;
Show full sources