mtd: cfi_cmdset_0002, fix lock imbalance
authorJiri Slaby <jslaby@suse.cz>
Thu, 10 Dec 2009 13:23:57 +0000 (14:23 +0100)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Thu, 10 Dec 2009 13:33:53 +0000 (13:33 +0000)
Stanse found a double unlock in get_chip. get_chip is called with
chip->mutex held and caller is responsible for unlocking it too.

Do not unlock the lock in get_chip on a fail path. This would mean
a double unlock.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/chips/cfi_cmdset_0002.c

index 1d49e18..f3600e8 100644 (file)
@@ -569,7 +569,6 @@ static int get_chip(struct map_info *map, struct flchip *chip, unsigned long adr
 
                        if (time_after(jiffies, timeo)) {
                                printk(KERN_ERR "Waiting for chip to be ready timed out.\n");
-                               spin_unlock(chip->mutex);
                                return -EIO;
                        }
                        spin_unlock(chip->mutex);