]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Input: mtk-pmic-keys - fix possible null pointer dereference
authorGary Bisson <bisson.gary@gmail.com>
Tue, 29 Apr 2025 16:16:29 +0000 (09:16 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 18 May 2025 06:21:22 +0000 (08:21 +0200)
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

index 9b34da0ec260507b3d2efaef0d9e084b891e5a60..2d89990234683f8e83f0b17de8afc3a9a9ee09bd 100644 (file)
@@ -133,8 +133,8 @@ static void mtk_pmic_keys_lp_reset_setup(struct mtk_pmic_keys *keys,
        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 = &regs->keys_regs[MTK_PMIC_HOMEKEY_INDEX];
+       kregs_pwr = &regs->keys_regs[MTK_PMIC_PWRKEY_INDEX];
 
        error = of_property_read_u32(keys->dev->of_node, "power-off-time-sec",
                                     &long_press_debounce);