summaryrefslogtreecommitdiffstats
path: root/src/import/hwpf
diff options
context:
space:
mode:
authorRichard J. Knight <rjknight@us.ibm.com>2016-10-12 12:41:41 -0500
committerSachin Gupta <sgupta2m@in.ibm.com>2016-11-02 15:41:25 -0400
commit07799e0c6984a7ad757843e229c7c4e600c6332d (patch)
tree6fc7487d826d48b9e243d9e10479b5dc5c9825ac /src/import/hwpf
parent9ca5946d49ec0816409c2f6dc4d8356039df21d1 (diff)
downloadtalos-sbe-07799e0c6984a7ad757843e229c7c4e600c6332d.tar.gz
talos-sbe-07799e0c6984a7ad757843e229c7c4e600c6332d.zip
Memory exeption in hostboot environment when using collectFfdc tag
-Modify parser to add a temporary, local copy of the passed in RC (typically fapi2::current_err) to avoid deleting previously collected data when calling FAPI_EXEC_HWP. FAPI_EXEC_HWP was recently modified in the hostboot environment to clear current_err before calling any hwp. Change-Id: I4c0bd56c18da95f3a708edf3b59fa41aa91c4e83 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/31091 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com> Reviewed-by: Matt Derksen <v2cibmd@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/31102 Reviewed-by: Hostboot Team <hostboot@us.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Diffstat (limited to 'src/import/hwpf')
-rwxr-xr-xsrc/import/hwpf/fapi2/tools/parseErrorInfo.pl17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/import/hwpf/fapi2/tools/parseErrorInfo.pl b/src/import/hwpf/fapi2/tools/parseErrorInfo.pl
index d8876894..49a45818 100755
--- a/src/import/hwpf/fapi2/tools/parseErrorInfo.pl
+++ b/src/import/hwpf/fapi2/tools/parseErrorInfo.pl
@@ -633,7 +633,8 @@ foreach my $argnum (0 .. $#ARGV)
if ($count == 0)
{
#this rc wont be used, except to indicate the FFDC collection failed
- $collectFfdcStr = "\tfapi2::ReturnCode l_rc; \\\n";
+ $collectFfdcStr = "\tfapi2::ReturnCode l_rc; \\\n";
+ $collectFfdcStr .= "\tfapi2::ReturnCode tempRc = RC; \\\n";
}
$count++;
@@ -670,10 +671,22 @@ foreach my $argnum (0 .. $#ARGV)
{
$collectFfdc .= ",";
}
- $collectFfdc .= "RC";
+ # FAPI_EXEC_HWP has been modified to clear out fapi2::current_err
+ # this was done to resolve the issue of many hardware procedures
+ # not initializing current_err and thus returning random failures.
+ # In order to cover the default case where current_err is used
+ # by the FFDC requestor, we need to create a temporary ReturnCode type
+ # to pass into the exec_hwp macro, the additional data collected
+ # by the ffdc procedure can then be added to the local variable,
+ # this local will then be assigned back to the passed in RC
+ # at the end.
+ $collectFfdc .= "tempRc";
$collectFfdcStr .= "\tFAPI_EXEC_HWP(l_rc, $collectFfdc); \\\n";
+ # assign the tempRc with newly added ffdc back to the passed in RC
+ $collectFfdcStr .= "\tRC = tempRc; \\\n";
+
print EIFILE "\\\n{ \\\n$collectFfdcStr \\\n}";
} #end collectFfdc tag
OpenPOWER on IntegriCloud