RE: [PATCH V4 03/11] vfio/pci: Prepare for dynamic interrupt context storage

From: Tian, Kevin
Date: Fri May 05 2023 - 03:21:27 EST


> From: Chatre, Reinette <reinette.chatre@xxxxxxxxx>
> Sent: Saturday, April 29, 2023 2:24 AM
>
> Hi Kevin,
>
> On 4/27/2023 11:33 PM, Tian, Kevin wrote:
> >> From: Chatre, Reinette <reinette.chatre@xxxxxxxxx>
> >> Sent: Friday, April 28, 2023 1:36 AM
> >>
> >> @@ -55,17 +80,28 @@ static void vfio_send_intx_eventfd(void *opaque,
> >> void *unused)
> >> {
> >> struct vfio_pci_core_device *vdev = opaque;
> >>
> >> - if (likely(is_intx(vdev) && !vdev->virq_disabled))
> >> - eventfd_signal(vdev->ctx[0].trigger, 1);
> >> + if (likely(is_intx(vdev) && !vdev->virq_disabled)) {
> >> + struct vfio_pci_irq_ctx *ctx;
> >> +
> >> + ctx = vfio_irq_ctx_get(vdev, 0);
> >> + if (!ctx)
> >> + return;
> >
> > if this error happens it implies a kernel bug since the same check
> > has been done in vfio_intx_enable(). Then should be a WARN_ON().
>
> Sure. Considering that if these are triggered it may result
> in many instances, so perhaps WARN_ON_ONCE()?

yes.

>
> > ditto for other intx functions which can be called only after intx
> > is enabled.
>
> It seems the instances in this category can be identified as the places
> where the array contents is currently used without any checks.
>
> I am planning on the following changes:
>

that looks good to me