|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 08/11] x86/dpci: switch to use a GSI EOI callback
On 31.03.2021 12:33, Roger Pau Monne wrote:
> @@ -515,17 +528,44 @@ int pt_irq_create_bind(
> }
> else
> {
> + /*
> + * NB: the callback structure allocated below will never be freed
> + * once setup because it's used by the hardware domain and will
> + * never be unregistered.
> + */
> + cb = xmalloc(struct hvm_gsi_eoi_callback);
Is this comment as well as ...
> ASSERT(is_hardware_domain(d));
>
> + if ( !cb )
> + {
> + spin_unlock(&d->event_lock);
> + return -ENOMEM;
> + }
> +
> /* MSI_TRANSLATE is not supported for the hardware domain. */
> if ( pt_irq_bind->irq_type != PT_IRQ_TYPE_PCI ||
> pirq >= hvm_domain_irq(d)->nr_gsis )
> {
> spin_unlock(&d->event_lock);
> -
> + xfree(cb);
> return -EINVAL;
> }
> guest_gsi = pirq;
> +
> + cb->callback = dpci_eoi;
> + cb->data = d;
> + /*
> + * IRQ binds created for the hardware domain are never destroyed,
> + * so it's fine to not keep a reference to cb here.
> + */
> + rc = hvm_gsi_register_callback(d, guest_gsi, cb);
... the one here really true? vpci_msi_arch_update() and
vpci_msi_disable() seem to tell me otherwise (or for the former
comment, they suggest there should be un-registration somewhere).
It also doesn't seem logical to me, considering (yet to be made
work) pass-through of devices or hot-unplugged ones, at which
point Dom0 shouldn't retain IRQ bindings, I would think.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |