Commit cbfa3eff authored by Rui Miguel Silva's avatar Rui Miguel Silva Committed by Greg Kroah-Hartman
Browse files

usb: isp1760: fix qtd fill length



When trying to send bulks bigger than the biggest block size
we need to split them over several qtd. Fix this limiting the
maximum qtd size to largest block size.

Reported-by: default avatarDietmar Eggemann <dietmar.eggemann@arm.com>
Tested-by: default avatarDietmar Eggemann <dietmar.eggemann@arm.com>
Signed-off-by: default avatarRui Miguel Silva <rui.silva@linaro.org>
Link: https://lore.kernel.org/r/20210827131154.4151862-3-rui.silva@linaro.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f757f929
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1829,9 +1829,11 @@ static void packetize_urb(struct usb_hcd *hcd,
			goto cleanup;

		if (len > mem->blocks_size[ISP176x_BLOCK_NUM - 1])
			len = mem->blocks_size[ISP176x_BLOCK_NUM - 1];
			this_qtd_len = mem->blocks_size[ISP176x_BLOCK_NUM - 1];
		else
			this_qtd_len = len;

		this_qtd_len = qtd_fill(qtd, buf, len);
		this_qtd_len = qtd_fill(qtd, buf, this_qtd_len);
		list_add_tail(&qtd->qtd_list, head);

		len -= this_qtd_len;