On 13.07.19 20:10, Ralf Ramsauer wrote: > They're now basically the same. Consolidate it. > > Signed-off-by: Ralf Ramsauer <[email protected]> > --- > hypervisor/arch/x86/include/asm/vcpu.h | 2 -- > hypervisor/arch/x86/svm.c | 7 ------- > hypervisor/arch/x86/vcpu.c | 13 ++++++++++--- > hypervisor/arch/x86/vmx.c | 7 ------- > 4 files changed, 10 insertions(+), 19 deletions(-) > > diff --git a/hypervisor/arch/x86/include/asm/vcpu.h > b/hypervisor/arch/x86/include/asm/vcpu.h > index 24872f55..cae5b554 100644 > --- a/hypervisor/arch/x86/include/asm/vcpu.h > +++ b/hypervisor/arch/x86/include/asm/vcpu.h > @@ -88,8 +88,6 @@ const u8 *vcpu_get_inst_bytes(const struct > guest_paging_structures *pg_structs, > > void vcpu_skip_emulated_instruction(unsigned int inst_len); > > -void vcpu_vendor_get_cell_io_bitmap(struct cell *cell, > - struct vcpu_io_bitmap *out); > unsigned int vcpu_vendor_get_io_bitmap_pages(void); > > #define VCPU_CS_DPL_MASK BIT_MASK(6, 5) > diff --git a/hypervisor/arch/x86/svm.c b/hypervisor/arch/x86/svm.c > index f2ea313e..e1000447 100644 > --- a/hypervisor/arch/x86/svm.c > +++ b/hypervisor/arch/x86/svm.c > @@ -1008,13 +1008,6 @@ const u8 *vcpu_get_inst_bytes(const struct > guest_paging_structures *pg_structs, > } > } > > -void vcpu_vendor_get_cell_io_bitmap(struct cell *cell, > - struct vcpu_io_bitmap *iobm) > -{ > - iobm->data = cell->arch.io_bitmap; > - iobm->size = IOPM_PAGES * PAGE_SIZE; > -} > - > unsigned int vcpu_vendor_get_io_bitmap_pages(void) > { > return IOPM_PAGES; > diff --git a/hypervisor/arch/x86/vcpu.c b/hypervisor/arch/x86/vcpu.c > index 4c074669..cf8ff04c 100644 > --- a/hypervisor/arch/x86/vcpu.c > +++ b/hypervisor/arch/x86/vcpu.c > @@ -76,6 +76,13 @@ out_err: > return NULL; > } > > +static inline void vcpu_get_cell_io_bitmap(struct cell *cell, > + struct vcpu_io_bitmap *iobm) > +{ > + iobm->data = cell->arch.io_bitmap; > + iobm->size = vcpu_vendor_get_io_bitmap_pages() * PAGE_SIZE; > +} > + > int vcpu_cell_init(struct cell *cell) > { > const unsigned int io_bitmap_pages = vcpu_vendor_get_io_bitmap_pages(); > @@ -97,7 +104,7 @@ int vcpu_cell_init(struct cell *cell) > return err; > } > > - vcpu_vendor_get_cell_io_bitmap(cell, &cell_iobm); > + vcpu_get_cell_io_bitmap(cell, &cell_iobm); > > /* initialize io bitmap to trap all accesses */ > memset(cell_iobm.data, -1, cell_iobm.size); > @@ -115,7 +122,7 @@ int vcpu_cell_init(struct cell *cell) > * Shrink PIO access of root cell corresponding to new cell's > * access rights. > */ > - vcpu_vendor_get_cell_io_bitmap(&root_cell, &root_cell_iobm); > + vcpu_get_cell_io_bitmap(&root_cell, &root_cell_iobm); > pio_bitmap = jailhouse_cell_pio_bitmap(cell->config); > for (b = root_cell_iobm.data; pio_bitmap_size > 0; > b++, pio_bitmap++, pio_bitmap_size--) > @@ -143,7 +150,7 @@ void vcpu_cell_exit(struct cell *cell) > struct vcpu_io_bitmap root_cell_iobm; > u8 *b; > > - vcpu_vendor_get_cell_io_bitmap(&root_cell, &root_cell_iobm); > + vcpu_get_cell_io_bitmap(&root_cell, &root_cell_iobm); > > if (root_cell.config->pio_bitmap_size < pio_bitmap_size) > pio_bitmap_size = root_cell.config->pio_bitmap_size; > diff --git a/hypervisor/arch/x86/vmx.c b/hypervisor/arch/x86/vmx.c > index 8552cabd..2f46b7e9 100644 > --- a/hypervisor/arch/x86/vmx.c > +++ b/hypervisor/arch/x86/vmx.c > @@ -1220,13 +1220,6 @@ void vmx_entry_failure(void) > panic_stop(); > } > > -void vcpu_vendor_get_cell_io_bitmap(struct cell *cell, > - struct vcpu_io_bitmap *iobm) > -{ > - iobm->data = cell->arch.io_bitmap; > - iobm->size = PIO_BITMAP_PAGES * PAGE_SIZE; > -} > - > unsigned int vcpu_vendor_get_io_bitmap_pages(void) > { > return PIO_BITMAP_PAGES; >
This is pointing in the right direction, but we can be more aggressive: There is no reason for struct vcpu_io_bitmap anymore. pio_allow_access() will only use the data, and for the users here, we also remove the indirection without complicating things. Jan -- Siemens AG, Corporate Technology, CT RDA IOT SES-DE Corporate Competence Center Embedded Linux -- You received this message because you are subscribed to the Google Groups "Jailhouse" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jailhouse-dev/22c86c43-3122-f222-6ac6-5305372e4e8f%40siemens.com.
