On Friday 17 August 2007 12:44:58 pm Luck, Tony wrote:
> > This confused me, too, because the changelog and comments say
> > "PSR.ri bits 3 are reserved" and "psr.ri bits 11 are reserved".
> >
> > Something like "PSR.ri value 3 is reserved" would have made
> > the intent more clear.
> 
> Is this better?  I'd already re-worded it a bit when I was checking
> into my GIT tree yesterday ... but I can make more changes if this
> is still causing confusion.

I like the changelog a lot, but you might touch up the comment in
the code as well.
> 
> commit f8655358b7a6f527a5b102cb7d36b4eb14414860
> Author: Shaohua Li <[EMAIL PROTECTED]>
> Date:   Thu Aug 16 10:47:05 2007 -0700
> 
>     [IA64] forbid ptrace changes psr.ri to 3
>     
>     The "ri" field in the processor status register only has defined
>     values of 0, 1, 2.  Do not let ptrace set this to 3.  As with
>     other reserved fields in registers we silently discard the value.
>     
>     Signed-off-by: Shaohua Li <[EMAIL PROTECTED]>
>     Signed-off-by: Tony Luck <[EMAIL PROTECTED]>
> 
> diff --git a/arch/ia64/kernel/ptrace.c b/arch/ia64/kernel/ptrace.c
> index 00f8032..da031f8 100644
> --- a/arch/ia64/kernel/ptrace.c
> +++ b/arch/ia64/kernel/ptrace.c
> @@ -951,10 +951,14 @@ access_uarea (struct task_struct *child, unsigned long 
> addr,
>                       return 0;
>  
>                     case PT_CR_IPSR:
> -                     if (write_access)
> -                             pt->cr_ipsr = ((*data & IPSR_MASK)
> +                     if (write_access) {
> +                             unsigned long tmp = *data;
> +                             /* psr.ri bits 11 are reserved, ignore the 
> change */
> +                             if ((tmp & IA64_PSR_RI) == IA64_PSR_RI)
> +                                     tmp &= ~IA64_PSR_RI;
> +                             pt->cr_ipsr = ((tmp & IPSR_MASK)
>                                              | (pt->cr_ipsr & ~IPSR_MASK));
> -                     else
> +                     } else
>                               *data = (pt->cr_ipsr & IPSR_MASK);
>                       return 0;
>  
> 


-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to