Message ID | 20170811180257.5493-12-julien.grall@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Julien, On 11 August 2017 at 23:32, Julien Grall <julien.grall@arm.com> wrote: > Currently, cpregs.h is included in pretty much every files even for > arm64. However, the only use for arm64 is when emulating co-processors. > > For arm32, cpregs.h rely on the presence of processor.h (define > *_SYSREG helpers). So move the inclusion in asm-arm/arm32/processor.h. > Should it say that processor.h relies on cpregs.h instead of the other way round because processor.h includes cpregs.h? > cpregs.h will also be directly included in the co-processors emulation > to accomodate arm64. > > Signed-off-by: Julien Grall <julien.grall@arm.com> > --- > xen/arch/arm/smp.c | 1 - > xen/arch/arm/vcpreg.c | 1 + > xen/arch/arm/vgic-v3.c | 1 + > xen/arch/arm/vtimer.c | 2 ++ > xen/include/asm-arm/arm32/processor.h | 2 ++ > xen/include/asm-arm/percpu.h | 1 - > xen/include/asm-arm/processor.h | 1 - > 7 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/xen/arch/arm/smp.c b/xen/arch/arm/smp.c > index e7df0874d6..554f4992e6 100644 > --- a/xen/arch/arm/smp.c > +++ b/xen/arch/arm/smp.c > @@ -1,6 +1,5 @@ > #include <asm/system.h> > #include <asm/smp.h> > -#include <asm/cpregs.h> > #include <asm/page.h> > #include <asm/gic.h> > #include <asm/flushtlb.h> > diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c > index f3b08403fb..e363183ba8 100644 > --- a/xen/arch/arm/vcpreg.c > +++ b/xen/arch/arm/vcpreg.c > @@ -18,6 +18,7 @@ > > #include <xen/sched.h> > > +#include <asm/cpregs.h> > #include <asm/current.h> > #include <asm/regs.h> > #include <asm/traps.h> > diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c > index cbeac28b28..a0cf993d13 100644 > --- a/xen/arch/arm/vgic-v3.c > +++ b/xen/arch/arm/vgic-v3.c > @@ -26,6 +26,7 @@ > #include <xen/softirq.h> > #include <xen/sizes.h> > > +#include <asm/cpregs.h> > #include <asm/current.h> > #include <asm/gic_v3_defs.h> > #include <asm/gic_v3_its.h> > diff --git a/xen/arch/arm/vtimer.c b/xen/arch/arm/vtimer.c > index 9c7e8f441c..0460962f08 100644 > --- a/xen/arch/arm/vtimer.c > +++ b/xen/arch/arm/vtimer.c > @@ -22,6 +22,7 @@ > #include <xen/sched.h> > #include <xen/timer.h> > > +#include <asm/cpregs.h> > #include <asm/div64.h> > #include <asm/gic.h> > #include <asm/irq.h> > @@ -29,6 +30,7 @@ > #include <asm/time.h> > #include <asm/vgic.h> > #include <asm/vreg.h> > +#include <asm/regs.h> > > /* > * Check if regs is allowed access, user_gate is tail end of a > diff --git a/xen/include/asm-arm/arm32/processor.h b/xen/include/asm-arm/arm32/processor.h > index 68cc82147e..fb330812af 100644 > --- a/xen/include/asm-arm/arm32/processor.h > +++ b/xen/include/asm-arm/arm32/processor.h > @@ -1,6 +1,8 @@ > #ifndef __ASM_ARM_ARM32_PROCESSOR_H > #define __ASM_ARM_ARM32_PROCESSOR_H > > +#include <asm/cpregs.h> > + > #define ACTLR_CAXX_SMP (1<<6) > > #ifndef __ASSEMBLY__ > diff --git a/xen/include/asm-arm/percpu.h b/xen/include/asm-arm/percpu.h > index 7968532462..cdf64e0f77 100644 > --- a/xen/include/asm-arm/percpu.h > +++ b/xen/include/asm-arm/percpu.h > @@ -4,7 +4,6 @@ > #ifndef __ASSEMBLY__ > > #include <xen/types.h> > -#include <asm/cpregs.h> > #if defined(CONFIG_ARM_32) > # include <asm/arm32/processor.h> > #elif defined(CONFIG_ARM_64) > diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h > index 9eacb1be29..51ce802063 100644 > --- a/xen/include/asm-arm/processor.h > +++ b/xen/include/asm-arm/processor.h > @@ -1,7 +1,6 @@ > #ifndef __ASM_ARM_PROCESSOR_H > #define __ASM_ARM_PROCESSOR_H > > -#include <asm/cpregs.h> > #ifndef __ASSEMBLY__ > #include <xen/types.h> > #endif > -- > 2.11.0 > Regards, Bhupinder
On 17/08/17 08:30, Bhupinder Thakur wrote: > Hi Julien, Hi Bhupinder, > On 11 August 2017 at 23:32, Julien Grall <julien.grall@arm.com> wrote: >> Currently, cpregs.h is included in pretty much every files even for >> arm64. However, the only use for arm64 is when emulating co-processors. >> >> For arm32, cpregs.h rely on the presence of processor.h (define >> *_SYSREG helpers). So move the inclusion in asm-arm/arm32/processor.h. >> > Should it say that processor.h relies on cpregs.h instead of the other > way round because processor.h > includes cpregs.h? I can reword to "For arm32, all the users of processor.h expects cpregs.h to be included in order to access co-processors. So move the inclusion in ....". > >> cpregs.h will also be directly included in the co-processors emulation >> to accomodate arm64. Just noticed a typo here. I will fix it. Cheers,
diff --git a/xen/arch/arm/smp.c b/xen/arch/arm/smp.c index e7df0874d6..554f4992e6 100644 --- a/xen/arch/arm/smp.c +++ b/xen/arch/arm/smp.c @@ -1,6 +1,5 @@ #include <asm/system.h> #include <asm/smp.h> -#include <asm/cpregs.h> #include <asm/page.h> #include <asm/gic.h> #include <asm/flushtlb.h> diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c index f3b08403fb..e363183ba8 100644 --- a/xen/arch/arm/vcpreg.c +++ b/xen/arch/arm/vcpreg.c @@ -18,6 +18,7 @@ #include <xen/sched.h> +#include <asm/cpregs.h> #include <asm/current.h> #include <asm/regs.h> #include <asm/traps.h> diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c index cbeac28b28..a0cf993d13 100644 --- a/xen/arch/arm/vgic-v3.c +++ b/xen/arch/arm/vgic-v3.c @@ -26,6 +26,7 @@ #include <xen/softirq.h> #include <xen/sizes.h> +#include <asm/cpregs.h> #include <asm/current.h> #include <asm/gic_v3_defs.h> #include <asm/gic_v3_its.h> diff --git a/xen/arch/arm/vtimer.c b/xen/arch/arm/vtimer.c index 9c7e8f441c..0460962f08 100644 --- a/xen/arch/arm/vtimer.c +++ b/xen/arch/arm/vtimer.c @@ -22,6 +22,7 @@ #include <xen/sched.h> #include <xen/timer.h> +#include <asm/cpregs.h> #include <asm/div64.h> #include <asm/gic.h> #include <asm/irq.h> @@ -29,6 +30,7 @@ #include <asm/time.h> #include <asm/vgic.h> #include <asm/vreg.h> +#include <asm/regs.h> /* * Check if regs is allowed access, user_gate is tail end of a diff --git a/xen/include/asm-arm/arm32/processor.h b/xen/include/asm-arm/arm32/processor.h index 68cc82147e..fb330812af 100644 --- a/xen/include/asm-arm/arm32/processor.h +++ b/xen/include/asm-arm/arm32/processor.h @@ -1,6 +1,8 @@ #ifndef __ASM_ARM_ARM32_PROCESSOR_H #define __ASM_ARM_ARM32_PROCESSOR_H +#include <asm/cpregs.h> + #define ACTLR_CAXX_SMP (1<<6) #ifndef __ASSEMBLY__ diff --git a/xen/include/asm-arm/percpu.h b/xen/include/asm-arm/percpu.h index 7968532462..cdf64e0f77 100644 --- a/xen/include/asm-arm/percpu.h +++ b/xen/include/asm-arm/percpu.h @@ -4,7 +4,6 @@ #ifndef __ASSEMBLY__ #include <xen/types.h> -#include <asm/cpregs.h> #if defined(CONFIG_ARM_32) # include <asm/arm32/processor.h> #elif defined(CONFIG_ARM_64) diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h index 9eacb1be29..51ce802063 100644 --- a/xen/include/asm-arm/processor.h +++ b/xen/include/asm-arm/processor.h @@ -1,7 +1,6 @@ #ifndef __ASM_ARM_PROCESSOR_H #define __ASM_ARM_PROCESSOR_H -#include <asm/cpregs.h> #ifndef __ASSEMBLY__ #include <xen/types.h> #endif
Currently, cpregs.h is included in pretty much every files even for arm64. However, the only use for arm64 is when emulating co-processors. For arm32, cpregs.h rely on the presence of processor.h (define *_SYSREG helpers). So move the inclusion in asm-arm/arm32/processor.h. cpregs.h will also be directly included in the co-processors emulation to accomodate arm64. Signed-off-by: Julien Grall <julien.grall@arm.com> --- xen/arch/arm/smp.c | 1 - xen/arch/arm/vcpreg.c | 1 + xen/arch/arm/vgic-v3.c | 1 + xen/arch/arm/vtimer.c | 2 ++ xen/include/asm-arm/arm32/processor.h | 2 ++ xen/include/asm-arm/percpu.h | 1 - xen/include/asm-arm/processor.h | 1 - 7 files changed, 6 insertions(+), 3 deletions(-)