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