linux-imx/samples
Alex Williamson 94eacb45d8 vfio/mtty: Overhaul mtty interrupt handling
[ Upstream commit 293fbc2881 ]

The mtty driver does not currently conform to the vfio SET_IRQS uAPI.
For example, it claims to support mask and unmask of INTx, but actually
does nothing.  It claims to support AUTOMASK for INTx, but doesn't.  It
fails to teardown eventfds under the full semantics specified by the
SET_IRQS ioctl.  It also fails to teardown eventfds when the device is
closed, leading to memory leaks.  It claims to support the request IRQ,
but doesn't.

Fix all these.

A side effect of this is that QEMU will now report a warning:

vfio <uuid>: Failed to set up UNMASK eventfd signaling for interrupt \
INTX-0: VFIO_DEVICE_SET_IRQS failure: Inappropriate ioctl for device

The fact is that the unmask eventfd was never supported but quietly
failed.  mtty never honored the AUTOMASK behavior, therefore there
was nothing to unmask.  QEMU is verbose about the failure, but
properly falls back to userspace unmasking.

Fixes: 9d1a546c53 ("docs: Sample driver to demonstrate how to use Mediated device framework.")
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/r/20231016224736.2575718-2-alex.williamson@redhat.com
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-10 17:16:55 +01:00
..
acrn
auxdisplay
binderfs
bpf samples/bpf: syscall_tp_user: Fix array out-of-bound access 2023-11-28 17:19:48 +00:00
configfs
connector
coresight
fanotify
fprobe
ftrace
hid
hidraw
hw_breakpoint
kdb
kfifo
kmemleak
kobject
kprobes
landlock
livepatch
mei
nitro_enclaves
pfsm
pidfd
pktgen
qmi
rpmsg
rust
seccomp
timers
trace_events
trace_printk
uhid
user_events
v4l
vfio-mdev vfio/mtty: Overhaul mtty interrupt handling 2024-01-10 17:16:55 +01:00
vfs
watch_queue
watchdog
Kconfig
Makefile