All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.