Julia Lawall wrote: > From: Julia Lawall <julia@xxxxxxx> > > 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@xxxxxxx> > Good catch. Signed-off-by: Martyn Welch <martyn.welch@xxxxxx> > --- > drivers/staging/vme/bridges/vme_ca91cx42.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/vme/bridges/vme_ca91cx42.c b/drivers/staging/vme/bridges/vme_ca91cx42.c > index 0c82eb4..f38f7b7 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)); > _______________________________________________ > devel mailing list > devel@xxxxxxxxxxxxxxxxxxxxxx > http://driverdev.linuxdriverproject.org/mailman/listinfo/devel > -- Martyn Welch (Principal Software Engineer) | Registered in England and GE Intelligent Platforms | Wales (3828642) at 100 T +44(0)127322748 | Barbirolli Square, Manchester, E martyn.welch@xxxxxx | M2 3AB VAT:GB 927559189 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel