aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVasant Hegde <hegdevasant@linux.vnet.ibm.com>2019-07-12 16:47:59 +0530
committerOliver O'Halloran <oohall@gmail.com>2019-08-15 17:54:20 +1000
commit7fa3c1ec5c3694dac8d690efe6463f68dd3421f3 (patch)
treede7a38d507281ce9e4230a864767152ed362cedd
parent19a8694fb204d7532f0d9de33fa6334535733bed (diff)
downloadskiboot-7fa3c1ec5c3694dac8d690efe6463f68dd3421f3.zip
skiboot-7fa3c1ec5c3694dac8d690efe6463f68dd3421f3.tar.gz
skiboot-7fa3c1ec5c3694dac8d690efe6463f68dd3421f3.tar.bz2
MPIPL: Clear tags and metadata
Post dump process, kernel sends FREE_PRESERVE_MEMEORY notification to OPAL. OPAL will clear metadata section and tags. Subsequent opal_mpipl_query_tag() call will return OPAL_EMPTY. Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> [oliver: rebased] Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
-rw-r--r--core/opal-dump.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/core/opal-dump.c b/core/opal-dump.c
index 2ff3a2f..6aefefd 100644
--- a/core/opal-dump.c
+++ b/core/opal-dump.c
@@ -301,6 +301,12 @@ static int64_t opal_mpipl_update(enum opal_mpipl_ops ops,
prlog(PR_NOTICE, "Payload unregistered for MPIPL\n");
break;
case OPAL_MPIPL_FREE_PRESERVED_MEMORY:
+ /* Clear tags */
+ memset(&opal_mpipl_tags, 0, (sizeof(u64) * MAX_OPAL_MPIPL_TAGS));
+ opal_mpipl_max_tags = 0;
+ /* Release memory */
+ free(opal_mpipl_data);
+ opal_mpipl_data = NULL;
/* Clear MDRT table */
memset((void *)MDRT_TABLE_BASE, 0, MDRT_TABLE_SIZE);
/* Set MDRT count to max allocated count */