On Tue, Aug 24, 2021 at 12:28 PM Maciej Szwed <maciej.sz...@intel.com> wrote:
>
> We should call read() on RTE_INTR_HANDLE_VFIO_REQ event
> to confirm that event.

Still no review, Cc: maintainers / contributors to this code.

This looks like a fix, if so, please add a Fixes: tag.
Should this be backported to stable branches?


>
> Signed-off-by: Maciej Szwed <maciej.sz...@intel.com>
> ---
>  lib/eal/linux/eal_interrupts.c | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/lib/eal/linux/eal_interrupts.c b/lib/eal/linux/eal_interrupts.c
> index 22b3b7bcd9..dc42527344 100644
> --- a/lib/eal/linux/eal_interrupts.c
> +++ b/lib/eal/linux/eal_interrupts.c
> @@ -918,17 +918,16 @@ eal_intr_process_interrupts(struct epoll_event *events, 
> int nfds)
>                         bytes_read = sizeof(buf.timerfd_num);
>                         break;
>  #ifdef VFIO_PRESENT
> +#ifdef HAVE_VFIO_DEV_REQ_INTERFACE
> +               case RTE_INTR_HANDLE_VFIO_REQ:
> +                       call = true;

Afaiu, call should be set only if the read() call succeeds.


> +#endif
> +                       /* fall through */
>                 case RTE_INTR_HANDLE_VFIO_MSIX:
>                 case RTE_INTR_HANDLE_VFIO_MSI:
>                 case RTE_INTR_HANDLE_VFIO_LEGACY:
>                         bytes_read = sizeof(buf.vfio_intr_count);
>                         break;
> -#ifdef HAVE_VFIO_DEV_REQ_INTERFACE
> -               case RTE_INTR_HANDLE_VFIO_REQ:
> -                       bytes_read = 0;
> -                       call = true;
> -                       break;
> -#endif
>  #endif
>                 case RTE_INTR_HANDLE_VDEV:
>                 case RTE_INTR_HANDLE_EXT:
> --
> 2.27.0
>



-- 
David Marchand

Reply via email to