diff options
| -rw-r--r-- | drivers/mtd/chips/cfi_cmdset_0001.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/mtd/chips/cfi_cmdset_0001.c b/drivers/mtd/chips/cfi_cmdset_0001.c index 143f01a4c170..69c04945591f 100644 --- a/drivers/mtd/chips/cfi_cmdset_0001.c +++ b/drivers/mtd/chips/cfi_cmdset_0001.c | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | * | 4 | * |
| 5 | * (C) 2000 Red Hat. GPL'd | 5 | * (C) 2000 Red Hat. GPL'd |
| 6 | * | 6 | * |
| 7 | * $Id: cfi_cmdset_0001.c,v 1.185 2005/11/07 11:14:22 gleixner Exp $ | 7 | * $Id: cfi_cmdset_0001.c,v 1.186 2005/11/23 22:07:52 nico Exp $ |
| 8 | * | 8 | * |
| 9 | * | 9 | * |
| 10 | * 10/10/2000 Nicolas Pitre <nico@cam.org> | 10 | * 10/10/2000 Nicolas Pitre <nico@cam.org> |
| @@ -644,9 +644,8 @@ static int get_chip(struct map_info *map, struct flchip *chip, unsigned long adr | |||
| 644 | * | 644 | * |
| 645 | * - contension arbitration is handled in the owner's context. | 645 | * - contension arbitration is handled in the owner's context. |
| 646 | * | 646 | * |
| 647 | * The 'shared' struct can be read when its lock is taken. | 647 | * The 'shared' struct can be read and/or written only when |
| 648 | * However any writes to it can only be made when the current | 648 | * its lock is taken. |
| 649 | * owner's lock is also held. | ||
| 650 | */ | 649 | */ |
| 651 | struct flchip_shared *shared = chip->priv; | 650 | struct flchip_shared *shared = chip->priv; |
| 652 | struct flchip *contender; | 651 | struct flchip *contender; |
| @@ -675,14 +674,13 @@ static int get_chip(struct map_info *map, struct flchip *chip, unsigned long adr | |||
| 675 | } | 674 | } |
| 676 | timeo = jiffies + HZ; | 675 | timeo = jiffies + HZ; |
| 677 | spin_lock(&shared->lock); | 676 | spin_lock(&shared->lock); |
| 677 | spin_unlock(contender->mutex); | ||
| 678 | } | 678 | } |
| 679 | 679 | ||
| 680 | /* We now own it */ | 680 | /* We now own it */ |
| 681 | shared->writing = chip; | 681 | shared->writing = chip; |
| 682 | if (mode == FL_ERASING) | 682 | if (mode == FL_ERASING) |
| 683 | shared->erasing = chip; | 683 | shared->erasing = chip; |
| 684 | if (contender && contender != chip) | ||
| 685 | spin_unlock(contender->mutex); | ||
| 686 | spin_unlock(&shared->lock); | 684 | spin_unlock(&shared->lock); |
| 687 | } | 685 | } |
| 688 | 686 | ||
