tmc-etr: Fix duplicate logs issue when use sw usb mode

If etr driver data size is smaller than the sysfs buffer size,
it will read the data from the begainning of etr buffer repeatedly
when the actual read size plus the offset is greater than etr
driver data size. Compare with etr buffer size instead of etr
driver data size to fix this issue.

Change-Id: Ic523f8c5efd8348de7be80128a96d4e1ce867b9b
Signed-off-by: Mao Jinlong <jinlmao@codeaurora.org>
This commit is contained in:
Mao Jinlong 2020-06-28 09:42:56 +08:00 • committed by Gerrit - the friendly Code Review server
commit 2cf818c255

View file

@ -351,7 +351,8 @@ static int usb_transfer_small_packet(struct qdss_request *usb_req,
drvdata->usb_req = usb_req;
req_size -= actual;
if ((drvdata->offset + actual) >= tmcdrvdata->size)
if ((drvdata->offset + actual) >=
tmcdrvdata->etr_buf->size)
drvdata->offset = 0;
else
drvdata->offset += actual;
@ -458,7 +459,7 @@ static void usb_read_work_fn(struct work_struct *work)
sg_mark_end(&usb_req->sg[i]);
if ((drvdata->offset + actual) >=
tmcdrvdata->size)
tmcdrvdata->etr_buf->size)
drvdata->offset = 0;
else
drvdata->offset += actual;