lkml.org 
[lkml]   [2008]   [Jul]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] gpiommc: Add locking
    Date
    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.


    \
     
     \ /
      Last update: 2008-07-21 12:23    [W:5.435 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site