x86/domain: don't destroy IOREQ servers on soft reset
authorIgor Druzhinin <igor.druzhinin@citrix.com>
Fri, 30 Aug 2019 13:23:01 +0000 (15:23 +0200)
committerJan Beulich <jbeulich@suse.com>
Fri, 30 Aug 2019 13:23:01 +0000 (15:23 +0200)
commitb376456a78ce893036002186d1003900a3b8833d
tree512ecf9251d4e4fb1492ed500e33b7f3aed7e2c8
parent6e2ea60524b51b1eacff38d15c49efc5e7f2c3b4
x86/domain: don't destroy IOREQ servers on soft reset

Performing soft reset should not opportunistically kill IOREQ servers
for device emulators that might be currently running for a domain.
Every emulator is supposed to clean up IOREQ servers for itself on exit.
This allows a toolstack to elect whether or not a particular device
model should be restarted.

The original code was introduced in 3235cbfe ("arch-specific hooks for
domain_soft_reset()") likely due to the fact 'default' IOREQ server
existed in Xen at the time and used by QEMU didn't have an API call to
destroy. Since the removal of 'default' IOREQ server from Xen this
reason has gone away.

Since commit ba7fdd64b ("xen: cleanup IOREQ server on exit") QEMU now
destroys IOREQ server for itself as every other device emulator
is supposed to do. It's now safe to remove this code from soft reset
path - existing systems with old QEMU should be able to work as
even if there are IOREQ servers left behind, a new QEMU instance will
override its ranges anyway.

Signed-off-by: Igor Druzhinin <igor.druzhinin@citrix.com>
Reviewed-by: Paul Durrant <paul.durrant@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/domain.c
xen/arch/x86/hvm/hvm.c
xen/include/asm-x86/hvm/hvm.h