x86/PV32: fix physdev_op_compat handling
authorJan Beulich <jbeulich@suse.com>
Fri, 15 Oct 2021 09:20:04 +0000 (11:20 +0200)
committerJan Beulich <jbeulich@suse.com>
Fri, 15 Oct 2021 09:20:04 +0000 (11:20 +0200)
commit99cbe2031a6bba62819c8e8c2acffe7fe3486cb9
tree06faec6316e55d30e493f27c12c6acff0d6f7974
parent49b0aef3f916e325e10d7d90ea25ea0321ac0d48
x86/PV32: fix physdev_op_compat handling

The conversion of the original code failed to recognize that the 32-bit
compat variant of this (sorry, two different meanings of "compat" here)
needs to continue to invoke the compat handler, not the native one.
Arrange for this by adding yet another #define.

Affected functions (having existed prior to the introduction of the new
hypercall) are PHYSDEVOP_set_iobitmap and PHYSDEVOP_apic_{read,write}.
For all others the operand struct layout doesn't differ.

Fixes: 1252e2823117 ("x86/pv: Export pv_hypercall_table[] rather than working around it in several ways")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
master commit: 834cb8761051f7d87816785c0d99fe9bd5f0ce30
master date: 2021-10-12 11:55:42 +0200
xen/arch/x86/x86_64/compat.c