On Mon, Jun 18, 2018 at 01:02:53PM +0100, Mark Rutland wrote: > Currently we assert that the SCTLR_EL{1,2}_{SET,CLEAR} bits are > self-consistent with an assertion in config_sctlr_el1(). This is a bit > unusual, since config_sctlr_el1() doesn't make use of these definitions, > and is far away from the definitions themselves. > > We can use the CPP #error directive to have equivalent assertions in > <asm/sysreg.h>, next to the definitions of the set/clear bits, which is > a bit clearer and simpler. > > At the same time, lets fill in the upper 32 bits for both registers in > their repsective RES0 definitions. This could be a little nicer with > GENMASK_ULL(63, 32), but this currently lives in <linux/bitops.h>, which > cannot safely be included from assembly, as <asm/sysreg.h> can. > > Note the when the preprocessor evaluates an expression for an #if > directive, all signed or unsigned values are treated as intmax_t or > uintmax_t respectively. To avoid ambiguity, we define explicitly define > the mask of all 64 bits. > > Signed-off-by: Mark Rutland <mark.rutland@xxxxxxx> > Cc: Catalin Marinas <catalin.marinas@xxxxxxx> > Cc: Dave Martin <dave.martin@xxxxxxx> > Cc: James Morse <james.morse@xxxxxxx> > Cc: Will Deacon <will.deacon@xxxxxxx> Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx>