On 22 May 2013 19:50, Alan Stern <st...@rowland.harvard.edu> wrote:
> On Wed, 22 May 2013, Sachin Kamat wrote:
>
>> 'hcd' is dereferenced before NULL check. Move the assignment after
>> the check to avoid potential NULL pointer dereferencing error.
>
> Since the pointer in question can never be NULL, you should remove the
> check entirely instead of moving the reference.

OK.

>
> Furthermore, the reference you are moving is not a dereference, so it
> won't cause a problem even if the pointer is NULL.

Actually the dereferencing is quite obscure happening inside the nested calls.

>
>> diff --git a/drivers/usb/host/ehci-spear.c b/drivers/usb/host/ehci-spear.c
>> index f5ac4e2..326bfea 100644
>> --- a/drivers/usb/host/ehci-spear.c
>> +++ b/drivers/usb/host/ehci-spear.c
>> @@ -146,10 +146,13 @@ fail:
>>  static int spear_ehci_hcd_drv_remove(struct platform_device *pdev)
>>  {
>>       struct usb_hcd *hcd = platform_get_drvdata(pdev);
>> -     struct spear_ehci *sehci = to_spear_ehci(hcd);
>> +     struct spear_ehci *sehci;
>>
>>       if (!hcd)
>>               return 0;
>> +
>> +     sehci = to_spear_ehci(hcd);
>> +
>>       if (in_interrupt())
>>               BUG();
>
> You can remove this test also.  This routine will never be called
> in_interrupt.

OK.

I will spin a new patch with your suggested changes.
Thanks for reviewing.

-- 
With warm regards,
Sachin
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to