Hi Volodymyr, On 21/08/17 21:27, Volodymyr Babchuk wrote:
There are standard functions set_user_reg() and get_user_reg(). We can use them in PSCI_SET_RESULT()/PSCI_ARG() macroses instead of relying on
s/macroses/macros/ I think.
CONFIG_ARM_64 definition. Signed-off-by: Volodymyr Babchuk <volodymyr_babc...@epam.com> --- * Added space into reg,n * Used 32-bit constant tin PSCI_ARG32 --- xen/arch/arm/traps.c | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c index 13efb58..66f12cb 100644 --- a/xen/arch/arm/traps.c +++ b/xen/arch/arm/traps.c @@ -1450,14 +1450,13 @@ static void do_debug_trap(struct cpu_user_regs *regs, unsigned int code) } #endif +#define PSCI_SET_RESULT(reg, val) set_user_reg(reg, 0, val) +#define PSCI_ARG(reg, n) get_user_reg(reg, n) + #ifdef CONFIG_ARM_64 -#define PSCI_RESULT_REG(reg) (reg)->x0 -#define PSCI_ARG(reg,n) (reg)->x##n -#define PSCI_ARG32(reg,n) (uint32_t)( (reg)->x##n & 0x00000000FFFFFFFF ) +#define PSCI_ARG32(reg, n) (uint32_t)(get_user_reg(reg, n) & 0xFFFFFFFF)
Please drop the mask, the cast is sufficient.
#else -#define PSCI_RESULT_REG(reg) (reg)->r0 -#define PSCI_ARG(reg,n) (reg)->r##n -#define PSCI_ARG32(reg,n) PSCI_ARG(reg,n) +#define PSCI_ARG32(reg, n) PSCI_ARG(reg, n)
Please mention in the commit message that you also modify the coding style. Cheers, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel