diff mbox series

[v2] phy: usb: sunplus: Fix memleak in update_disc_vol()

Message ID 20221108073430.29172-1-yuehaibing@huawei.com (mailing list archive)
State New, archived
Headers show
Series [v2] phy: usb: sunplus: Fix memleak in update_disc_vol() | expand

Commit Message

Yue Haibing Nov. 8, 2022, 7:34 a.m. UTC
'otp_v' is allocated in nvmem_cell_read(), it should be freed
before return.

Fixes: 99d9ccd97385 ("phy: usb: Add USB2.0 phy driver for Sunplus SP7021")
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
---
v2: free otp_v before return
---
 drivers/phy/sunplus/phy-sunplus-usb2.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Vinod Koul Nov. 10, 2022, 7:02 a.m. UTC | #1
On 08-11-22, 15:34, YueHaibing wrote:
> 'otp_v' is allocated in nvmem_cell_read(), it should be freed
> before return.

Right!

> 
> Fixes: 99d9ccd97385 ("phy: usb: Add USB2.0 phy driver for Sunplus SP7021")
> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
> ---
> v2: free otp_v before return
> ---
>  drivers/phy/sunplus/phy-sunplus-usb2.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/phy/sunplus/phy-sunplus-usb2.c b/drivers/phy/sunplus/phy-sunplus-usb2.c
> index e827b79f6d49..62d5cb5c7c9d 100644
> --- a/drivers/phy/sunplus/phy-sunplus-usb2.c
> +++ b/drivers/phy/sunplus/phy-sunplus-usb2.c
> @@ -105,6 +105,9 @@ static int update_disc_vol(struct sp_usbphy *usbphy)
>  	val = (val & ~J_DISC) | set;
>  	writel(val, usbphy->phy_regs + CONFIG7);
>  
> +	if (!IS_ERR(otp_v))
> +		kfree(otp_v);

But that is not the case!
Yue Haibing Nov. 10, 2022, 1:35 p.m. UTC | #2
On 2022/11/10 15:02, Vinod Koul wrote:
> On 08-11-22, 15:34, YueHaibing wrote:
>> 'otp_v' is allocated in nvmem_cell_read(), it should be freed
>> before return.
> 
> Right!
> 
>>
>> Fixes: 99d9ccd97385 ("phy: usb: Add USB2.0 phy driver for Sunplus SP7021")
>> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
>> ---
>> v2: free otp_v before return
>> ---
>>  drivers/phy/sunplus/phy-sunplus-usb2.c | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/phy/sunplus/phy-sunplus-usb2.c b/drivers/phy/sunplus/phy-sunplus-usb2.c
>> index e827b79f6d49..62d5cb5c7c9d 100644
>> --- a/drivers/phy/sunplus/phy-sunplus-usb2.c
>> +++ b/drivers/phy/sunplus/phy-sunplus-usb2.c
>> @@ -105,6 +105,9 @@ static int update_disc_vol(struct sp_usbphy *usbphy)
>>  	val = (val & ~J_DISC) | set;
>>  	writel(val, usbphy->phy_regs + CONFIG7);
>>  
>> +	if (!IS_ERR(otp_v))
>> +		kfree(otp_v);
> 
> But that is not the case!

Do you think I should changed the commit log like this:

'otp_v' is allocated by nvmem_cell_read(), it should be freed
after usage in update_disc_vol().


>
diff mbox series

Patch

diff --git a/drivers/phy/sunplus/phy-sunplus-usb2.c b/drivers/phy/sunplus/phy-sunplus-usb2.c
index e827b79f6d49..62d5cb5c7c9d 100644
--- a/drivers/phy/sunplus/phy-sunplus-usb2.c
+++ b/drivers/phy/sunplus/phy-sunplus-usb2.c
@@ -105,6 +105,9 @@  static int update_disc_vol(struct sp_usbphy *usbphy)
 	val = (val & ~J_DISC) | set;
 	writel(val, usbphy->phy_regs + CONFIG7);
 
+	if (!IS_ERR(otp_v))
+		kfree(otp_v);
+
 	return 0;
 }