On Wed, Aug 25, 2021 at 05:55:09PM +0200, Jan Beulich wrote:
On 25.08.2021 17:47, Marek Marczykowski-Górecki wrote:
If so, I guess the issue is the kernel trying to write directly, instead of via some hypercall, right?
Indeed. Or to be precise - the kernel isn't supposed to be "writing" this at all. It is supposed to make hypercalls which may result in such writes. Such "mask everything" functionality imo is the job of the hypervisor anyway when talking about PV environments; HVM is a different thing here.
Ok, I dug a bit and found why it was working before: there is pci_mask_ignore_mask variable, that is set to 1 for Xen PV (and only then). This bypassed __pci_msi{x,}_desc_mask_irq(), but does not bypass the new msix_mask_all(). Adding that check back fixes the issue - no crash, the device works, although the driver doesn't seem to enable MSI/MSI-X (but that wasn't the case before either).