gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
authorIwona Winiarska <iwona.winiarska@intel.com>
Sat, 4 Dec 2021 17:10:26 +0000 (18:10 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jan 2022 09:54:15 +0000 (10:54 +0100)
commit07ecabf15ad3bfcaaa7e3ee6d660cfce8018dc2a
treef4222a80426e058e9a06cfffd9b73d3f6ee50a60
parent7e09f9d15e430fd4d3189fc9b243abc5fe42e215
gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock

[ Upstream commit 61a7904b6ace99b1bde0d0e867fa3097f5c8cee2 ]

The gpio-aspeed driver implements an irq_chip which need to be invoked
from hardirq context. Since spin_lock() can sleep with PREEMPT_RT, it is
no longer legal to invoke it while interrupts are disabled.
This also causes lockdep to complain about:
[    0.649797] [ BUG: Invalid wait context ]
because aspeed_gpio.lock (spin_lock_t) is taken under irq_desc.lock
(raw_spinlock_t).
Let's use of raw_spinlock_t instead of spinlock_t.

Signed-off-by: Iwona Winiarska <iwona.winiarska@intel.com>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpio/gpio-aspeed.c