summaryrefslogtreecommitdiffstats
path: root/drivers/staging/vme/bridges
diff options
context:
space:
mode:
authorJulia Lawall2010-05-26 17:59:11 +0200
committerGreg Kroah-Hartman2010-06-19 00:16:21 +0200
commit7c0ace54887872ebd99fefdfe85d273295a09426 (patch)
tree2464f7f639986bff887d795ca3b5e5787f8ad43b /drivers/staging/vme/bridges
parentStaging: vme: devices: vme_user.c: Fix checkpatch.pl issues. (diff)
downloadkernel-qcow2-linux-7c0ace54887872ebd99fefdfe85d273295a09426.tar.gz
kernel-qcow2-linux-7c0ace54887872ebd99fefdfe85d273295a09426.tar.xz
kernel-qcow2-linux-7c0ace54887872ebd99fefdfe85d273295a09426.zip
Staging: vme: bridges: Add missing unlocks
Add a spin_unlock and mutex_unlock missing on the error path. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression E1; @@ * spin_lock(E1,...); <+... when != E1 if (...) { ... when != E1 * return ...; } ...+> * spin_unlock(E1,...); // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/vme/bridges')
-rw-r--r--drivers/staging/vme/bridges/vme_ca91cx42.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/staging/vme/bridges/vme_ca91cx42.c b/drivers/staging/vme/bridges/vme_ca91cx42.c
index 0f9ea58ff717..16cf53e38a74 100644
--- a/drivers/staging/vme/bridges/vme_ca91cx42.c
+++ b/drivers/staging/vme/bridges/vme_ca91cx42.c
@@ -900,7 +900,8 @@ unsigned int ca91cx42_master_rmw(struct vme_master_resource *image,
/* Address must be 4-byte aligned */
if (pci_addr & 0x3) {
dev_err(dev, "RMW Address not 4-byte aligned\n");
- return -EINVAL;
+ result = -EINVAL;
+ goto out;
}
/* Ensure RMW Disabled whilst configuring */
@@ -921,6 +922,7 @@ unsigned int ca91cx42_master_rmw(struct vme_master_resource *image,
/* Disable RMW */
iowrite32(0, bridge->base + SCYC_CTL);
+out:
spin_unlock(&(image->lock));
mutex_unlock(&(bridge->vme_rmw));