[PATCH v2 2/5] um: virtio: fix handling of messages without payload

Johannes Berg johannes at sipsolutions.net
Tue Dec 15 04:52:22 EST 2020


From: Johannes Berg <johannes.berg at intel.com>

If we have a message without payload, we call full_read() with
len set to 0, which causes it to return -ECONNRESET. Catch this
case and explicitly return 0 for it so we can actually use the
zero-size config-changed message.

Signed-off-by: Johannes Berg <johannes.berg at intel.com>
---
 arch/um/drivers/virtio_uml.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/um/drivers/virtio_uml.c b/arch/um/drivers/virtio_uml.c
index ead9a1aea192..030bef37d6d4 100644
--- a/arch/um/drivers/virtio_uml.c
+++ b/arch/um/drivers/virtio_uml.c
@@ -97,6 +97,9 @@ static int full_read(int fd, void *buf, int len, bool abortable)
 {
 	int rc;
 
+	if (!len)
+		return 0;
+
 	do {
 		rc = os_read_file(fd, buf, len);
 		if (rc > 0) {
-- 
2.26.2




More information about the linux-um mailing list