diff --git a/drivers/rptun/rptun.c b/drivers/rptun/rptun.c index 3a0bf76dc7e..61fc4782ad3 100644 --- a/drivers/rptun/rptun.c +++ b/drivers/rptun/rptun.c @@ -1262,15 +1262,15 @@ int rptun_panic(FAR const char *cpuname) int rptun_buffer_nused(FAR struct rpmsg_virtio_device *rvdev, bool rx) { FAR struct virtqueue *vq = rx ? rvdev->rvq : rvdev->svq; + uint16_t nused = vq->vq_ring.avail->idx - vq->vq_ring.used->idx; if ((rpmsg_virtio_get_role(rvdev) == RPMSG_MASTER) ^ rx) { - return vq->vq_ring.avail->idx - vq->vq_ring.used->idx; + return nused; } else { - return vq->vq_nentries - - (vq->vq_ring.avail->idx - vq->vq_ring.used->idx); + return vq->vq_nentries - nused; } }