diff options
author | Dan Carpenter <error27@gmail.com> | 2010-10-21 23:22:43 +0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-10-23 04:03:25 +0400 |
commit | 29adc2c06fd7aa0a26135d8c96afd1cef9e6700b (patch) | |
tree | 1f1bcde88ad0a8572b998b08e849c7437fb487b4 | |
parent | aa55f3a46fe799b3c8396c57f4b4074252f635da (diff) | |
download | linux-29adc2c06fd7aa0a26135d8c96afd1cef9e6700b.tar.xz |
[media] s5p-fimc: add unlock on error path
There was an unlock missing if kzalloc() failed.
Signed-off-by: Dan Carpenter <error27@gmail.com>
Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/video/s5p-fimc/fimc-core.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/media/video/s5p-fimc/fimc-core.c b/drivers/media/video/s5p-fimc/fimc-core.c index 4b655461d399..2e7c547894b6 100644 --- a/drivers/media/video/s5p-fimc/fimc-core.c +++ b/drivers/media/video/s5p-fimc/fimc-core.c @@ -1320,16 +1320,18 @@ static int fimc_m2m_open(struct file *file) * is already opened. */ if (fimc->vid_cap.refcnt > 0) { - mutex_unlock(&fimc->lock); - return -EBUSY; + err = -EBUSY; + goto err_unlock; } fimc->m2m.refcnt++; set_bit(ST_OUTDMA_RUN, &fimc->state); ctx = kzalloc(sizeof *ctx, GFP_KERNEL); - if (!ctx) - return -ENOMEM; + if (!ctx) { + err = -ENOMEM; + goto err_unlock; + } file->private_data = ctx; ctx->fimc_dev = fimc; @@ -1349,6 +1351,7 @@ static int fimc_m2m_open(struct file *file) kfree(ctx); } +err_unlock: mutex_unlock(&fimc->lock); return err; } |