misc/rpmsgdev: fix block mode read/write bug in rpmsgdev

Rpmsg dev server always open the real char device with nonblock mode,
so let client try to read/wrtie the read device every read/write
operation.

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
This commit is contained in:
Bowen Wang
2024-07-12 19:33:41 +08:00
committed by Xiang Xiao
parent 0647b49990
commit 6ea3dcace4
2 changed files with 61 additions and 68 deletions
+8 -3
View File
@@ -272,11 +272,16 @@ static int rpmsgdev_write_handler(FAR struct rpmsg_endpoint *ept,
written += ret;
}
if (msg->header.cookie != 0)
if (written != 0)
{
msg->header.result = ret < 0 ? ret : written;
rpmsg_send(ept, msg, sizeof(*msg) - 1);
msg->header.result = written;
}
else
{
msg->header.result = ret;
}
rpmsg_send(ept, msg, sizeof(*msg) - 1);
return 0;
}