Commit 32fa45498f843fcf56087b8046d8319fcd455ef0
Committed by
Linus Torvalds
1 parent
568133ebda
Exists in
master
and in
4 other branches
drivers/message/i2o/exec-osm.c: add missing mutex_unlock
Add a mutex_unlock missing on the error path. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression E1; @@ * mutex_lock(E1,...); <+... when != E1 if (...) { ... when != E1 * return ...; } ...+> * mutex_unlock(E1,...); // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 1 changed file with 6 additions and 2 deletions Side-by-side Diff
drivers/message/i2o/exec-osm.c
... | ... | @@ -389,12 +389,16 @@ |
389 | 389 | dev = &c->pdev->dev; |
390 | 390 | |
391 | 391 | if (i2o_dma_realloc(dev, &c->dlct, |
392 | - le32_to_cpu(sb->expected_lct_size))) | |
392 | + le32_to_cpu(sb->expected_lct_size))) { | |
393 | + mutex_unlock(&c->lct_lock); | |
393 | 394 | return -ENOMEM; |
395 | + } | |
394 | 396 | |
395 | 397 | msg = i2o_msg_get_wait(c, I2O_TIMEOUT_MESSAGE_GET); |
396 | - if (IS_ERR(msg)) | |
398 | + if (IS_ERR(msg)) { | |
399 | + mutex_unlock(&c->lct_lock); | |
397 | 400 | return PTR_ERR(msg); |
401 | + } | |
398 | 402 | |
399 | 403 | msg->u.head[0] = cpu_to_le32(EIGHT_WORD_MSG_SIZE | SGL_OFFSET_6); |
400 | 404 | msg->u.head[1] = cpu_to_le32(I2O_CMD_LCT_NOTIFY << 24 | HOST_TID << 12 | |