summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/devices/docg3.h
diff options
context:
space:
mode:
authorRobert Jarzmik <robert.jarzmik@free.fr>2012-03-22 21:00:53 +0100
committerDavid Woodhouse <David.Woodhouse@intel.com>2012-03-27 01:03:27 +0100
commit7b0e67f604e1829e5292e1ad7743eb18dc42ea7c (patch)
tree48cb065f253ed6552e8e5805bba7647eb25a8ad7 /drivers/mtd/devices/docg3.h
parent1b15a5f93bbd9a6f5346cfa449720a7e32115f86 (diff)
downloadop-kernel-dev-7b0e67f604e1829e5292e1ad7743eb18dc42ea7c.zip
op-kernel-dev-7b0e67f604e1829e5292e1ad7743eb18dc42ea7c.tar.gz
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.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/mtd/devices/docg3.h b/drivers/mtd/devices/docg3.h
index 642e606..19fb93f 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;
};
/**
OpenPOWER on IntegriCloud