On 20.10.20 13:38, Paul Durrant wrote:
Hi Jan, Paul
Sorry for the late response.
-----Original Message-----
From: Jan Beulich <[email protected]>
Sent: 20 October 2020 11:05
To: [email protected]
Cc: 'Oleksandr Tyshchenko' <[email protected]>;
[email protected]; 'Oleksandr
Tyshchenko' <[email protected]>; 'Andrew Cooper'
<[email protected]>; 'Roger Pau
Monné' <[email protected]>; 'Wei Liu' <[email protected]>; 'Julien Grall'
<[email protected]>; 'Stefano
Stabellini' <[email protected]>; 'Julien Grall' <[email protected]>
Subject: Re: [PATCH V2 04/23] xen/ioreq: Provide alias for the handle_mmio()
On 20.10.2020 11:14, Paul Durrant wrote:
From: Xen-devel <[email protected]> On Behalf Of Oleksandr
Tyshchenko
Sent: 15 October 2020 17:44
--- a/xen/include/asm-x86/hvm/ioreq.h
+++ b/xen/include/asm-x86/hvm/ioreq.h
@@ -181,6 +181,8 @@ static inline bool arch_hvm_ioreq_destroy(struct domain *d)
#define IOREQ_STATUS_UNHANDLED X86EMUL_UNHANDLEABLE
#define IOREQ_STATUS_RETRY X86EMUL_RETRY
+#define ioreq_complete_mmio handle_mmio
+
A #define? Really? Can we not have a static inline?
I guess this would require further shuffling: handle_mmio() is
an inline function in hvm/emulate.h, and hvm/ioreq.h has no
need to include the former (and imo it also shouldn't have).
I see. I think we need an x86 ioreq.c anyway, to deal with the legacy use of
magic pages, so it could be dealt with there instead.
I am afraid I don't entirely understand the required changes. Could you
please clarify where the "inline(?)" ioreq_complete_mmio() should
live? I included hvm/emulate.h here not for the "handle_mmio()" reason
only, but for "struct hvm_emulate_ctxt" also (see arch_io_completion()).
But, if we return x86 ioreq.c back I can move arch_io_completion() to it
as well as "non-online" ioreq_complete_mmio().
This will avoid including hvm/emulate.h here. Or I missed something?
--
Regards,
Oleksandr Tyshchenko