mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 23:33:54 -06:00
xen/MSI-X: latch MSI-X table writes
The remaining log message in pci_msix_write() is wrong, as there guest behavior may only appear to be wrong: For one, the old logic didn't take the mask-all bit into account. And then this shouldn't depend on host device state (i.e. the host may have masked the entry without the guest having done so). Plus these writes shouldn't be dropped even when an entry gets unmasked. Instead, if they can't be made take effect right away, they should take effect on the next unmasking or enabling operation - the specification explicitly describes such caching behavior. Signed-off-by: Jan Beulich <jbeulich@suse.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
This commit is contained in:
parent
c3626ca7df
commit
f0ada3608a
3 changed files with 32 additions and 48 deletions
|
@ -1499,6 +1499,8 @@ static int xen_pt_msixctrl_reg_write(XenPCIPassthroughState *s,
|
|||
xen_pt_msix_disable(s);
|
||||
}
|
||||
|
||||
s->msix->maskall = *val & PCI_MSIX_FLAGS_MASKALL;
|
||||
|
||||
debug_msix_enabled_old = s->msix->enabled;
|
||||
s->msix->enabled = !!(*val & PCI_MSIX_FLAGS_ENABLE);
|
||||
if (s->msix->enabled != debug_msix_enabled_old) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue