diff options
author | Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> | 2023-10-16 15:13:25 +0200 |
---|---|---|
committer | Juergen Gross <jgross@suse.com> | 2023-10-16 15:20:31 +0200 |
commit | 2c269f42d0f382743ab230308b836ffe5ae9b2ae (patch) | |
tree | 7608a31e6b3b56b653fc0f417cc6bf83ba9b71b0 /CREDITS | |
parent | f0d7db7b33243d2aeeff14dbdde4ccc0687ef257 (diff) |
xen-pciback: Consider INTx disabled when MSI/MSI-X is enabled
Linux enables MSI-X before disabling INTx, but keeps MSI-X masked until
the table is filled. Then it disables INTx just before clearing MASKALL
bit. Currently this approach is rejected by xen-pciback.
According to the PCIe spec, device cannot use INTx when MSI/MSI-X is
enabled (in other words: enabling MSI/MSI-X implicitly disables INTx).
Change the logic to consider INTx disabled if MSI/MSI-X is enabled. This
applies to three places:
- checking currently enabled interrupts type,
- transition to MSI/MSI-X - where INTx would be implicitly disabled,
- clearing INTx disable bit - which can be allowed even if MSI/MSI-X is
enabled, as device should consider INTx disabled anyway in that case
Fixes: 5e29500eba2a ("xen-pciback: Allow setting PCI_MSIX_FLAGS_MASKALL too")
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Acked-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/20231016131348.1734721-1-marmarek@invisiblethingslab.com
Signed-off-by: Juergen Gross <jgross@suse.com>
Diffstat (limited to 'CREDITS')
0 files changed, 0 insertions, 0 deletions