Looks good to me.
Acked-by: David Hendricks david.hendricks@gmail.com
On Wed, May 4, 2016 at 4:37 AM, Nico Huber nico.huber@secunet.com wrote:
We didn't check the total number of queued transfers in the inner most loop. Up to DEDIPROG_ASYNC_TRANSFERS - 1 invalid transfers could be queued therefore. So add another check on the total number.
Signed-off-by: Nico Huber nico.huber@secunet.com
dediprog.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dediprog.c b/dediprog.c index b7276e5..6f82772 100644 --- a/dediprog.c +++ b/dediprog.c @@ -462,7 +462,9 @@ static int dediprog_spi_bulk_read(struct flashctx *flash, uint8_t *buf, unsigned
/* Now transfer requested chunks using libusb's asynchronous
interface. */ while (!status.error && (status.queued_idx < count)) {
while ((status.queued_idx - status.finished_idx) <
DEDIPROG_ASYNC_TRANSFERS) {
while ((status.queued_idx < count) &&
(status.queued_idx - status.finished_idx) <
DEDIPROG_ASYNC_TRANSFERS)
{ transfer = transfers[status.queued_idx %
DEDIPROG_ASYNC_TRANSFERS]; libusb_fill_bulk_transfer(transfer, dediprog_handle, 0x80 | dediprog_in_endpoint, (unsigned char *)buf + status.queued_idx * chunksize, chunksize, -- 2.7.0
flashrom mailing list flashrom@flashrom.org https://www.flashrom.org/mailman/listinfo/flashrom