| From 11cdb506d0fbf5ac05bf55f5afcb3a215c316490 Mon Sep 17 00:00:00 2001 |
| From: Gary Bisson <bisson.gary@gmail.com> |
| Date: Tue, 29 Apr 2025 09:16:29 -0700 |
| Subject: Input: mtk-pmic-keys - fix possible null pointer dereference |
| |
| From: Gary Bisson <bisson.gary@gmail.com> |
| |
| commit 11cdb506d0fbf5ac05bf55f5afcb3a215c316490 upstream. |
| |
| In mtk_pmic_keys_probe, the regs parameter is only set if the button is |
| parsed in the device tree. However, on hardware where the button is left |
| floating, that node will most likely be removed not to enable that |
| input. In that case the code will try to dereference a null pointer. |
| |
| Let's use the regs struct instead as it is defined for all supported |
| platforms. Note that it is ok setting the key reg even if that latter is |
| disabled as the interrupt won't be enabled anyway. |
| |
| Fixes: b581acb49aec ("Input: mtk-pmic-keys - transfer per-key bit in mtk_pmic_keys_regs") |
| Signed-off-by: Gary Bisson <bisson.gary@gmail.com> |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/input/keyboard/mtk-pmic-keys.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/input/keyboard/mtk-pmic-keys.c |
| +++ b/drivers/input/keyboard/mtk-pmic-keys.c |
| @@ -133,8 +133,8 @@ static void mtk_pmic_keys_lp_reset_setup |
| u32 value, mask; |
| int error; |
| |
| - kregs_home = keys->keys[MTK_PMIC_HOMEKEY_INDEX].regs; |
| - kregs_pwr = keys->keys[MTK_PMIC_PWRKEY_INDEX].regs; |
| + kregs_home = ®s->keys_regs[MTK_PMIC_HOMEKEY_INDEX]; |
| + kregs_pwr = ®s->keys_regs[MTK_PMIC_PWRKEY_INDEX]; |
| |
| error = of_property_read_u32(keys->dev->of_node, "power-off-time-sec", |
| &long_press_debounce); |