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

Waylando Mack computerworkshelp at yahoo.com
Thu Sep 15 16:07:27 UTC 2011


this isn't dave and stop sending these emails


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20110915/ad59d4d3/attachment.htm>


More information about the Crash-utility mailing list