gpio: gpio-mlxbf2.c: Provide __releases() annotation to stop confusing Sparse
authorLee Jones <lee.jones@linaro.org>
Tue, 30 Jun 2020 13:33:45 +0000 (14:33 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 8 Jul 2020 07:24:08 +0000 (09:24 +0200)
Sparse cannot peer into other functions to see when and if locks are
acquired and released, thus it simply warns that a 'context imbalance'
is detected instead.  Let's be kind to Sparse and let it know that
this behaviour is intentional.

 drivers/gpio/gpio-mlxbf2.c:125:12: warning: context imbalance in 'mlxbf2_gpio_lock_acquire' - different lock contexts for basic block
 drivers/gpio/gpio-mlxbf2.c:151:13: warning: context imbalance in 'mlxbf2_gpio_lock_release' - unexpected unlock

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Reviewed-by: Asmaa Mnebhi <asmaa@mellanox.com>
Cc: Asmaa Mnebhi <Asmaa@mellanox.com>
Link: https://lore.kernel.org/r/20200630133345.2232932-11-lee.jones@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-mlxbf2.c

index 861a8d0..befa5e1 100644 (file)
@@ -149,6 +149,8 @@ static int mlxbf2_gpio_lock_acquire(struct mlxbf2_gpio_context *gs)
  * Release the YU arm_gpio_lock after changing the direction mode.
  */
 static void mlxbf2_gpio_lock_release(struct mlxbf2_gpio_context *gs)
+       __releases(&gs->gc.bgpio_lock)
+       __releases(yu_arm_gpio_lock_param.lock)
 {
        writel(YU_ARM_GPIO_LOCK_RELEASE, yu_arm_gpio_lock_param.io);
        spin_unlock(&gs->gc.bgpio_lock);