Message ID | 1457527135.720.1.camel@ingics.com |
---|---|
State | New |
Headers | show |
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
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
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
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; }
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(-)