diff options
| author | Hayzam Sherif <hayzam@gmail.com> | 2026-09-30 14:17:24 +0000 |
|---|---|---|
| committer | Mark Johnston <markj@FreeBSD.org> | 2026-09-30 15:53:51 +0000 |
| commit | 4485bfaed2145e88911bd3522d6fee5c0f8ceb39 (patch) | |
| tree | af282ba432bff221cc3fc98135db555d81217a1c /sys/arm64/linux/linux_syscalls.c | |
| parent | 8c7ce2d48abfbf9fc08dccfb469fcc687c3cd68a (diff) | |
paddr_guest2host() returns NULL when a range does not fit within guest
RAM. An unmappable queue address previously left the queue marked
allocated with ring pointers computed from the failed mapping. Check
the legacy virtqueue ring mapping before updating the queue state, and
ignore an unmappable PFN write after printing a diagnostic. This leaves
an unallocated queue unallocated and preserves an existing queue's PFN,
ring pointers, flags, and indices.
Also check the indirect descriptor table mapping before dereferencing
it, returning an error if the table is unmappable, and ignore guest
queue notifications for unallocated queues.
Reviewed by: markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D59904
Diffstat (limited to 'sys/arm64/linux/linux_syscalls.c')
0 files changed, 0 insertions, 0 deletions
