[patch 1/1] uml: fix handling of no fpx_regs [critical, for 2.6.12]

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[patch 1/1] uml: fix handling of no fpx_regs [critical, for 2.6.12]

Paolo 'Blaisorblade' Giarrusso

From: Andree Leidenfrost <[hidden email]>, Paolo 'Blaisorblade' Giarrusso <[hidden email]>

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 <[hidden email]>
---

 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)
_
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
Reply | Threaded
Open this post in threaded view
|

Re: [patch 1/1] uml: fix handling of no fpx_regs [critical, for 2.6.12]

Alexander Nyberg
mån 2005-04-25 klockan 21:12 +0200 skrev [hidden email]:

> From: Andree Leidenfrost <[hidden email]>, Paolo 'Blaisorblade' Giarrusso <[hidden email]>
>
> 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 <[hidden email]>
> ---
>
>  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)



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
Reply | Threaded
Open this post in threaded view
|

Re: [patch 1/1] uml: fix handling of no fpx_regs [critical, for 2.6.12]

Andree Leidenfrost
Hi Alexander

On Mon, 2005-04-25 at 21:57 +0200, Alexander Nyberg wrote:

> mån 2005-04-25 klockan 21:12 +0200 skrev [hidden email]:
> > From: Andree Leidenfrost <[hidden email]>, Paolo 'Blaisorblade' Giarrusso <[hidden email]>
> >
> > 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 <[hidden email]>
> > ---
> >
> >  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


signature.asc (196 bytes) Download Attachment