summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnson Huang <anson.huang@nxp.com>2019-04-04 01:14:44 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-05-08 08:22:58 +0300
commit290d72e8c40472121d1212500bb1ebb40e29e7e0 (patch)
tree36383e9474c23f99494951378b8ff2df22fc7180
parenta3d147d5826007736ddec61a685ed9f6bac49b59 (diff)
downloadlinux-290d72e8c40472121d1212500bb1ebb40e29e7e0.tar.xz
Input: snvs_pwrkey - initialize necessary driver data before enabling IRQ
commit bf2a7ca39fd3ab47ef71c621a7ee69d1813b1f97 upstream. SNVS IRQ is requested before necessary driver data initialized, if there is a pending IRQ during driver probe phase, kernel NULL pointer panic will occur in IRQ handler. To avoid such scenario, just initialize necessary driver data before enabling IRQ. This patch is inspired by NXP's internal kernel tree. Fixes: d3dc6e232215 ("input: keyboard: imx: add snvs power key driver") Signed-off-by: Anson Huang <Anson.Huang@nxp.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/input/keyboard/snvs_pwrkey.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/input/keyboard/snvs_pwrkey.c b/drivers/input/keyboard/snvs_pwrkey.c
index effb63205d3d..4c67cf30a5d9 100644
--- a/drivers/input/keyboard/snvs_pwrkey.c
+++ b/drivers/input/keyboard/snvs_pwrkey.c
@@ -148,6 +148,9 @@ static int imx_snvs_pwrkey_probe(struct platform_device *pdev)
return error;
}
+ pdata->input = input;
+ platform_set_drvdata(pdev, pdata);
+
error = devm_request_irq(&pdev->dev, pdata->irq,
imx_snvs_pwrkey_interrupt,
0, pdev->name, pdev);
@@ -163,9 +166,6 @@ static int imx_snvs_pwrkey_probe(struct platform_device *pdev)
return error;
}
- pdata->input = input;
- platform_set_drvdata(pdev, pdata);
-
device_init_wakeup(&pdev->dev, pdata->wakeup);
return 0;