diff options
author | Richard J. Knight <rjknight@us.ibm.com> | 2016-10-12 12:41:41 -0500 |
---|---|---|
committer | Sachin Gupta <sgupta2m@in.ibm.com> | 2016-11-02 15:41:25 -0400 |
commit | 07799e0c6984a7ad757843e229c7c4e600c6332d (patch) | |
tree | 6fc7487d826d48b9e243d9e10479b5dc5c9825ac /src/import | |
parent | 9ca5946d49ec0816409c2f6dc4d8356039df21d1 (diff) | |
download | talos-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')
-rwxr-xr-x | src/import/hwpf/fapi2/tools/parseErrorInfo.pl | 17 |
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 |