* [PATCH] gpiommc: Add locking
@ 2008-07-21 10:19 Michael Buesch
0 siblings, 0 replies; only message in thread
From: Michael Buesch @ 2008-07-21 10:19 UTC (permalink / raw)
To: Andrew Morton, Stephen Rothwell; +Cc: linux-kernel, openwrt-devel
The gpiommc configfs context structure needs locking, as configfs
does not lock access between files (or if it does, we shouldn't
depend on this to magically happen).
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Index: linux-next/drivers/mmc/host/gpiommc.c
===================================================================
--- linux-next.orig/drivers/mmc/host/gpiommc.c 2008-07-20 21:43:42.000000000 +0200
+++ linux-next/drivers/mmc/host/gpiommc.c 2008-07-21 12:10:55.000000000 +0200
@@ -143,6 +143,8 @@ struct gpiommc_configfs_device {
struct platform_device *pdev;
/* The configuration */
struct gpiommc_platform_data pdata;
+ /* Mutex to protect this structure */
+ struct mutex mutex;
};
#define GPIO_INVALID -1
@@ -233,6 +235,8 @@ static ssize_t gpiommc_config_attr_show(
unsigned int gpio;
int err = 0;
+ mutex_lock(&dev->mutex);
+
if (attr == &gpiommc_attr_DI) {
gpio = dev->pdata.pins.gpio_di;
if (gpio == GPIO_INVALID)
@@ -293,6 +297,8 @@ static ssize_t gpiommc_config_attr_show(
WARN_ON(1);
err = -ENOSYS;
out:
+ mutex_unlock(&dev->mutex);
+
return err ? err : count;
}
@@ -352,6 +358,8 @@ static ssize_t gpiommc_config_attr_store
int err = -EINVAL;
unsigned long data;
+ mutex_lock(&dev->mutex);
+
if (attr == &gpiommc_attr_register) {
err = strict_strtoul(page, 10, &data);
if (err)
@@ -477,6 +485,8 @@ static ssize_t gpiommc_config_attr_store
WARN_ON(1);
err = -ENOSYS;
out:
+ mutex_unlock(&dev->mutex);
+
return err ? err : count;
}
@@ -513,6 +523,7 @@ static struct config_item *gpiommc_make_
if (!dev)
return NULL;
+ mutex_init(&dev->mutex);
config_item_init_type_name(&dev->item, name,
&gpiommc_dev_ci_type);
--
Greetings Michael.
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2008-07-21 10:20 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-21 10:19 [PATCH] gpiommc: Add locking Michael Buesch
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.