Re: [4.2-rc1][PATCH] gpio: omap: add missed spin_unlock_irqrestore in omap_gpio_irq_type

From: Grygorii Strashko
Date: Fri Aug 07 2015 - 03:35:11 EST


Hi Tony,
On 08/07/2015 06:36 AM, Tony Lindgren wrote:
* Linus Walleij <linus.walleij@xxxxxxxxxx> [150716 01:38]:
On Wed, Jun 24, 2015 at 4:54 PM, Grygorii Strashko
<grygorii.strashko@xxxxxx> wrote:

From: Grygorii Strashko <grygorii.strashko@xxxxxxxxxx>

Add missed spin_unlock_irqrestore in omap_gpio_irq_type when
omap_set_gpio_triggering() is failed.

It fixes static checker warning:

drivers/gpio/gpio-omap.c:523 omap_gpio_irq_type()
warn: inconsistent returns 'spin_lock:&bank->lock'.

This fixes commit:
1562e4618ded ('gpio: omap: fix error handling in omap_gpio_irq_type')

Reported-by: Javier Martinez Canillas <javier@xxxxxxxxxxxx>
Signed-off-by: Grygorii Strashko <grygorii.strashko@xxxxxxxxxx>

Patch applied for fixes.

Linus, looks like we now have a new build warning in Linux next
with the fixes and raw_spinlock_t change, so a merge or a commit
is needed. If you prefer a patch, here's one below.

Yes. It seems merge/rebase issue between fixes & next:
- this patch went through fixes and RAW spinlock conversation
patch through -next, and without merge conflicts.

and patch has been posted already by Axel Lin:
http://www.spinics.net/lists/linux-omap/msg121031.html



8< ---------------
From: Tony Lindgren <tony@xxxxxxxxxxx>
Date: Thu, 6 Aug 2015 20:32:24 -0700
Subject: [PATCH] gpio: omap: Fix build warning for raw_spinlock_t conversion
and unlock fix
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Looks like we now have a new build warning in Linux next with fix
977bd8a94c40 ("gpio: omap: add missed spin_unlock_irqrestore in
omap_gpio_irq_type") and raw_spinlock changes done in commit
4dbada2be460 ("gpio: omap: use raw locks for locking"):

drivers/gpio/gpio-omap.c: In function âomap_gpio_irq_typeâ:
drivers/gpio/gpio-omap.c:504:26: warning: passing argument 1 of
âspin_unlock_irqrestoreâ from incompatible pointer type
[-Wincompatible-pointer-types]
spin_unlock_irqrestore(&bank->lock, flags);
^
In file included from include/linux/seqlock.h:35:0,
from include/linux/time.h:5,
from include/linux/stat.h:18,
from include/linux/module.h:10,
from drivers/gpio/gpio-omap.c:16:
include/linux/spinlock.h:370:122: note: expected
âspinlock_t * {aka struct spinlock *}â but argument is of type
âraw_spinlock_t * {aka struct raw_spinlock *}â

Fix the issue with using raw_spinlock_t instead.

Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>

--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -501,7 +501,7 @@ static int omap_gpio_irq_type(struct irq_data *d, unsigned type)
raw_spin_lock_irqsave(&bank->lock, flags);
retval = omap_set_gpio_triggering(bank, offset, type);
if (retval) {
- spin_unlock_irqrestore(&bank->lock, flags);
+ raw_spin_unlock_irqrestore(&bank->lock, flags);
goto error;
}
omap_gpio_init_irq(bank, offset);
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html



--
regards,
-grygorii
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/