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: Dietmar Eggemann <dietmar.eggemann@arm.com> Tested-by: Dietmar Eggemann <dietmar.eggemann@arm.com> Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org> Link: https://lore.kernel.org/r/20210827131154.4151862-3-rui.silva@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
f757f9291f
Коммит
cbfa3effdf
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче