rptun: handle uint16_t overflow
Signed-off-by: ligd <liguiding1@xiaomi.com>
This commit is contained in:
parent
e368ce6c07
commit
c2c1358fc7
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user