2018-03-16 09:46:34

by Manu Gautam

[permalink] [raw]
Subject: [PATCH 2/6] phy: qcom-qusb2: Fix crash if nvmem cell not specified

Driver currently crashes due to NULL pointer deference
while updating PHY tune register if nvmem cell is NULL.
Since, fused value for Tune1/2 register is optional,
we'd rather bail out.

Signed-off-by: Manu Gautam <[email protected]>
---
drivers/phy/qualcomm/phy-qcom-qusb2.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/phy/qualcomm/phy-qcom-qusb2.c b/drivers/phy/qualcomm/phy-qcom-qusb2.c
index 94afeac..40fdef8 100644
--- a/drivers/phy/qualcomm/phy-qcom-qusb2.c
+++ b/drivers/phy/qualcomm/phy-qcom-qusb2.c
@@ -315,6 +315,10 @@ static void qusb2_phy_set_tune2_param(struct qusb2_phy *qphy)
const struct qusb2_phy_cfg *cfg = qphy->cfg;
u8 *val;

+ /* efuse register is optional */
+ if (!qphy->cell)
+ return;
+
/*
* Read efuse register having TUNE2/1 parameter's high nibble.
* If efuse register shows value as 0x0, or if we fail to find
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project



2018-03-20 10:13:45

by Vivek Gautam

[permalink] [raw]
Subject: Re: [PATCH 2/6] phy: qcom-qusb2: Fix crash if nvmem cell not specified

Hi Manu,


On 3/16/2018 3:14 PM, Manu Gautam wrote:
> Driver currently crashes due to NULL pointer deference
> while updating PHY tune register if nvmem cell is NULL.
> Since, fused value for Tune1/2 register is optional,
> we'd rather bail out.

fixes: ("ca04d9d3e1b1 phy: qcom-qusb2: New driver for QUSB2 PHY on Qcom
chips") ?
and please CC to stable as well - ver 4.14.

With that,
Reviewed-by: Vivek Gautam <[email protected]>

Thanks
Vivek
>
> Signed-off-by: Manu Gautam <[email protected]>
> ---
> drivers/phy/qualcomm/phy-qcom-qusb2.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/phy/qualcomm/phy-qcom-qusb2.c b/drivers/phy/qualcomm/phy-qcom-qusb2.c
> index 94afeac..40fdef8 100644
> --- a/drivers/phy/qualcomm/phy-qcom-qusb2.c
> +++ b/drivers/phy/qualcomm/phy-qcom-qusb2.c
> @@ -315,6 +315,10 @@ static void qusb2_phy_set_tune2_param(struct qusb2_phy *qphy)
> const struct qusb2_phy_cfg *cfg = qphy->cfg;
> u8 *val;
>
> + /* efuse register is optional */
> + if (!qphy->cell)
> + return;
> +
> /*
> * Read efuse register having TUNE2/1 parameter's high nibble.
> * If efuse register shows value as 0x0, or if we fail to find