]> xenbits.xensource.com Git - people/tklengyel/xen.git/commit
x86/msi: clear initial MSI-X state on boot
authorMarek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Tue, 25 Apr 2023 10:16:17 +0000 (12:16 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 25 Apr 2023 10:16:17 +0000 (12:16 +0200)
commit913751d7af6e78d65c1e2adf4887193c827f0c5e
tree8d72bac4384a63bc3dddd238bf38e60cf3fd7af7
parentc6c8c0808f908911a38bc330cdc7a26ac4bf6d51
x86/msi: clear initial MSI-X state on boot

Some firmware/devices are found to not reset MSI-X properly, leaving
MASKALL set. Jason reports on his machine MASKALL persists through a
warm reboot, but is cleared on cold boot. Xen relies on initial state
being MASKALL clear. Especially, pci_reset_msix_state() assumes if
MASKALL is set, it was Xen setting it due to msix->host_maskall or
msix->guest_maskall. Clearing just MASKALL is risky if ENABLE is set,
so clear them both.

Reported-by: Jason Andryuk <jandryuk@gmail.com>
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Tested-by: Jason Andryuk <jandryuk@gmail.com>
xen/drivers/passthrough/msi.c