Compared with other drivers, the "ret" should be nagative and returned. But in vhci_hdc, it always return 0; I dont't use the driver, and I'm not familiar with the code. Hope the patch is helpful. Thanks Signed-off-by: Shan Wei <shanwei at cn.fujitsu.com> --- drivers/staging/usbip/vhci_hcd.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/usbip/vhci_hcd.c b/drivers/staging/usbip/vhci_hcd.c index f69ca34..48c2584 100644 --- a/drivers/staging/usbip/vhci_hcd.c +++ b/drivers/staging/usbip/vhci_hcd.c @@ -594,7 +594,7 @@ static int vhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, if (type != PIPE_CONTROL || !ctrlreq) { dev_err(dev, "invalid request to devnum 0\n"); - ret = EINVAL; + ret = -EINVAL; goto no_need_xmit; } @@ -653,7 +653,7 @@ no_need_unlink: usb_hcd_giveback_urb(vhci_to_hcd(the_controller), urb, urb->status); - return 0; + return ret; } /* -- 1.6.0.4