[Crash-utility] [PATCH] s390: Fix printing of control and floating point registers

Dave Anderson anderson at redhat.com
Thu Sep 15 16:18:31 UTC 2011



----- Original Message -----
> this isn't dave and stop sending these emails

You're getting the emails because somebody (if not you)
explicitly requested membership in the crash-utility at redhat.com
mailing list for:

  computerworkshelp at yahoo.com

I'll remove your membership.

Dave Anderson (list moderator)

> 
> 
> 
> 
> 
> From: Dave Anderson <anderson at redhat.com>
> To: holzheu at linux.vnet.ibm.com
> Cc: crash <crash-utility at redhat.com>
> Sent: Thursday, September 15, 2011 8:24 AM
> Subject: Re: [Crash-utility] [PATCH] s390: Fix printing of control and
> floating point registers
> 
> 
> 
> ----- Original Message -----
> > Hi Dave,
> >
> > Control registers 8-15 (s390x and s390) and floating point registers
> > 8-15
> > (s390x only) are not printed correctly because the we copy the
> > content from
> > the wrong location of the save area.
> >
> > Looks like nobody has realized this problem in the past because
> > those
> > registers are not too important for debugging kernel problems...
> >
> > This patch fixes this problem and now control and floating point
> > registers
> > are printed correctly.
> >
> > Signed-off-by: Michael Holzheu < holzheu at linux.vnet.ibm.com >
> 
> Hi Michael,
> 
> The "ULONG(ptr + 8)" below doesn't seem right:
> 
> > --- a/s390.c
> > +++ b/s390.c
> > @@ -861,16 +861,16 @@ s390_print_lowcore(char* lc, struct bt_i
> > fprintf(fp," %#010lx %#010lx %#010lx %#010lx\n",
> > tmp[0], tmp[1], tmp[2], tmp[3]);
> >
> > - tmp[0]=ULONG(ptr);
> > - tmp[1]=ULONG(ptr + S390_WORD_SIZE);
> > - tmp[2]=ULONG(ptr + 2 * S390_WORD_SIZE);
> > - tmp[3]=ULONG(ptr + 3 * S390_WORD_SIZE);
> > + tmp[0]=ULONG(ptr + 8);
> > + tmp[1]=ULONG(ptr + 9 * S390_WORD_SIZE);
> > + tmp[2]=ULONG(ptr + 10 * S390_WORD_SIZE);
> > + tmp[3]=ULONG(ptr + 11 * S390_WORD_SIZE);
> 
> And here as well:
> 
> > --- a/s390x.c
> > +++ b/s390x.c
> > @@ -1184,16 +1184,16 @@ s390x_print_lowcore(char* lc, struct bt_
> > tmp[3]=ULONG(ptr + 7 * S390X_WORD_SIZE);
> > fprintf(fp," %#018lx %#018lx\n", tmp[0],tmp[1]);
> > fprintf(fp," %#018lx %#018lx\n", tmp[2],tmp[3]);
> > - tmp[0]=ULONG(ptr);
> > - tmp[1]=ULONG(ptr + S390X_WORD_SIZE);
> > - tmp[2]=ULONG(ptr + 2 * S390X_WORD_SIZE);
> > - tmp[3]=ULONG(ptr + 3 * S390X_WORD_SIZE);
> > + tmp[0]=ULONG(ptr + 8);
> > + tmp[1]=ULONG(ptr + 9 * S390X_WORD_SIZE);
> > + tmp[2]=ULONG(ptr + 10 * S390X_WORD_SIZE);
> > + tmp[3]=ULONG(ptr + 11 * S390X_WORD_SIZE);
> 
> Shouldn't they both be:
> 
> tmp[0]=ULONG(ptr + 8 * S390_WORD_SIZE);
> 
> Dave
> 
> 
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility
> 
> 
> 
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility




More information about the Crash-utility mailing list