]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/5.0.14/input-snvs_pwrkey-initialize-necessary-driver-data-before-enabling-irq.patch
Linux 4.19.41
[thirdparty/kernel/stable-queue.git] / releases / 5.0.14 / input-snvs_pwrkey-initialize-necessary-driver-data-before-enabling-irq.patch
1 From bf2a7ca39fd3ab47ef71c621a7ee69d1813b1f97 Mon Sep 17 00:00:00 2001
2 From: Anson Huang <anson.huang@nxp.com>
3 Date: Wed, 3 Apr 2019 15:14:44 -0700
4 Subject: Input: snvs_pwrkey - initialize necessary driver data before enabling IRQ
5
6 From: Anson Huang <anson.huang@nxp.com>
7
8 commit bf2a7ca39fd3ab47ef71c621a7ee69d1813b1f97 upstream.
9
10 SNVS IRQ is requested before necessary driver data initialized,
11 if there is a pending IRQ during driver probe phase, kernel
12 NULL pointer panic will occur in IRQ handler. To avoid such
13 scenario, just initialize necessary driver data before enabling
14 IRQ. This patch is inspired by NXP's internal kernel tree.
15
16 Fixes: d3dc6e232215 ("input: keyboard: imx: add snvs power key driver")
17 Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
18 Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
19 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
20
21 ---
22 drivers/input/keyboard/snvs_pwrkey.c | 6 +++---
23 1 file changed, 3 insertions(+), 3 deletions(-)
24
25 --- a/drivers/input/keyboard/snvs_pwrkey.c
26 +++ b/drivers/input/keyboard/snvs_pwrkey.c
27 @@ -148,6 +148,9 @@ static int imx_snvs_pwrkey_probe(struct
28 return error;
29 }
30
31 + pdata->input = input;
32 + platform_set_drvdata(pdev, pdata);
33 +
34 error = devm_request_irq(&pdev->dev, pdata->irq,
35 imx_snvs_pwrkey_interrupt,
36 0, pdev->name, pdev);
37 @@ -163,9 +166,6 @@ static int imx_snvs_pwrkey_probe(struct
38 return error;
39 }
40
41 - pdata->input = input;
42 - platform_set_drvdata(pdev, pdata);
43 -
44 device_init_wakeup(&pdev->dev, pdata->wakeup);
45
46 return 0;