On Tue, Jun 06, 2023 at 11:19:46AM +0300, Dan Carpenter wrote: > The irq_of_parse_and_map() function returns negative error codes > but "udc->irq" is an unsigned int so the error handling doesn't work. > > Fixes: 1b9f35adb0ff ("usb: gadget: udc: Add Synopsys UDC Platform driver") > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > --- > drivers/usb/gadget/udc/snps_udc_plat.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/usb/gadget/udc/snps_udc_plat.c b/drivers/usb/gadget/udc/snps_udc_plat.c > index 0ed685db149d..37edd6c35077 100644 > --- a/drivers/usb/gadget/udc/snps_udc_plat.c > +++ b/drivers/usb/gadget/udc/snps_udc_plat.c > @@ -103,7 +103,7 @@ static int udc_plat_probe(struct platform_device *pdev) > struct device *dev = &pdev->dev; > struct resource *res; > struct udc *udc; > - int ret; > + int irq, ret; > > udc = devm_kzalloc(dev, sizeof(*udc), GFP_KERNEL); > if (!udc) > @@ -132,11 +132,12 @@ static int udc_plat_probe(struct platform_device *pdev) > > udc->phys_addr = (unsigned long)res->start; > > - udc->irq = irq_of_parse_and_map(dev->of_node, 0); > - if (udc->irq <= 0) { > + irq = irq_of_parse_and_map(dev->of_node, 0); > + if (irq <= 0) { Oops. It turns out that irq_of_parse_and_map() returns zero on error, not negatives so this patch isn't needed and probably the correct thing is to change the error check to if (!irq) { instead. regards, dan carpenter