Hi Volodymyr, On 07/03/2019 21:04, Volodymyr Babchuk wrote:
+static void set_return(struct cpu_user_regs *regs, uint32_t ret) +{ + set_user_reg(regs, 0, ret); + set_user_reg(regs, 1, 0); + set_user_reg(regs, 2, 0); + set_user_reg(regs, 3, 0); + set_user_reg(regs, 4, 0); + set_user_reg(regs, 5, 0); + set_user_reg(regs, 6, 0); + set_user_reg(regs, 7, 0);
This does not look correct to me. From patch #2, registers 4-7 are always preserved. registers 1-3 may be preserved as well depending on the call.
More importantly, Xen is now using SMCCC interface v1.1. This means, register 0-3 are used for return values, registers 4-7 are preserved.
Cheers, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel