title: vfio/pci: Lock external INTx masking ops
description: In the Linux kernel, the following vulnerability has been resolved:
vfio/pci: Lock external INTx masking ops
Mask operations through config space changes to DisINTx may race INTx
configuration changes via ioctl.  Create wrappers that add locking for
paths outside of the core interrupt code.
In particular, irq_type is updated holding igate, therefore testing
is_intx() requires holding igate.  For example clearing DisINTx from
config space can otherwise race changes of the interrupt configuration.
This aligns interfaces which may trigger the INTx eventfd into two
camps, one side serialized by igate and the other only enabled while
INTx is configured.  A subsequent patch introduces synchronization for
the latter flows.
affected:
{
product: Linux
vendor: Linux
defaultStatus: unaffected
repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
versions:
version: 89e1f7d4c66d, lessThan: 3fe0ac10bd11, status: affected, versionType: git
version: 89e1f7d4c66d, lessThan: 04a4a017b9ff, status: affected, versionType: git
version: 89e1f7d4c66d, lessThan: 6fe478d855b2, status: affected, versionType: git
version: 89e1f7d4c66d, lessThan: 03505e3344b0, status: affected, versionType: git
version: 89e1f7d4c66d, lessThan: 810cd4bb5345, status: affected, versionType: git
}
{
product: Linux
vendor: Linux
defaultStatus: affected
repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
versions:
version: 3.6, status: affected
version: 0, lessThan: 3.6, status: unaffected, versionType: custom
version: 6.1.84, lessThanOrEqual: 6.1.*, status: unaffected, versionType: custom
version: 6.6.24, lessThanOrEqual: 6.6.*, status: unaffected, versionType: custom
version: 6.7.12, lessThanOrEqual: 6.7.*, status: unaffected, versionType: custom
version: 6.8.3, lessThanOrEqual: 6.8.*, status: unaffected, versionType: custom
version: 6.9-rc1, lessThanOrEqual: *, status: unaffected, versionType: original_commit_for_fix
}
