usb: gadget: f_dfu: write req->actual bytes
authorFelipe Balbi <felipe.balbi@linux.intel.com>
Fri, 10 Feb 2017 16:32:31 +0000 (19:32 +0300)
committerMarek Vasut <marex@denx.de>
Sun, 26 Feb 2017 12:24:30 +0000 (13:24 +0100)
If last packet is short, we shouldn't write req->length bytes to
non-volatile media, we should write only what's available to us, which
is held in req->actual.

Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/usb/gadget/f_dfu.c

index 26b3e6e..81929d3 100644 (file)
@@ -159,7 +159,7 @@ static void dnload_request_complete(struct usb_ep *ep, struct usb_request *req)
        int ret;
 
        ret = dfu_write(dfu_get_entity(f_dfu->altsetting), req->buf,
-                       req->length, f_dfu->blk_seq_num);
+                       req->actual, f_dfu->blk_seq_num);
        if (ret) {
                f_dfu->dfu_status = DFU_STATUS_errUNKNOWN;
                f_dfu->dfu_state = DFU_STATE_dfuERROR;