summaryrefslogtreecommitdiff
path: root/drivers/mfd/wm8994-irq.c
diff options
context:
space:
mode:
authorMarc Zyngier <maz@kernel.org>2021-07-25 19:07:54 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-09-22 11:43:10 +0200
commitc424a75ba2a88cade67932ef86e075dea2f69d42 (patch)
treee88e87e583243c4f682145dea41bbff28ef6edcf /drivers/mfd/wm8994-irq.c
parent9dd22fba2547816da24c55b7c976aed3c86534a7 (diff)
downloadlinux-rt-c424a75ba2a88cade67932ef86e075dea2f69d42.tar.gz
mfd: Don't use irq_create_mapping() to resolve a mapping
[ Upstream commit 9ff80e2de36d0554e3a6da18a171719fe8663c17 ] Although irq_create_mapping() is able to deal with duplicate mappings, it really isn't supposed to be a substitute for irq_find_mapping(), and can result in allocations that take place in atomic context if the mapping didn't exist. Fix the handful of MFD drivers that use irq_create_mapping() in interrupt context by using irq_find_mapping() instead. Cc: Linus Walleij <linus.walleij@linaro.org> Cc: Lee Jones <lee.jones@linaro.org> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: Alexandre Torgue <alexandre.torgue@foss.st.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/mfd/wm8994-irq.c')
-rw-r--r--drivers/mfd/wm8994-irq.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mfd/wm8994-irq.c b/drivers/mfd/wm8994-irq.c
index 18710f3b5c53..2c58d9b99a39 100644
--- a/drivers/mfd/wm8994-irq.c
+++ b/drivers/mfd/wm8994-irq.c
@@ -159,7 +159,7 @@ static irqreturn_t wm8994_edge_irq(int irq, void *data)
struct wm8994 *wm8994 = data;
while (gpio_get_value_cansleep(wm8994->pdata.irq_gpio))
- handle_nested_irq(irq_create_mapping(wm8994->edge_irq, 0));
+ handle_nested_irq(irq_find_mapping(wm8994->edge_irq, 0));
return IRQ_HANDLED;
}