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

Reply via email to