Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jun 2022 19:12:02 GMT
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: b6f615255d8b - main - uhid(4): Don't read-ahead from the USB IN endpoint.
Message-ID:  <202206231912.25NJC2uj096598@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by hselasky:

URL: https://cgit.FreeBSD.org/src/commit/?id=b6f615255d8bcdf40604005b11998eee86872364

commit b6f615255d8bcdf40604005b11998eee86872364
Author:     Hans Petter Selasky <hselasky@FreeBSD.org>
AuthorDate: 2022-06-23 17:39:21 +0000
Commit:     Hans Petter Selasky <hselasky@FreeBSD.org>
CommitDate: 2022-06-23 19:11:24 +0000

    uhid(4): Don't read-ahead from the USB IN endpoint.
    
    This avoids an issue where IN endpoint data received from the device right
    before the file handle is closed, gets lost.
    
    PR:             263995
    MFC after:      1 week
    Sponsored by:   NVIDIA Networking
---
 sys/dev/usb/input/uhid.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/sys/dev/usb/input/uhid.c b/sys/dev/usb/input/uhid.c
index d795e8fa6bbc..42cde9e2d7ef 100644
--- a/sys/dev/usb/input/uhid.c
+++ b/sys/dev/usb/input/uhid.c
@@ -218,6 +218,12 @@ uhid_intr_read_callback(struct usb_xfer *xfer, usb_error_t error)
 				actlen = sc->sc_isize;
 			usb_fifo_put_data(sc->sc_fifo.fp[USB_FIFO_RX], pc,
 			    0, actlen, 1);
+
+			/*
+			 * Do not do read-ahead, because this may lead
+			 * to data loss!
+			 */
+			return;
 		} else {
 			/* ignore it */
 			DPRINTF("ignored transfer, %d bytes\n", actlen);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202206231912.25NJC2uj096598>