[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [PATCH V4 03/24] x86/ioreq: Provide out-of-line wrapper for the handle_mmio()
> -----Original Message----- > From: Xen-devel <xen-devel-bounces@xxxxxxxxxxxxxxxxxxxx> On Behalf Of > Oleksandr Tyshchenko > Sent: 12 January 2021 21:52 > To: xen-devel@xxxxxxxxxxxxxxxxxxxx > Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>; Paul Durrant > <paul@xxxxxxx>; Jan Beulich > <jbeulich@xxxxxxxx>; Andrew Cooper <andrew.cooper3@xxxxxxxxxx>; Roger Pau > Monné > <roger.pau@xxxxxxxxxx>; Wei Liu <wl@xxxxxxx>; Julien Grall <julien@xxxxxxx>; > Stefano Stabellini > <sstabellini@xxxxxxxxxx>; Julien Grall <julien.grall@xxxxxxx> > Subject: [PATCH V4 03/24] x86/ioreq: Provide out-of-line wrapper for the > handle_mmio() > > From: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx> > > The IOREQ is about to be common feature and Arm will have its own > implementation. > > But the name of the function is pretty generic and can be confusing > on Arm (we already have a try_handle_mmio()). > > In order not to rename the function (which is used for a varying > set of purposes on x86) globally and get non-confusing variant on Arm > provide a wrapper arch_ioreq_complete_mmio() to be used on common > and Arm code. > > Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx> Reviewed-by: Paul Durrant <paul@xxxxxxx> > Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> > CC: Julien Grall <julien.grall@xxxxxxx> > [On Arm only] > Tested-by: Wei Chen <Wei.Chen@xxxxxxx> > > --- > Please note, this is a split/cleanup/hardening of Julien's PoC: > "Add support for Guest IO forwarding to a device emulator" > > Changes RFC -> V1: > - new patch > > Changes V1 -> V2: > - remove "handle" > - add Jan's A-b > > Changes V2 -> V3: > - remove Jan's A-b > - update patch subject/description > - use out-of-line function instead of #define > - put earlier in the series to avoid breakage > > Changes V3 -> V4: > - add Jan's R-b > - rename ioreq_complete_mmio() to arch_ioreq_complete_mmio() > --- > xen/arch/x86/hvm/ioreq.c | 7 ++++++- > xen/include/asm-x86/hvm/ioreq.h | 1 + > 2 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c > index ff9a546..00c68f5 100644 > --- a/xen/arch/x86/hvm/ioreq.c > +++ b/xen/arch/x86/hvm/ioreq.c > @@ -35,6 +35,11 @@ > #include <public/hvm/ioreq.h> > #include <public/hvm/params.h> > > +bool arch_ioreq_complete_mmio(void) > +{ > + return handle_mmio(); > +} > + > static void set_ioreq_server(struct domain *d, unsigned int id, > struct hvm_ioreq_server *s) > { > @@ -225,7 +230,7 @@ bool handle_hvm_io_completion(struct vcpu *v) > break; > > case HVMIO_mmio_completion: > - return handle_mmio(); > + return arch_ioreq_complete_mmio(); > > case HVMIO_pio_completion: > return handle_pio(vio->io_req.addr, vio->io_req.size, > diff --git a/xen/include/asm-x86/hvm/ioreq.h b/xen/include/asm-x86/hvm/ioreq.h > index f140ef4..0e64e76 100644 > --- a/xen/include/asm-x86/hvm/ioreq.h > +++ b/xen/include/asm-x86/hvm/ioreq.h > @@ -58,6 +58,7 @@ unsigned int hvm_broadcast_ioreq(ioreq_t *p, bool buffered); > > void hvm_ioreq_init(struct domain *d); > > +bool arch_ioreq_complete_mmio(void); > bool arch_vcpu_ioreq_completion(enum hvm_io_completion io_completion); > int arch_ioreq_server_map_pages(struct hvm_ioreq_server *s); > void arch_ioreq_server_unmap_pages(struct hvm_ioreq_server *s); > -- > 2.7.4 >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |