x86/hvm/ioreq: MMIO range checking completely ignores direction flag
authorPaul Durrant <paul.durrant@citrix.com>
Wed, 15 Aug 2018 12:14:06 +0000 (14:14 +0200)
committerJan Beulich <jbeulich@suse.com>
Wed, 15 Aug 2018 12:14:06 +0000 (14:14 +0200)
commit60a56dc0064a00830663ffe48215dcd080cb9504
tree8da66deaf4505e26d6a5e8169dd81fe92b83fc0b
parent80cdb33cb7a96c3355b35ec620f1798fe3be1048
x86/hvm/ioreq: MMIO range checking completely ignores direction flag

hvm_select_ioreq_server() is used to route an ioreq to the appropriate
ioreq server. For MMIO this is done by comparing the range of the ioreq
to the ranges registered by the device models of each ioreq server.
Unfortunately the calculation of the range if the ioreq completely ignores
the direction flag and thus may calculate the wrong range for comparison.
Thus the ioreq may either be routed to the wrong server or erroneously
terminated by null_ops.

NOTE: The patch also fixes whitespace in the switch statement to make it
      style compliant.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/arch/x86/hvm/ioreq.c