[1/2] gpio: menz127: Drop lock field from struct men_z127_gpio
diff mbox

Message ID 1457527135.720.1.camel@ingics.com
State New
Headers show

Commit Message

Axel Lin March 9, 2016, 12:38 p.m. UTC
Current code uses a uninitialized spin lock.
bgpio_init() already initialized a spin lock, so let's switch to use
&gc->bgpio_lock instead and remove the lock from struct men_z127_gpio.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
 drivers/gpio/gpio-menz127.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

Comments

Linus Walleij March 22, 2016, 10:31 a.m. UTC | #1
On Wed, Mar 9, 2016 at 1:38 PM, Axel Lin <axel.lin@ingics.com> wrote:

> Current code uses a uninitialized spin lock.
> bgpio_init() already initialized a spin lock, so let's switch to use
> &gc->bgpio_lock instead and remove the lock from struct men_z127_gpio.
>
> Signed-off-by: Axel Lin <axel.lin@ingics.com>

Patch applied for the v4.7 cycle. Will not appear in -next until
after -rc1.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Axel Lin March 22, 2016, 10:53 a.m. UTC | #2
2016-03-22 18:31 GMT+08:00 Linus Walleij <linus.walleij@linaro.org>:
> On Wed, Mar 9, 2016 at 1:38 PM, Axel Lin <axel.lin@ingics.com> wrote:
>
>> Current code uses a uninitialized spin lock.
>> bgpio_init() already initialized a spin lock, so let's switch to use
>> &gc->bgpio_lock instead and remove the lock from struct men_z127_gpio.
>>
>> Signed-off-by: Axel Lin <axel.lin@ingics.com>
>
> Patch applied for the v4.7 cycle. Will not appear in -next until
> after -rc1.

Is it fine to use uninitialized spinlock?
If not, this one should be for 4.6.

Regards,
Axel
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Linus Walleij March 22, 2016, 1:43 p.m. UTC | #3
On Tue, Mar 22, 2016 at 11:53 AM, Axel Lin <axel.lin@ingics.com> wrote:
> 2016-03-22 18:31 GMT+08:00 Linus Walleij <linus.walleij@linaro.org>:
>> On Wed, Mar 9, 2016 at 1:38 PM, Axel Lin <axel.lin@ingics.com> wrote:
>>
>>> Current code uses a uninitialized spin lock.
>>> bgpio_init() already initialized a spin lock, so let's switch to use
>>> &gc->bgpio_lock instead and remove the lock from struct men_z127_gpio.
>>>
>>> Signed-off-by: Axel Lin <axel.lin@ingics.com>
>>
>> Patch applied for the v4.7 cycle. Will not appear in -next until
>> after -rc1.
>
> Is it fine to use uninitialized spinlock?
> If not, this one should be for 4.6.

Ah, I see, moving it to fixes, tagging for stable.

When you find stuff like this, put in Cc: stable@vger.kernel.org
please, then I know immediately what to do with it :)

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff --git a/drivers/gpio/gpio-menz127.c b/drivers/gpio/gpio-menz127.c
index a68e199..c5c9599 100644
--- a/drivers/gpio/gpio-menz127.c
+++ b/drivers/gpio/gpio-menz127.c
@@ -37,7 +37,6 @@  struct men_z127_gpio {
 	void __iomem *reg_base;
 	struct mcb_device *mdev;
 	struct resource *mem;
-	spinlock_t lock;
 };
 
 static int men_z127_debounce(struct gpio_chip *gc, unsigned gpio,
@@ -69,7 +68,7 @@  static int men_z127_debounce(struct gpio_chip *gc, unsigned gpio,
 		debounce /= 50;
 	}
 
-	spin_lock(&priv->lock);
+	spin_lock(&gc->bgpio_lock);
 
 	db_en = readl(priv->reg_base + MEN_Z127_DBER);
 
@@ -84,7 +83,7 @@  static int men_z127_debounce(struct gpio_chip *gc, unsigned gpio,
 	writel(db_en, priv->reg_base + MEN_Z127_DBER);
 	writel(db_cnt, priv->reg_base + GPIO_TO_DBCNT_REG(gpio));
 
-	spin_unlock(&priv->lock);
+	spin_unlock(&gc->bgpio_lock);
 
 	return 0;
 }
@@ -97,7 +96,7 @@  static int men_z127_request(struct gpio_chip *gc, unsigned gpio_pin)
 	if (gpio_pin >= gc->ngpio)
 		return -EINVAL;
 
-	spin_lock(&priv->lock);
+	spin_lock(&gc->bgpio_lock);
 	od_en = readl(priv->reg_base + MEN_Z127_ODER);
 
 	if (gpiochip_line_is_open_drain(gc, gpio_pin))
@@ -106,7 +105,7 @@  static int men_z127_request(struct gpio_chip *gc, unsigned gpio_pin)
 		od_en &= ~BIT(gpio_pin);
 
 	writel(od_en, priv->reg_base + MEN_Z127_ODER);
-	spin_unlock(&priv->lock);
+	spin_unlock(&gc->bgpio_lock);
 
 	return 0;
 }