On Thu, 12 Sep 2019 at 11:42, Alex Bennée <[email protected]> wrote: > > > Peter Maydell <[email protected]> writes: > > > If we fail a semihosting call we should always set the > > semihosting errno to something; we were failing to do > > this for some of the "check inputs for sanity" cases. > > > > Signed-off-by: Peter Maydell <[email protected]> > > Reviewed-by: Alex Bennée <[email protected]> > > although: > > > --- > > target/arm/arm-semi.c | 45 ++++++++++++++++++++++++++----------------- > > 1 file changed, 27 insertions(+), 18 deletions(-) > > > > diff --git a/target/arm/arm-semi.c b/target/arm/arm-semi.c > > index 03e60105c05..51b55816faf 100644 > > --- a/target/arm/arm-semi.c > > +++ b/target/arm/arm-semi.c > > @@ -232,11 +232,13 @@ static target_ulong arm_gdb_syscall(ARMCPU *cpu, > > gdb_syscall_complete_cb cb, > > #define GET_ARG(n) do { \ > > if (is_a64(env)) { \ > > if (get_user_u64(arg ## n, args + (n) * 8)) { \ > > - return -1; \ > > + errno = EFAULT; \ > > + return set_swi_errno(ts, -1); \ > > This looks a little queasy given ts is NULL for the softmmu version. I > wonder (depending on your approach to -smp for 1/13) if we should just > pass the ARMCPU down to the helper?
NULL is fine because the softmmu version of set_swi_errno() doesn't do anything with it anyway, right? thanks -- PMM
