Hi, All
     In the function adb_read(f_adb.c), if the transfer succeed, the
return result is always the length
set by read system call, e.g. if you read with length 512, actually
read maybe 200, but the return length is always 512.
following is the patch:

--- a/drivers/usb/gadget/f_adb.c
+++ b/drivers/usb/gadget/f_adb.c
@@ -331,6 +331,7 @@ requeue_req:

                DBG(cdev, "rx %p %d\n", req, req->actual);
                xfer = (req->actual < count) ? req->actual : count;
+               r = xfer;
                if (copy_to_user(buf, req->buf, xfer))
                        r = -EFAULT;
        } else

-- 
unsubscribe: android-kernel+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-kernel

Reply via email to