On Wed, May 13, 2026 at 10:38:32AM -0700, Stanislav Kinsburskii wrote:
> On Wed, May 13, 2026 at 12:14:49PM +0000, Anirudh Rayabharam wrote:
> > On Thu, May 07, 2026 at 03:43:43PM +0000, Stanislav Kinsburskii wrote:
> > > In mshv_irqfd_assign(), the level-triggered validation for resample
> > > irqfds checks irqfd_lapic_irq.lapic_control.level_triggered before
> > > mshv_irqfd_update() has populated the field. Since the irqfd struct is
> > > zero-allocated, level_triggered is always 0 at that point, causing the
> > > check to always reject resample irqfds with -EINVAL. This makes
> > > level-triggered interrupt resampling — used to avoid interrupt storms
> > > with assigned devices — completely non-functional.
> > 
> > What bugs would this manifest as? Why haven't we seen any such bugs so
> > far?
> > 
> 
> This patch fixes a logical error.
> Whtout the change this hunk always fails:
> 
>         if (args->flags & BIT(MSHV_IRQFD_BIT_RESAMPLE) &&
>             !irqfd->irqfd_lapic_irq.lapic_control.level_triggered) {
> 
> and the reason we never seen it as that we never used
> register_irqfd_with_resample() function of the mshv crate.

I see.

Reviewed-by: Anirudh Rayabharam (Microsoft) <[email protected]>


Reply via email to