[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] vpci/msix: exit early if MSI-X is disabled
On 01.12.2020 18:40, Roger Pau Monne wrote: > Do not attempt to mask an MSI-X entry if MSI-X is not enabled. Else it > will lead to hitting the following assert on debug builds: > > (XEN) Panic on CPU 13: > (XEN) Assertion 'entry->arch.pirq != INVALID_PIRQ' failed at vmsi.c:843 Since the line number is only of limited use, I'd like to see the function name (vpci_msix_arch_mask_entry()) also added here; easily done while committing, if the question further down can be resolved without code change. > --- a/xen/drivers/vpci/msix.c > +++ b/xen/drivers/vpci/msix.c > @@ -357,7 +357,11 @@ static int msix_write(struct vcpu *v, unsigned long > addr, unsigned int len, > * so that it picks the new state. > */ > entry->masked = new_masked; > - if ( !new_masked && msix->enabled && !msix->masked && entry->updated > ) > + > + if ( !msix->enabled ) > + break; > + > + if ( !new_masked && !msix->masked && entry->updated ) > { > /* > * If MSI-X is enabled, the function mask is not active, the > entry What about a "disabled" -> "enabled-but-masked" transition? This, afaict, similarly won't trigger setting up of entries from control_write(), and hence I'd expect the ASSERT() to similarly trigger when subsequently an entry's mask bit gets altered. I'd also be fine making this further adjustment, if you agree, but the one thing I haven't been able to fully convince myself of is that there's then still no need to set ->updated to true. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |