Re: [PATCH 3/4] usb: gadget: net2280: print error in ep_ops error paths

2015-02-27 Thread Felipe Balbi
Hi,

On Mon, Feb 02, 2015 at 10:55:25AM +0100, Mian Yousaf Kaukab wrote:
> @@ -465,13 +484,18 @@ static struct usb_request
>   struct net2280_ep   *ep;
>   struct net2280_request  *req;
>  
> - if (!_ep)
> + if (!_ep) {
> + pr_err("%s: Invalid ep\n", __func__);
>   return NULL;
> + }
>   ep = container_of(_ep, struct net2280_ep, ep);
>  
>   req = kzalloc(sizeof(*req), gfp_flags);
> - if (!req)
> + if (!req) {
> + dev_err(&ep->dev->pdev->dev,
> + "%s: Unable to allocate memory for req\n", __func__);

we don't really need this message. I'll drop it myself.

-- 
balbi


signature.asc
Description: Digital signature


[PATCH 3/4] usb: gadget: net2280: print error in ep_ops error paths

2015-02-02 Thread Mian Yousaf Kaukab
Hopefully, these prints will help localize the problems faster.

Signed-off-by: Mian Yousaf Kaukab 
---
 drivers/usb/gadget/udc/net2280.c | 174 ---
 1 file changed, 126 insertions(+), 48 deletions(-)

diff --git a/drivers/usb/gadget/udc/net2280.c b/drivers/usb/gadget/udc/net2280.c
index d51430f..510a0e0 100644
--- a/drivers/usb/gadget/udc/net2280.c
+++ b/drivers/usb/gadget/udc/net2280.c
@@ -145,31 +145,44 @@ net2280_enable(struct usb_ep *_ep, const struct 
usb_endpoint_descriptor *desc)
u32 max, tmp;
unsigned long   flags;
static const u32 ep_key[9] = { 1, 0, 1, 0, 1, 1, 0, 1, 0 };
+   int ret = 0;
 
ep = container_of(_ep, struct net2280_ep, ep);
if (!_ep || !desc || ep->desc || _ep->name == ep0name ||
-   desc->bDescriptorType != USB_DT_ENDPOINT)
+   desc->bDescriptorType != USB_DT_ENDPOINT) {
+   pr_err("%s: failed at line=%d\n", __func__, __LINE__);
return -EINVAL;
+   }
dev = ep->dev;
-   if (!dev->driver || dev->gadget.speed == USB_SPEED_UNKNOWN)
-   return -ESHUTDOWN;
+   if (!dev->driver || dev->gadget.speed == USB_SPEED_UNKNOWN) {
+   ret = -ESHUTDOWN;
+   goto print_err;
+   }
 
/* erratum 0119 workaround ties up an endpoint number */
-   if ((desc->bEndpointAddress & 0x0f) == EP_DONTUSE)
-   return -EDOM;
+   if ((desc->bEndpointAddress & 0x0f) == EP_DONTUSE) {
+   ret = -EDOM;
+   goto print_err;
+   }
 
if (dev->quirks & PLX_SUPERSPEED) {
-   if ((desc->bEndpointAddress & 0x0f) >= 0x0c)
-   return -EDOM;
+   if ((desc->bEndpointAddress & 0x0f) >= 0x0c) {
+   ret = -EDOM;
+   goto print_err;
+   }
ep->is_in = !!usb_endpoint_dir_in(desc);
-   if (dev->enhanced_mode && ep->is_in && ep_key[ep->num])
-   return -EINVAL;
+   if (dev->enhanced_mode && ep->is_in && ep_key[ep->num]) {
+   ret = -EINVAL;
+   goto print_err;
+   }
}
 
/* sanity check ep-e/ep-f since their fifos are small */
max = usb_endpoint_maxp(desc) & 0x1fff;
-   if (ep->num > 4 && max > 64 && (dev->quirks & PLX_LEGACY))
-   return -ERANGE;
+   if (ep->num > 4 && max > 64 && (dev->quirks & PLX_LEGACY)) {
+   ret = -ERANGE;
+   goto print_err;
+   }
 
spin_lock_irqsave(&dev->lock, flags);
_ep->maxpacket = max & 0x7ff;
@@ -199,7 +212,8 @@ net2280_enable(struct usb_ep *_ep, const struct 
usb_endpoint_descriptor *desc)
(dev->gadget.speed == USB_SPEED_HIGH && max != 512) ||
(dev->gadget.speed == USB_SPEED_FULL && max > 64)) {
spin_unlock_irqrestore(&dev->lock, flags);
-   return -ERANGE;
+   ret = -ERANGE;
+   goto print_err;
}
}
ep->is_iso = (tmp == USB_ENDPOINT_XFER_ISOC);
@@ -278,7 +292,11 @@ net2280_enable(struct usb_ep *_ep, const struct 
usb_endpoint_descriptor *desc)
 
/* pci writes may still be posted */
spin_unlock_irqrestore(&dev->lock, flags);
-   return 0;
+   return ret;
+
+print_err:
+   dev_err(&ep->dev->pdev->dev, "%s: error=%d\n", __func__, ret);
+   return ret;
 }
 
 static int handshake(u32 __iomem *ptr, u32 mask, u32 done, int usec)
@@ -433,9 +451,10 @@ static int net2280_disable(struct usb_ep *_ep)
unsigned long   flags;
 
ep = container_of(_ep, struct net2280_ep, ep);
-   if (!_ep || !ep->desc || _ep->name == ep0name)
+   if (!_ep || !ep->desc || _ep->name == ep0name) {
+   pr_err("%s: Invalid ep=%p or ep->desc\n", __func__, _ep);
return -EINVAL;
-
+   }
spin_lock_irqsave(&ep->dev->lock, flags);
nuke(ep);
 
@@ -465,13 +484,18 @@ static struct usb_request
struct net2280_ep   *ep;
struct net2280_request  *req;
 
-   if (!_ep)
+   if (!_ep) {
+   pr_err("%s: Invalid ep\n", __func__);
return NULL;
+   }
ep = container_of(_ep, struct net2280_ep, ep);
 
req = kzalloc(sizeof(*req), gfp_flags);
-   if (!req)
+   if (!req) {
+   dev_err(&ep->dev->pdev->dev,
+   "%s: Unable to allocate memory for req\n", __func__);
return NULL;
+   }
 
INIT_LIST_HEAD(&req->queue);
 
@@ -482,6 +506,9 @@ static struct usb_request
td = pci_pool_alloc(ep->dev->requests, gfp_flags,
&req->td_dma);
if (!td) {
+   dev_err(&ep->dev->pdev->dev,
+   "%s: Un