Showing error 1216

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


Source:

1347                        cmd->count = cpu_to_le32(0);
1348
1349                        status = aac_fib_send(ContainerCommand,
1350                          fibctx,
1351                          sizeof(struct aac_pause),
1352                          FsaNormal,
1353                          -2 /* Timeout silently */, 1,
1354                          NULL, NULL);
1355
1356                        if (status >= 0)
1357                                aac_fib_complete(fibctx);
1358                        aac_fib_free(fibctx);
1359                }
1360        }
1361
1362        return retval;
1363}
1364
1365int aac_check_health(struct aac_dev * aac)
1366{
1367        int BlinkLED;
1368        unsigned long time_now, flagv = 0;
1369        struct list_head * entry;
1370        struct Scsi_Host * host;
1371
1372        /* Extending the scope of fib_lock slightly to protect aac->in_reset */
1373        if (spin_trylock_irqsave(&aac->fib_lock, flagv) == 0)
1374                return 0;
1375
1376        if (aac->in_reset || !(BlinkLED = aac_adapter_check_health(aac))) {
1377                spin_unlock_irqrestore(&aac->fib_lock, flagv);
1378                return 0; /* OK */
1379        }
1380
1381        aac->in_reset = 1;
1382
1383        /* Fake up an AIF:
1384         *        aac_aifcmd.command = AifCmdEventNotify = 1
1385         *        aac_aifcmd.seqnum = 0xFFFFFFFF
1386         *        aac_aifcmd.data[0] = AifEnExpEvent = 23
1387         *        aac_aifcmd.data[1] = AifExeFirmwarePanic = 3
Show full sources