summaryrefslogtreecommitdiffstats
path: root/block/blk-ioc.c
diff options
context:
space:
mode:
authorMarek Marczykowski-Górecki <marmarek@invisiblethingslab.com>2023-10-16 15:13:25 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-11-20 11:52:01 +0100
commit5671bed3c0c8f1bd94e8cea43d808a51ed5c90db (patch)
tree90a7381a1f2a108f991343afb17f9cba1e5e584b /block/blk-ioc.c
parent934747e2f807b9d2b13a6a05e2970eb3537a3179 (diff)
downloadlinux-stable-5671bed3c0c8f1bd94e8cea43d808a51ed5c90db.tar.gz
linux-stable-5671bed3c0c8f1bd94e8cea43d808a51ed5c90db.tar.bz2
linux-stable-5671bed3c0c8f1bd94e8cea43d808a51ed5c90db.zip
xen-pciback: Consider INTx disabled when MSI/MSI-X is enabled
[ Upstream commit 2c269f42d0f382743ab230308b836ffe5ae9b2ae ] 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> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'block/blk-ioc.c')
0 files changed, 0 insertions, 0 deletions