diff options
author | Robert Jarzmik <robert.jarzmik@free.fr> | 2012-03-22 21:00:53 +0100 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2012-03-27 02:03:27 +0200 |
commit | 7b0e67f604e1829e5292e1ad7743eb18dc42ea7c (patch) | |
tree | 48cb065f253ed6552e8e5805bba7647eb25a8ad7 /drivers/mtd/devices/docg3.h | |
parent | mtd: docg3 refactor cascade floors structure (diff) | |
download | linux-7b0e67f604e1829e5292e1ad7743eb18dc42ea7c.tar.xz linux-7b0e67f604e1829e5292e1ad7743eb18dc42ea7c.zip |
mtd: docg3 add protection against concurrency
As docg3 is intolerant against reentrancy, especially
because of its weird register access (ie. a register read is
performed by a first register write), each access to the
docg3 IO space must be locked.
Lock the IO space with a mutex, shared by all chips on the
same cascade, as they all share the same IO space.
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/mtd/devices/docg3.h')
-rw-r--r-- | drivers/mtd/devices/docg3.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/mtd/devices/docg3.h b/drivers/mtd/devices/docg3.h index 642e60667cfd..19fb93f96a3a 100644 --- a/drivers/mtd/devices/docg3.h +++ b/drivers/mtd/devices/docg3.h @@ -273,11 +273,13 @@ * @floors: floors (ie. one physical docg3 chip is one floor) * @base: IO space to access all chips in the cascade * @bch: the BCH correcting control structure + * @lock: lock to protect docg3 IO space from concurrent accesses */ struct docg3_cascade { struct mtd_info *floors[DOC_MAX_NBFLOORS]; void __iomem *base; struct bch_control *bch; + struct mutex lock; }; /** |