On 03.11.2021 11:24, Oleksandr Andrushchenko wrote: > On 03.11.21 11:49, Jan Beulich wrote: >> Aiui you want to prevent the guest from clearing the bit if either >> MSI or MSI-X are in use. Symmetrically, when the guest enables MSI >> or MSI-X, you will want to force the bit set (which may well be in >> a separate, future patch). > static uint32_t emulate_cmd_reg(const struct pci_dev *pdev, uint32_t cmd) > { > /* TODO: Add proper emulation for all bits of the command register. */ > > if ( (cmd & PCI_COMMAND_INTX_DISABLE) == 0 ) > { > /* Guest wants to enable INTx. It can't be enabled if MSI/MSI-X > enabled. */ > #ifdef CONFIG_HAS_PCI_MSI > if ( pdev->vpci->msi->enabled ) > cmd |= PCI_COMMAND_INTX_DISABLE; > #endif > } > > return cmd; > } > > Is this what you mean?
Something along these lines, yes. I'd omit the outer if() for clarity / brevity. Jan