x86/PVH: deny Dom0 access to the ISA DMA controller

Unlike PV, a PVH Dom0 has no sensible way of driving the address and
page registers correctly, as it would need to translate guest physical
addresses to host ones. Rather than allowing data corruption to occur
from e.g. the use of a legacy floppy drive, disallow access altogether.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
This commit is contained in:
Jan Beulich committed 2023-11-02 10:44:46 +01:00
1 parent 9e2c146c38
commit 306e3dc919
1 file changed
+7
+7
View File
@@ -505,6 +505,13 @@ int __init dom0_setup_permissions(struct domain *d)
#ifdef CONFIG_HVM
if ( is_hvm_domain(d) )
{
/* ISA DMA controller, channels 0-3 (incl possible aliases). */
rc |= ioports_deny_access(d, 0x00, 0x1F);
/* ISA DMA controller, page registers (incl various reserved ones). */
rc |= ioports_deny_access(d, 0x80 + !!hvm_port80_allowed, 0x8F);
/* ISA DMA controller, channels 4-7 (incl usual aliases). */
rc |= ioports_deny_access(d, 0xC0, 0xDF);
/* HVM debug console IO port. */
rc |= ioports_deny_access(d, XEN_HVM_DEBUGCONS_IOPORT,
XEN_HVM_DEBUGCONS_IOPORT);
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.