[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 03/15] xen/arm: Introduce helpers to clear/flags flags in HCR_EL2
On Mon, 16 Jul 2018, Julien Grall wrote: > A couple of places in the code will need to clear/set flags in HCR_EL2 > for a given vCPU and then replicate into the hardware. Introduce > helpers and replace open-coded version. > > Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx> The macros look good, but I grepped for them in your series and there are no more callers. What places are you referring to that they will need them? > --- > > I haven't find a good place for those new helpers so stick to > processor.h at the moment. This require to use macro rather than inline > helpers given that processor.h is usually the root of all headers. > --- > xen/arch/arm/traps.c | 3 +-- > xen/include/asm-arm/processor.h | 18 ++++++++++++++++++ > 2 files changed, 19 insertions(+), 2 deletions(-) > > diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c > index 9ae64ae6fc..d1bf69b245 100644 > --- a/xen/arch/arm/traps.c > +++ b/xen/arch/arm/traps.c > @@ -681,8 +681,7 @@ static void inject_vabt_exception(struct cpu_user_regs > *regs) > break; > } > > - current->arch.hcr_el2 |= HCR_VA; > - WRITE_SYSREG(current->arch.hcr_el2, HCR_EL2); > + vcpu_hcr_set_flags(current, HCR_VA); > } > > /* > diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h > index 222a02dd99..7e695c2418 100644 > --- a/xen/include/asm-arm/processor.h > +++ b/xen/include/asm-arm/processor.h > @@ -843,6 +843,24 @@ void abort_guest_exit_end(void); > : : : "memory"); \ > } while (0) > > +/* > + * Clear/Set flags in HCR_EL2 for a given vCPU. It only supports the current > + * vCPU for now. > + */ > +#define vcpu_hcr_clear_flags(v, flags) \ > + do { \ > + ASSERT((v) == current); \ > + (v)->arch.hcr_el2 &= ~(flags); \ > + WRITE_SYSREG((v)->arch.hcr_el2, HCR_EL2); \ > + } while (0) > + > +#define vcpu_hcr_set_flags(v, flags) \ > + do { \ > + ASSERT((v) == current); \ > + (v)->arch.hcr_el2 |= (flags); \ > + WRITE_SYSREG((v)->arch.hcr_el2, HCR_EL2); \ > + } while (0) > + > #endif /* __ASSEMBLY__ */ > #endif /* __ASM_ARM_PROCESSOR_H */ > /* > -- > 2.11.0 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |