Showing error 1047

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/scsi/dpt_i2o.c
Line in file: 1362
Project: Linux Kernel
Project version: 2.6.28
Tools: Undetermined 1
Entered: 2012-03-04 17:07:06 UTC


Source:

1332                        spin_lock_irq(pHba->host->host_lock);
1333        }
1334        remove_wait_queue(&adpt_wq_i2o_post, &wait);
1335
1336        if(status == -ETIMEDOUT){
1337                printk(KERN_INFO"dpti%d: POST WAIT TIMEOUT\n",pHba->unit);
1338                // We will have to free the wait_data memory during shutdown
1339                return status;
1340        }
1341
1342        /* Remove the entry from the queue.  */
1343        p2 = NULL;
1344        spin_lock_irqsave(&adpt_post_wait_lock, flags);
1345        for(p1 = adpt_post_wait_queue; p1; p2 = p1, p1 = p1->next) {
1346                if(p1 == wait_data) {
1347                        if(p1->status == I2O_DETAIL_STATUS_UNSUPPORTED_FUNCTION ) {
1348                                status = -EOPNOTSUPP;
1349                        }
1350                        if(p2) {
1351                                p2->next = p1->next;
1352                        } else {
1353                                adpt_post_wait_queue = p1->next;
1354                        }
1355                        break;
1356                }
1357        }
1358        spin_unlock_irqrestore(&adpt_post_wait_lock, flags);
1359
1360        kfree(wait_data);
1361
1362        return status;
1363}
1364
1365
1366static s32 adpt_i2o_post_this(adpt_hba* pHba, u32* data, int len)
1367{
1368
1369        u32 m = EMPTY_QUEUE;
1370        u32 __iomem *msg;
1371        ulong timeout = jiffies + 30*HZ;
1372        do {
Show full sources