|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 1/3] x86/vmx: fix posted interrupts usage of msi_desc->msg field
On Tue, Mar 11, 2025 at 02:10:04PM +0100, Jan Beulich wrote:
> On 11.03.2025 13:06, Roger Pau Monne wrote:
> > --- a/xen/arch/x86/hvm/vmx/vmx.c
> > +++ b/xen/arch/x86/hvm/vmx/vmx.c
> > @@ -396,6 +396,13 @@ static int cf_check vmx_pi_update_irte(const struct
> > vcpu *v,
> > const struct pi_desc *pi_desc = v ? &v->arch.hvm.vmx.pi_desc : NULL;
> > struct irq_desc *desc;
> > struct msi_desc *msi_desc;
> > + /*
> > + * vmx_pi_update_irte() relies on the IRTE already being setup, and
> > just
> > + * updates the guest vector, but not the other IRTE fields. As such
> > the
> > + * contents of msg are not consumed by iommu_update_ire_from_msi().
> > Even
> > + * if not consumed, zero the contents to avoid possible stack leaks.
> > + */
> > + struct msi_msg msg = {};
>
> What the comment says is true only when pi_desc != NULL. As can be seen in
> context above, it can very well be NULL here, though (which isn't to say
> that I'm convinced the NULL case is handled correctly here). I'd view it as
> more safe anyway if you set msg from msi_desc->msg.
Indeed that's likely better. I'm also unsure the teardown is correct
(or needed), but I didn't want to deal with that right now.
Thanks, Roger.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |