From 80ad0aa6985570b2b3970edae6268500899e88a4 Mon Sep 17 00:00:00 2001 From: Arnaud Pouliquen Date: Wed, 19 Feb 2020 10:58:38 +0100 Subject: [PATCH] rpmsg: don't return error when no more buffer available but wait If no buffer is available _rpmsg_virtio_get_buffer_size returns 0. in this case "size > avail_size" is true so we leave the function without waiting buffer release. Patch consists in ignoring the test if avail_size is null. Signed-off-by: Arnaud Pouliquen --- lib/rpmsg/rpmsg_virtio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rpmsg/rpmsg_virtio.c b/lib/rpmsg/rpmsg_virtio.c index cf3ec21..1e36016 100644 --- a/lib/rpmsg/rpmsg_virtio.c +++ b/lib/rpmsg/rpmsg_virtio.c @@ -308,7 +308,7 @@ static int rpmsg_virtio_send_offchannel_raw(struct rpmsg_device *rdev, /* Lock the device to enable exclusive access to virtqueues */ metal_mutex_acquire(&rdev->lock); avail_size = _rpmsg_virtio_get_buffer_size(rvdev); - if (size > avail_size) { + if (avail_size && size > avail_size) { metal_mutex_release(&rdev->lock); return RPMSG_ERR_BUFF_SIZE; }