Re: [patch 1/1] uml: fix handling of no fpx_regs [critical, for2.6.12]

From: Andree Leidenfrost
Date: Tue Apr 26 2005 - 04:56:30 EST


Hi Alexander

On Mon, 2005-04-25 at 21:57 +0200, Alexander Nyberg wrote:
> mån 2005-04-25 klockan 21:12 +0200 skrev blaisorblade@xxxxxxxx:
> > From: Andree Leidenfrost <aleidenf@xxxxxxxxxxxxxx>, Paolo 'Blaisorblade' Giarrusso <blaisorblade@xxxxxxxx>
> >
> > Fix the error path, which is triggered when the processor misses the fpx regs
> > (i.e. the "fxsr" cpuinfo feature). For instance by VIA C3 Samuel2. Tested and
> > obvious, please merge ASAP.
> >
> > Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@xxxxxxxx>
> > ---
> >
> > linux-2.6.12-paolo/arch/um/os-Linux/sys-i386/registers.c | 7 ++++---
> > 1 files changed, 4 insertions(+), 3 deletions(-)
> >
> > diff -puN arch/um/os-Linux/sys-i386/registers.c~uml-fix-no_fpx_regs_handling arch/um/os-Linux/sys-i386/registers.c
> > --- linux-2.6.12/arch/um/os-Linux/sys-i386/registers.c~uml-fix-no_fpx_regs_handling 2005-04-25 21:03:11.000000000 +0200
> > +++ linux-2.6.12-paolo/arch/um/os-Linux/sys-i386/registers.c 2005-04-25 21:08:07.000000000 +0200
> > @@ -105,14 +105,15 @@ void init_registers(int pid)
> > panic("check_ptrace : PTRACE_GETREGS failed, errno = %d",
> > err);
> >
> > + errno = 0;
> > err = ptrace(PTRACE_GETFPXREGS, pid, 0, exec_fpx_regs);
> > if(!err)
> > return;
> > + if(errno != EIO)
> > + panic("check_ptrace : PTRACE_GETFPXREGS failed, errno = %d",
> > + errno);
>
> Looks like you mean "if (err != EIO)" here

No. The patch is correct.

ptrace will always return -1 in case of an error. The actual error code
is in errno, hence this is what needs to be compared to EIO. Please also
see the ptrace manpage.

> > have_fpx_regs = 0;
> > - if(err != EIO)
> > - panic("check_ptrace : PTRACE_GETFPXREGS failed, errno = %d",
> > - err);
> >
> > err = ptrace(PTRACE_GETFPREGS, pid, 0, exec_fp_regs);
> > if(err)

Best regards
Andree
--
Andree Leidenfrost
Sydney - Australia

Attachment: signature.asc
Description: This is a digitally signed message part