summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYi Liu <yi.l.liu@intel.com>2025-03-24 05:00:34 -0700
committerJason Gunthorpe <jgg@nvidia.com>2025-03-28 10:07:23 -0300
commit6fc85bbbeaeae39c61d230ce279c0b0d0952d3e3 (patch)
tree151256de9875550968e098e9e59b17297d850f7f
parent41464a4628f3b15988bdc3dcd824c2e91064fc6f (diff)
iommufd: Balance veventq->num_events inc/dec
iommufd_veventq_fops_read() decrements veventq->num_events when a vevent is read out. However, the report path ony increments veventq->num_events for normal events. To be balanced, make the read path decrement num_events only for normal vevents. Fixes: e36ba5ab808e ("iommufd: Add IOMMUFD_OBJ_VEVENTQ and IOMMUFD_CMD_VEVENTQ_ALLOC") Link: https://patch.msgid.link/r/20250324120034.5940-3-yi.l.liu@intel.com Signed-off-by: Yi Liu <yi.l.liu@intel.com> Reviewed-by: Nicolin Chen <nicolinc@nvidia.com> Tested-by: Nicolin Chen <nicolinc@nvidia.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
-rw-r--r--drivers/iommu/iommufd/eventq.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/iommu/iommufd/eventq.c b/drivers/iommu/iommufd/eventq.c
index 4c43ace8c725d..f39cf07973476 100644
--- a/drivers/iommu/iommufd/eventq.c
+++ b/drivers/iommu/iommufd/eventq.c
@@ -385,7 +385,8 @@ static ssize_t iommufd_veventq_fops_read(struct file *filep, char __user *buf,
break;
}
spin_lock(&eventq->lock);
- veventq->num_events--;
+ if (!vevent_for_lost_events_header(cur))
+ veventq->num_events--;
spin_unlock(&eventq->lock);
done += cur->data_len;
kfree(cur);