On Thu, 7 Nov 2013, Dan Carpenter wrote:

> There is a bug in ehci_msm_probe() where we do:
> 
>       hcd->irq = platform_get_irq(pdev, 0);
>       if (hcd->irq < 0) {
> 
> The problem is that hcd->irq is unsigned so the error handling doesn't
> work.  I have made it signed.
> 
> Signed-off-by: Dan Carpenter <[email protected]>
> 
> diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
> index b8aba19..95be4a0 100644
> --- a/include/linux/usb/hcd.h
> +++ b/include/linux/usb/hcd.h
> @@ -143,7 +143,7 @@ struct usb_hcd {
>       unsigned                has_tt:1;       /* Integrated TT in root hub */
>       unsigned                amd_resume_bug:1; /* AMD remote wakeup quirk */
>  
> -     unsigned int            irq;            /* irq allocated */
> +     int                     irq;            /* irq allocated */
>       void __iomem            *regs;          /* device memory/io */
>       resource_size_t         rsrc_start;     /* memory/io resource start */
>       resource_size_t         rsrc_len;       /* memory/io resource length */

The .irq member of struct pci_dev is also unsigned int.  I suspect we 
shouldn't break with tradition.  Besides, if you're going to change 
this then you really ought to change the second parameter of 
usb_hcd_request_irqs().

Why not simply fix ehci_msm_probe() instead?  And while you're at it, 
do the same thing for ehci_hcd_tilegx_drv_probe() and 
ohci_hcd_tilegx_drv_probe().

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to