phy: qcom-qmp-combo: fix NULL-deref on runtime resume
authorJohan Hovold <johan+linaro@kernel.org>
Wed, 26 Oct 2022 16:21:16 +0000 (18:21 +0200)
committerVinod Koul <vkoul@kernel.org>
Fri, 28 Oct 2022 12:55:50 +0000 (18:25 +0530)
Commit fc64623637da ("phy: qcom-qmp-combo,usb: add support for separate
PCS_USB region") started treating the PCS_USB registers as potentially
separate from the PCS registers but used the wrong base when no PCS_USB
offset has been provided.

Fix the PCS_USB base used at runtime resume to prevent dereferencing a
NULL pointer on platforms that do not provide a PCS_USB offset (e.g.
SC7180).

Fixes: fc64623637da ("phy: qcom-qmp-combo,usb: add support for separate PCS_USB region")
Cc: stable@vger.kernel.org # 5.20
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Andrew Halaney <ahalaney@redhat.com>
Link: https://lore.kernel.org/r/20221026162116.26462-1-johan+linaro@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/qualcomm/phy-qcom-qmp-combo.c

index 9807c4d..ba9d761 100644 (file)
@@ -2240,7 +2240,7 @@ static void qmp_combo_enable_autonomous_mode(struct qmp_phy *qphy)
 static void qmp_combo_disable_autonomous_mode(struct qmp_phy *qphy)
 {
        const struct qmp_phy_cfg *cfg = qphy->cfg;
-       void __iomem *pcs_usb = qphy->pcs_usb ?: qphy->pcs_usb;
+       void __iomem *pcs_usb = qphy->pcs_usb ?: qphy->pcs;
        void __iomem *pcs_misc = qphy->pcs_misc;
 
        /* Disable i/o clamp_n on resume for normal mode */