Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1797c30a authored by Kyle Yan's avatar Kyle Yan Committed by Gerrit - the friendly Code Review server
Browse files

Merge "USB: gadget: mtp: Fix OUT endpoint request length usage in read" into msm-4.8

parents 918a8ccb 96b01be5
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -573,18 +573,15 @@ static ssize_t mtp_read(struct file *fp, char __user *buf,
	struct mtp_dev *dev = fp->private_data;
	struct usb_composite_dev *cdev = dev->cdev;
	struct usb_request *req;
	ssize_t xfer, r = count;
	ssize_t r = count, xfer, len;
	int ret = 0;

	DBG(cdev, "mtp_read(%zu)\n", count);

	if (count > mtp_rx_req_len)
	len = ALIGN(count, dev->ep_out->maxpacket);
	if (len > mtp_rx_req_len)
		return -EINVAL;

	if (!IS_ALIGNED(count, dev->ep_out->maxpacket))
		DBG(cdev, "%s - count(%zu) not multiple of mtu(%d)\n", __func__,
						count, dev->ep_out->maxpacket);

	/* we will block until we're online */
	DBG(cdev, "mtp_read: waiting for online state\n");
	ret = wait_event_interruptible(dev->read_wq,
@@ -606,7 +603,7 @@ static ssize_t mtp_read(struct file *fp, char __user *buf,
requeue_req:
	/* queue a request */
	req = dev->rx_req[0];
	req->length = mtp_rx_req_len;
	req->length = len;
	dev->rx_done = 0;
	ret = usb_ep_queue(dev->ep_out, req, GFP_KERNEL);
	if (ret < 0) {