From: Ingo Molnar <mingo@elte.hu>
To: Roland McGrath <roland@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
linux-kernel@vger.kernel.org, stable@kernel.org,
TAKADA Yoshihito <takada@mbf.nifty.com>
Subject: Re: [PATCH] x86 ptrace: fix PTRACE_GETFPXREGS error
Date: Tue, 1 Jul 2008 12:11:04 +0200 [thread overview]
Message-ID: <20080701101104.GF31309@elte.hu> (raw)
In-Reply-To: <20080701093212.6D9DA15420E@magilla.localdomain>
* Roland McGrath <roland@redhat.com> wrote:
> > since the original fix is already upstream, i've applied the delta
> > patch below. Should we still do this for v2.6.26 or can we defer it
> > to v2.6.27? As ptrace is the only user of this facility for now this
> > would be an identity transformation AFAICS and the v2.6.26 release
> > is very close.
>
> I don't think there's a problem with 2.6.26 either way. I agree that
> the user_regset internal API does not matter much before 2.6.27.
okay - i've queued it up in tip/x86/ptrace for now.
> My patch alone applies to 2.6.25, which is why I CC'd it to stable. I
> think applying that (and not takada's patch) to stable-2.6.25 would be
> best.
i think Greg already queued the original fix up for v2.6.25, as per the
commit notifier below.
so i think it is all sorted fine now?
Ingo
---------------------->
This is a note to let you know that we have just queued up the patch titled
Subject: ptrace GET/SET FPXREGS broken
to the 2.6.25-stable tree. Its filename is
ptrace-get-set-fpxregs-broken.patch
A git repo of this tree can be found at
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
>From stable-bounces@linux.kernel.org Mon Jun 30 09:22:46 2008
From: TAKADA Yoshihito <takada@mbf.nifty.com>
Date: Mon, 30 Jun 2008 18:22:07 +0200
Subject: ptrace GET/SET FPXREGS broken
To: stable@kernel.org
Message-ID: <20080630162207.GC17710@elte.hu>
Content-Disposition: inline
From: TAKADA Yoshihito <takada@mbf.nifty.com>
Commit 11dbc963a8f6128595d0f6ecf138dc369e144997 upstream
ptrace GET/SET FPXREGS broken
When I update kernel 2.6.25 from 2.6.24, gdb does not work.
On 2.6.25, ptrace(PTRACE_GETFPXREGS, ...) returns ENODEV.
But 2.6.24 kernel's ptrace() returns EIO.
It is issue of compatibility.
I attached test program as pt.c and patch for fix it.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <errno.h>
#include <sys/ptrace.h>
#include <sys/types.h>
struct user_fxsr_struct {
unsigned short cwd;
unsigned short swd;
unsigned short twd;
unsigned short fop;
long fip;
long fcs;
long foo;
long fos;
long mxcsr;
long reserved;
long st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */
long xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */
long padding[56];
};
int main(void)
{
pid_t pid;
pid = fork();
switch(pid){
case -1:/* error */
break;
case 0:/* child */
child();
break;
default:
parent(pid);
break;
}
return 0;
}
int child(void)
{
ptrace(PTRACE_TRACEME);
kill(getpid(), SIGSTOP);
sleep(10);
return 0;
}
int parent(pid_t pid)
{
int ret;
struct user_fxsr_struct fpxregs;
ret = ptrace(PTRACE_GETFPXREGS, pid, 0, &fpxregs);
if(ret < 0){
printf("%d: %s.\n", errno, strerror(errno));
}
kill(pid, SIGCONT);
wait(pid);
return 0;
}
/* in the kerel, at kernel/i387.c get_fpxregs() */
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
arch/x86/kernel/i387.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/arch/x86/kernel/i387.c
+++ b/arch/x86/kernel/i387.c
@@ -130,7 +130,7 @@ int xfpregs_get(struct task_struct *targ
void *kbuf, void __user *ubuf)
{
if (!cpu_has_fxsr)
- return -ENODEV;
+ return -EIO;
init_fpu(target);
@@ -145,7 +145,7 @@ int xfpregs_set(struct task_struct *targ
int ret;
if (!cpu_has_fxsr)
- return -ENODEV;
+ return -EIO;
init_fpu(target);
set_stopped_child_used_math(target);
Patches currently in stable-queue which might be from takada@mbf.nifty.com are
queue-2.6.25/ptrace-get-set-fpxregs-broken.patch
next prev parent reply other threads:[~2008-07-01 10:11 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-30 4:44 [PATCH] ptrace GET/SET FPXREGS broken TAKADA Yoshihito
2008-06-30 12:18 ` Ingo Molnar
2008-06-30 21:02 ` [PATCH] x86 ptrace: fix PTRACE_GETFPXREGS error Roland McGrath
2008-07-01 9:02 ` Ingo Molnar
2008-07-01 9:32 ` Roland McGrath
2008-07-01 10:11 ` Ingo Molnar [this message]
2008-07-01 14:34 ` [stable] " Greg KH
2008-07-01 14:46 ` Ingo Molnar
2008-07-01 15:02 ` Greg KH
2008-07-03 2:37 ` TAKADA Yoshihito
2008-07-03 1:58 ` TAKADA Yoshihito
2008-07-03 3:00 ` Roland McGrath
2008-06-30 21:02 ` [PATCH] ptrace GET/SET FPXREGS broken Roland McGrath
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080701101104.GF31309@elte.hu \
--to=mingo@elte.hu \
--cc=linux-kernel@vger.kernel.org \
--cc=roland@redhat.com \
--cc=stable@kernel.org \
--cc=takada@mbf.nifty.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.