2015-12-06 13:48:27

by Geyslan G. Bem

[permalink] [raw]
Subject: [PATCH] usb: host: iounmap before return

This patch fixes a 'quirk_usb_handoff_xhci()' branch return that was not unmapping correctly.

Coccinelle: scripts/coccinelle/free/iounmap.cocci

Signed-off-by: Geyslan G. Bem <[email protected]>
---
drivers/usb/host/pci-quirks.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
index f940056..64150dd 100644
--- a/drivers/usb/host/pci-quirks.c
+++ b/drivers/usb/host/pci-quirks.c
@@ -990,7 +990,7 @@ static void quirk_usb_handoff_xhci(struct pci_dev *pdev)
/* We're reading garbage from the controller */
dev_warn(&pdev->dev,
"xHCI controller failing to respond");
- return;
+ goto out;
}

if (!ext_cap_offset)
@@ -1062,6 +1062,7 @@ hc_init:
XHCI_MAX_HALT_USEC, val);
}

+out:
iounmap(base);
}

--
2.6.3


2015-12-07 09:31:00

by Lu Baolu

[permalink] [raw]
Subject: Re: [PATCH] usb: host: iounmap before return



On 12/06/2015 09:47 PM, Geyslan G. Bem wrote:
> This patch fixes a 'quirk_usb_handoff_xhci()' branch return that was not unmapping correctly.
>
> Coccinelle: scripts/coccinelle/free/iounmap.cocci
>
> Signed-off-by: Geyslan G. Bem <[email protected]>
> ---
> drivers/usb/host/pci-quirks.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
> index f940056..64150dd 100644
> --- a/drivers/usb/host/pci-quirks.c
> +++ b/drivers/usb/host/pci-quirks.c
> @@ -990,7 +990,7 @@ static void quirk_usb_handoff_xhci(struct pci_dev *pdev)
> /* We're reading garbage from the controller */
> dev_warn(&pdev->dev,
> "xHCI controller failing to respond");
> - return;
> + goto out;

If "out" is only used here, why not iounmap and return directly here?

> }
>
> if (!ext_cap_offset)
> @@ -1062,6 +1062,7 @@ hc_init:
> XHCI_MAX_HALT_USEC, val);
> }
>
> +out:
> iounmap(base);
> }
>

2015-12-07 10:26:21

by Geyslan G. Bem

[permalink] [raw]
Subject: Re: [PATCH] usb: host: iounmap before return

2015-12-07 6:30 GMT-03:00 Lu Baolu <[email protected]>:
>
>
> On 12/06/2015 09:47 PM, Geyslan G. Bem wrote:
>> This patch fixes a 'quirk_usb_handoff_xhci()' branch return that was not unmapping correctly.
>>
>> Coccinelle: scripts/coccinelle/free/iounmap.cocci
>>
>> Signed-off-by: Geyslan G. Bem <[email protected]>
>> ---
>> drivers/usb/host/pci-quirks.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
>> index f940056..64150dd 100644
>> --- a/drivers/usb/host/pci-quirks.c
>> +++ b/drivers/usb/host/pci-quirks.c
>> @@ -990,7 +990,7 @@ static void quirk_usb_handoff_xhci(struct pci_dev *pdev)
>> /* We're reading garbage from the controller */
>> dev_warn(&pdev->dev,
>> "xHCI controller failing to respond");
>> - return;
>> + goto out;
>
> If "out" is only used here, why not iounmap and return directly here?
Could be directly. I just think that code recurrence can make things
complicated in future. What do you think?

Ah, seems that this patch is not aligned with linux-next. I'll make a
new one soon.

>
>> }
>>
>> if (!ext_cap_offset)
>> @@ -1062,6 +1062,7 @@ hc_init:
>> XHCI_MAX_HALT_USEC, val);
>> }
>>
>> +out:
>> iounmap(base);
>> }
>>
>



--
Regards,

Geyslan G. Bem
hackingbits.com

2015-12-07 11:37:30

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: [PATCH] usb: host: iounmap before return

Hello.

On 12/07/2015 12:30 PM, Lu Baolu wrote:

>> This patch fixes a 'quirk_usb_handoff_xhci()' branch return that was not unmapping correctly.
>>
>> Coccinelle: scripts/coccinelle/free/iounmap.cocci
>>
>> Signed-off-by: Geyslan G. Bem <[email protected]>
>> ---
>> drivers/usb/host/pci-quirks.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
>> index f940056..64150dd 100644
>> --- a/drivers/usb/host/pci-quirks.c
>> +++ b/drivers/usb/host/pci-quirks.c
>> @@ -990,7 +990,7 @@ static void quirk_usb_handoff_xhci(struct pci_dev *pdev)
>> /* We're reading garbage from the controller */
>> dev_warn(&pdev->dev,
>> "xHCI controller failing to respond");
>> - return;
>> + goto out;
>
> If "out" is only used here, why not iounmap and return directly here?

Why repeat the code? Nah, bad idea.

>> }
>>
>> if (!ext_cap_offset)
>> @@ -1062,6 +1062,7 @@ hc_init:
>> XHCI_MAX_HALT_USEC, val);
>> }
>>
>> +out:
>> iounmap(base);
>> }
>>

MBR, Sergei

2015-12-07 23:40:01

by Geyslan G. Bem

[permalink] [raw]
Subject: Re: [PATCH] usb: host: iounmap before return

2015-12-07 8:37 GMT-03:00 Sergei Shtylyov <[email protected]>:
> Hello.
>
> On 12/07/2015 12:30 PM, Lu Baolu wrote:
>
>>> This patch fixes a 'quirk_usb_handoff_xhci()' branch return that was not
>>> unmapping correctly.
>>>
>>> Coccinelle: scripts/coccinelle/free/iounmap.cocci
>>>
>>> Signed-off-by: Geyslan G. Bem <[email protected]>
>>> ---
>>> drivers/usb/host/pci-quirks.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/usb/host/pci-quirks.c
>>> b/drivers/usb/host/pci-quirks.c
>>> index f940056..64150dd 100644
>>> --- a/drivers/usb/host/pci-quirks.c
>>> +++ b/drivers/usb/host/pci-quirks.c
>>> @@ -990,7 +990,7 @@ static void quirk_usb_handoff_xhci(struct pci_dev
>>> *pdev)
>>> /* We're reading garbage from the controller */
>>> dev_warn(&pdev->dev,
>>> "xHCI controller failing to respond");
>>> - return;
>>> + goto out;
>>
>>
>> If "out" is only used here, why not iounmap and return directly here?
>
>
> Why repeat the code? Nah, bad idea.
>
>>> }
>>>
>>> if (!ext_cap_offset)
>>> @@ -1062,6 +1062,7 @@ hc_init:
>>> XHCI_MAX_HALT_USEC, val);
>>> }
>>>
>>> +out:
>>> iounmap(base);
>>> }
>>>
>
> MBR, Sergei
>

Look for:
[PATCH v2] usb: host: iounmap before return


--
Regards,

Geyslan G. Bem
hackingbits.com