On Tue, Aug 11, 2015 at 02:16:59PM -0500, Felipe Balbi wrote:
> On Tue, Aug 11, 2015 at 10:13:40PM +0300, Dan Carpenter wrote:
> > Hello Yu Xu,
> > 
> > The patch 3d4eb9dfa3e8: "usb: gadget: mv: Add USB 3.0 device driver
> > for Marvell PXA2128 chip." from Jun 15, 2012, leads to the following
> > static checker warning:
> > 
> >     drivers/usb/gadget/udc/mv_u3d_core.c:1668 
> > mv_u3d_irq_process_tr_complete()
> >     warn: 'status' can be either negative or positive
> > 
> > drivers/usb/gadget/udc/mv_u3d_core.c
> >   1664                  /* process the req queue until an uncomplete 
> > request */
> >   1665                  list_for_each_entry_safe(curr_req, temp_req,
> >   1666                          &curr_ep->queue, queue) {
> >   1667                          status = mv_u3d_process_ep_req(u3d, i, 
> > curr_req);
> >   1668                          if (status)
> > 
> > Probably if (status < 0) was intended
> 
> I'd say a better fix would be to guarantee that mv_u3d_process_ep_req()
> only returns 0 or negative errno.

this is probably enough:

diff --git a/drivers/usb/gadget/udc/mv_u3d_core.c 
b/drivers/usb/gadget/udc/mv_u3d_core.c
index ea35a248c898..3eb599ab8f82 100644
--- a/drivers/usb/gadget/udc/mv_u3d_core.c
+++ b/drivers/usb/gadget/udc/mv_u3d_core.c
@@ -139,7 +139,7 @@ static int mv_u3d_process_ep_req(struct mv_u3d *u3d, int 
index,
                if (!curr_trb->trb_hw->ctrl.own) {
                        dev_err(u3d->dev, "%s, TRB own error!\n",
                                u3d->eps[index].name);
-                       return 1;
+                       return -EBUSY;
                }
 
                curr_trb->trb_hw->ctrl.own = 0;

-- 
balbi

Attachment: signature.asc
Description: Digital signature

Reply via email to