Re: [PATCH v3 1/2] x86/domctl: don't imply I/O port permissions from I/O port mapping
Oleksii Kurochko <[email protected]>
| Newsgroups | org.xenproject.lists.xen-devel |
|---|---|
| Message-ID | <[email protected]> |
On 6/30/26 3:54 PM, Jan Beulich wrote:
> Rather than granting permissions when mapping (an operation that DM-s are
> allowed to carry out, while they can't invoke ioport-permission), check
> whether permissions actually were granted when adding a mapping. This then
> also allows relaxing the necessary locking.
>
> While no longer granting permissions upon mapping is "only" at risk of
> breaking guests, no longer revoking permissions upon unmapping strictly
> requires callers to additionally invoke XEN_DOMCTL_ioport_permission. Or
> else a security issue would arise. In-tree code already does so.
>
> While there switch to using %pd in the two log messages.
>
> Fixes: 192c4dabc344 ("domctl and p2m changes for PCI passthru")
> Signed-off-by: Jan Beulich <[email protected]>
> ---
> libxl has libxl__grant_vga_iomem_permission(), but I can't spot any I/O
> port equivalent (nor a revoke counterpart, btw). Everywhere else MMIO and
> I/O ports look to be treated equally.
>
> Qemu uses both xc_domain_{iomem_permission,memory_mapping}() in
> igd_write_opregion(), but only xc_domain_{memory,ioport}_mapping() in
> xen_pt_region_update() and xen_pt_{,un}register_vga_regions(). Is the IGD
> region special in any way? Clearly this can't work from a stubdom.
> ---
> v3: Further extend ChangeLog entry.
> v2: Avoid double evaluation of "add". Add ChangeLog entry.
>
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -7,6 +7,11 @@ The format is based on [Keep a Changelog
> ## [4.23.0 UNRELEASED](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=staging) - TBD
>
> ### Changed
> + - On x86:
> + - XEN_DOMCTL_ioport_mapping no longer implicitly grants or revokes
> + permissions for the port range in question.
> + XEN_DOMCTL_ioport_permission now needs invoking up front /
> + afterwards.
>
> ### Added
>
Acked-by: Oleksii Kurochko <[email protected]>
~ Oleksii