Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: Ralf Baechle <ralf@linux-mips.org>
To: Atsushi Nemoto <anemo@mba.ocn.ne.jp>, Daniel Jacobowitz <dan@debian.org>
Cc: linux-mips@linux-mips.org
Subject: Re: [PATCH] store sign-extend register values for PTRACE_GETREGS
Date: Sun, 28 Oct 2007 19:34:21 +0000	[thread overview]
Message-ID: <20071028193421.GC7661@linux-mips.org> (raw)
In-Reply-To: <20071026.005302.25909293.anemo@mba.ocn.ne.jp>

On Fri, Oct 26, 2007 at 12:53:02AM +0900, Atsushi Nemoto wrote:

Daniel, do you see any debugger compatibility issues with this patch?

> From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
> Date: Fri, 26 Oct 2007 00:53:02 +0900 (JST)
> To: linux-mips@linux-mips.org
> Cc: ralf@linux-mips.org
> Subject: Re: [PATCH] store sign-extend register values for PTRACE_GETREGS
> Content-Type: Text/Plain; charset=us-ascii
> 
> On Sun, 04 Mar 2007 02:41:52 +0900 (JST), Atsushi Nemoto <anemo@mba.ocn.ne.jp> wrote:
> > A comment on ptrace_getregs() states "Registers are sign extended to
> > fill the available space." but it is not true.  Fix code to match the
> > comment.  Also fix casts on each caller to get rid of some warnings.
> 
> Revised for current git tree.
> 
> ------------------------------------------------------
> Subject: [PATCH] store sign-extend register values for PTRACE_GETREGS
> From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
> 
> A comment on ptrace_getregs() states "Registers are sign extended to
> fill the available space." but it is not true.  Fix code to match the
> comment.  Also fix casts on each caller to get rid of some warnings.
> 
> Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
> ---
>  arch/mips/kernel/ptrace.c   |   18 +++++++++---------
>  arch/mips/kernel/ptrace32.c |    4 ++--
>  2 files changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
> index 999f785..35234b9 100644
> --- a/arch/mips/kernel/ptrace.c
> +++ b/arch/mips/kernel/ptrace.c
> @@ -65,13 +65,13 @@ int ptrace_getregs(struct task_struct *child, __s64 __user *data)
>  	regs = task_pt_regs(child);
>  
>  	for (i = 0; i < 32; i++)
> -		__put_user(regs->regs[i], data + i);
> -	__put_user(regs->lo, data + EF_LO - EF_R0);
> -	__put_user(regs->hi, data + EF_HI - EF_R0);
> -	__put_user(regs->cp0_epc, data + EF_CP0_EPC - EF_R0);
> -	__put_user(regs->cp0_badvaddr, data + EF_CP0_BADVADDR - EF_R0);
> -	__put_user(regs->cp0_status, data + EF_CP0_STATUS - EF_R0);
> -	__put_user(regs->cp0_cause, data + EF_CP0_CAUSE - EF_R0);
> +		__put_user((long)regs->regs[i], data + i);
> +	__put_user((long)regs->lo, data + EF_LO - EF_R0);
> +	__put_user((long)regs->hi, data + EF_HI - EF_R0);
> +	__put_user((long)regs->cp0_epc, data + EF_CP0_EPC - EF_R0);
> +	__put_user((long)regs->cp0_badvaddr, data + EF_CP0_BADVADDR - EF_R0);
> +	__put_user((long)regs->cp0_status, data + EF_CP0_STATUS - EF_R0);
> +	__put_user((long)regs->cp0_cause, data + EF_CP0_CAUSE - EF_R0);
>  
>  	return 0;
>  }
> @@ -390,11 +390,11 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
>  		}
>  
>  	case PTRACE_GETREGS:
> -		ret = ptrace_getregs(child, (__u64 __user *) data);
> +		ret = ptrace_getregs(child, (__s64 __user *) data);
>  		break;
>  
>  	case PTRACE_SETREGS:
> -		ret = ptrace_setregs(child, (__u64 __user *) data);
> +		ret = ptrace_setregs(child, (__s64 __user *) data);
>  		break;
>  
>  	case PTRACE_GETFPREGS:
> diff --git a/arch/mips/kernel/ptrace32.c b/arch/mips/kernel/ptrace32.c
> index f2bffed..76818be 100644
> --- a/arch/mips/kernel/ptrace32.c
> +++ b/arch/mips/kernel/ptrace32.c
> @@ -346,11 +346,11 @@ asmlinkage int sys32_ptrace(int request, int pid, int addr, int data)
>  		}
>  
>  	case PTRACE_GETREGS:
> -		ret = ptrace_getregs(child, (__u64 __user *) (__u64) data);
> +		ret = ptrace_getregs(child, (__s64 __user *) (__u64) data);
>  		break;
>  
>  	case PTRACE_SETREGS:
> -		ret = ptrace_setregs(child, (__u64 __user *) (__u64) data);
> +		ret = ptrace_setregs(child, (__s64 __user *) (__u64) data);
>  		break;
>  
>  	case PTRACE_GETFPREGS:

  Ralf

  reply	other threads:[~2007-10-28 19:34 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-03 17:41 [PATCH] store sign-extend register values for PTRACE_GETREGS Atsushi Nemoto
2007-10-25 15:53 ` Atsushi Nemoto
2007-10-28 19:34   ` Ralf Baechle [this message]
2007-10-28 19:52     ` Daniel Jacobowitz
2007-10-29 18:31       ` Ralf Baechle

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=20071028193421.GC7661@linux-mips.org \
    --to=ralf@linux-mips.org \
    --cc=anemo@mba.ocn.ne.jp \
    --cc=dan@debian.org \
    --cc=linux-mips@linux-mips.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox