diff mbox series

usb: dwc3: qcom: Check for null irq pointer

Message ID 20211220101520.930658-1-jiasheng@iscas.ac.cn (mailing list archive)
State New, archived
Headers show
Series usb: dwc3: qcom: Check for null irq pointer | expand

Commit Message

Jiasheng Jiang Dec. 20, 2021, 10:15 a.m. UTC
The return value of platform_get_irq() needs to be checked.
To avoid use of null pointer in case that there is no irq.

Fixes: 2bc02355f8ba ("usb: dwc3: qcom: Add support for booting with ACPI")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
---
 drivers/usb/dwc3/dwc3-qcom.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Greg Kroah-Hartman Dec. 20, 2021, 10:44 a.m. UTC | #1
On Mon, Dec 20, 2021 at 06:15:20PM +0800, Jiasheng Jiang wrote:
> The return value of platform_get_irq() needs to be checked.
> To avoid use of null pointer in case that there is no irq.
> 
> Fixes: 2bc02355f8ba ("usb: dwc3: qcom: Add support for booting with ACPI")
> Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
> ---
>  drivers/usb/dwc3/dwc3-qcom.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c
> index 49e6ca94486d..f04fb3f2fb85 100644
> --- a/drivers/usb/dwc3/dwc3-qcom.c
> +++ b/drivers/usb/dwc3/dwc3-qcom.c
> @@ -614,6 +614,11 @@ static int dwc3_qcom_acpi_register_core(struct platform_device *pdev)
>  		qcom->acpi_pdata->dwc3_core_base_size;
>  
>  	irq = platform_get_irq(pdev_irq, 0);
> +	if (!irq) {
> +		ret = -EINVAL;

That is NOT the proper way to check the return value of this function
call.
Sergey Shtylyov Dec. 20, 2021, 11:25 a.m. UTC | #2
On 20.12.2021 13:15, Jiasheng Jiang wrote:

> The return value of platform_get_irq() needs to be checked.
> To avoid use of null pointer

   What null pointer, could you please clarify?

in case that there is no irq.
> 
> Fixes: 2bc02355f8ba ("usb: dwc3: qcom: Add support for booting with ACPI")
> Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
> ---
>   drivers/usb/dwc3/dwc3-qcom.c | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c
> index 49e6ca94486d..f04fb3f2fb85 100644
> --- a/drivers/usb/dwc3/dwc3-qcom.c
> +++ b/drivers/usb/dwc3/dwc3-qcom.c
> @@ -614,6 +614,11 @@ static int dwc3_qcom_acpi_register_core(struct platform_device *pdev)
>   		qcom->acpi_pdata->dwc3_core_base_size;
>   
>   	irq = platform_get_irq(pdev_irq, 0);
> +	if (!irq) {

    This is totally wrong! That function returns negative error codes in case 
of failure.

> +		ret = -EINVAL;
> +		goto out;
> +	}
> +
>   	child_res[1].flags = IORESOURCE_IRQ;
>   	child_res[1].start = child_res[1].end = irq;

MBR, Sergey
Sergey Shtylyov Dec. 20, 2021, 11:48 a.m. UTC | #3
On 20.12.2021 14:25, Sergey Shtylyov wrote:

>> The return value of platform_get_irq() needs to be checked.
>> To avoid use of null pointer
> 
>    What null pointer, could you please clarify?
> 
>> in case that there is no irq.
>>
>> Fixes: 2bc02355f8ba ("usb: dwc3: qcom: Add support for booting with ACPI")
>> Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>

    This has already been addressed by this (yet unmerged) patch:

https://marc.info/?l=linux-usb&m=162854066430255

MBR, Sergey
Greg Kroah-Hartman Dec. 20, 2021, 12:14 p.m. UTC | #4
On Mon, Dec 20, 2021 at 02:48:12PM +0300, Sergey Shtylyov wrote:
> On 20.12.2021 14:25, Sergey Shtylyov wrote:
> 
> > > The return value of platform_get_irq() needs to be checked.
> > > To avoid use of null pointer
> > 
> >    What null pointer, could you please clarify?
> > 
> > > in case that there is no irq.
> > > 
> > > Fixes: 2bc02355f8ba ("usb: dwc3: qcom: Add support for booting with ACPI")
> > > Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
> 
>    This has already been addressed by this (yet unmerged) patch:
> 
> https://marc.info/?l=linux-usb&m=162854066430255

Why not wait until that patch is actually merged?  Otherwise all of this
work is moot.

greg k-h
Sergey Shtylyov Dec. 20, 2021, 12:22 p.m. UTC | #5
On 20.12.2021 15:14, Greg KH wrote:

[...]
>>>> The return value of platform_get_irq() needs to be checked.
>>>> To avoid use of null pointer
>>>
>>>     What null pointer, could you please clarify?
>>>
>>>> in case that there is no irq.
>>>>
>>>> Fixes: 2bc02355f8ba ("usb: dwc3: qcom: Add support for booting with ACPI")
>>>> Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
>>
>>     This has already been addressed by this (yet unmerged) patch:
>>
>> https://marc.info/?l=linux-usb&m=162854066430255

> Why not wait until that patch is actually merged?  Otherwise all of this
> work is moot.

    Wait, it has been merged back in August. Then this patch is just 
outdated... :-)

> greg k-h

MBR, Sergey
diff mbox series

Patch

diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c
index 49e6ca94486d..f04fb3f2fb85 100644
--- a/drivers/usb/dwc3/dwc3-qcom.c
+++ b/drivers/usb/dwc3/dwc3-qcom.c
@@ -614,6 +614,11 @@  static int dwc3_qcom_acpi_register_core(struct platform_device *pdev)
 		qcom->acpi_pdata->dwc3_core_base_size;
 
 	irq = platform_get_irq(pdev_irq, 0);
+	if (!irq) {
+		ret = -EINVAL;
+		goto out;
+	}
+
 	child_res[1].flags = IORESOURCE_IRQ;
 	child_res[1].start = child_res[1].end = irq;