From: Andree Leidenfrost <[email protected]>, Paolo 'Blaisorblade' Giarrusso <[email protected]>
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 <[email protected]>
---
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);
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)
_
m?n 2005-04-25 klockan 21:12 +0200 skrev [email protected]:
> From: Andree Leidenfrost <[email protected]>, Paolo 'Blaisorblade' Giarrusso <[email protected]>
>
> 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 <[email protected]>
> ---
>
> 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
> 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)
Hi Alexander
On Mon, 2005-04-25 at 21:57 +0200, Alexander Nyberg wrote:
> m?n 2005-04-25 klockan 21:12 +0200 skrev [email protected]:
> > From: Andree Leidenfrost <[email protected]>, Paolo 'Blaisorblade' Giarrusso <[email protected]>
> >
> > 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 <[email protected]>
> > ---
> >
> > 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