All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.