opal/hmi: Initialize the hmi event with old value of TFMR.
diff mbox series

Message ID 155540696824.7270.10830025850858869433.stgit@jupiter
State Accepted
Delegated to: Vasant Hegde
Headers show
Series
  • opal/hmi: Initialize the hmi event with old value of TFMR.
Related show

Commit Message

Mahesh Jagannath Salgaonkar April 16, 2019, 9:29 a.m. UTC
Do this before we fix TFAC errors. Otherwise the event at host console
shows no thread error reported in TFMR register.

Without this patch the console event show TFMR with no thread error:
(DEC parity error TFMR[59] injection)

[   53.737572] Severe Hypervisor Maintenance interrupt [Recovered]
[   53.737596]  Error detail: Timer facility experienced an error
[   53.737611] 	HMER: 0840000000000000
[   53.737621] 	TFMR: 3212000870e04000

After this patch it shows old TFMR value on host console:

[ 2302.267271] Severe Hypervisor Maintenance interrupt [Recovered]
[ 2302.267305]  Error detail: Timer facility experienced an error
[ 2302.267320] 	HMER: 0840000000000000
[ 2302.267330] 	TFMR: 3212000870e14010

Fixes: 674f7696f ("opal/hmi: Rework HMI handling of TFAC errors")
Cc: skiboot-stable@lists.ozlabs.org
Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
---
 core/hmi.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Stewart Smith April 17, 2019, 7:16 a.m. UTC | #1
Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> writes:
> Do this before we fix TFAC errors. Otherwise the event at host console
> shows no thread error reported in TFMR register.
>
> Without this patch the console event show TFMR with no thread error:
> (DEC parity error TFMR[59] injection)
>
> [   53.737572] Severe Hypervisor Maintenance interrupt [Recovered]
> [   53.737596]  Error detail: Timer facility experienced an error
> [   53.737611] 	HMER: 0840000000000000
> [   53.737621] 	TFMR: 3212000870e04000
>
> After this patch it shows old TFMR value on host console:
>
> [ 2302.267271] Severe Hypervisor Maintenance interrupt [Recovered]
> [ 2302.267305]  Error detail: Timer facility experienced an error
> [ 2302.267320] 	HMER: 0840000000000000
> [ 2302.267330] 	TFMR: 3212000870e14010
>
> Fixes: 674f7696f ("opal/hmi: Rework HMI handling of TFAC errors")
> Cc: skiboot-stable@lists.ozlabs.org
> Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
> ---
>  core/hmi.c |    4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)

Merged to master as of 5f339b4b5d805d8d6bb50e11674dca01255402b4

Patch
diff mbox series

diff --git a/core/hmi.c b/core/hmi.c
index fbb182c32..6ad71a9e8 100644
--- a/core/hmi.c
+++ b/core/hmi.c
@@ -1156,6 +1156,9 @@  static int handle_tfac_errors(struct OpalHMIEvent *hmi_evt, uint64_t *out_flags)
 	int recover = -1;
 	uint64_t tfmr = mfspr(SPR_TFMR);
 
+	/* Initialize the hmi event with old value of TFMR */
+	hmi_evt->tfmr = tfmr;
+
 	/* A TFMR parity/corrupt error makes us ignore all the local stuff.*/
 	if (tfmr & SPR_TFMR_TFMR_CORRUPT) {
 		/* Mark TB as invalid for now as we don't trust TFMR, we'll fix
@@ -1216,7 +1219,6 @@  static int handle_tfac_errors(struct OpalHMIEvent *hmi_evt, uint64_t *out_flags)
 	if (recover != -1 && hmi_evt) {
 		hmi_evt->severity = OpalHMI_SEV_ERROR_SYNC;
 		hmi_evt->type = OpalHMI_ERROR_TFAC;
-		hmi_evt->tfmr = tfmr;
 		queue_hmi_event(hmi_evt, recover, out_flags);
 	}