summaryrefslogtreecommitdiffstats
path: root/src/usr/fapi2/attribute_service.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/fapi2/attribute_service.C')
-rw-r--r--src/usr/fapi2/attribute_service.C21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/usr/fapi2/attribute_service.C b/src/usr/fapi2/attribute_service.C
index 1a1a62b31..0e8d47659 100644
--- a/src/usr/fapi2/attribute_service.C
+++ b/src/usr/fapi2/attribute_service.C
@@ -1214,8 +1214,27 @@ ReturnCode fapiAttrSetBadDqBitmap(
uint8_t l_eccSpareBitmap[mss::MAX_RANK_PER_DIMM]
[mss::BAD_DQ_BYTE_COUNT];
+ uint8_t l_tmpData[mss::MAX_RANK_PER_DIMM][mss::BAD_DQ_BYTE_COUNT];
+ memcpy( &l_tmpData, &i_data, sizeof(i_data) );
+
+ l_errl = __dimmUpdateDqBitmapEccByte( l_dimmTarget, l_tmpData );
+ if ( l_errl )
+ {
+ FAPI_ERR( "fapiAttrSetBadDqBitmap: Error getting ECC data." );
+ l_rc.setPlatDataPtr(reinterpret_cast<void *> (l_errl));
+ break;
+ }
+
+ l_rc = __dimmUpdateDqBitmapSpareByte( l_dimmTarget, l_tmpData );
+ if ( l_rc )
+ {
+ FAPI_ERR( "fapiAttrSetBadDqBitmap: Error getting spare DRAM "
+ "data." );
+ break;
+ }
+
l_rc = __compareEccAndSpare( l_dimmTarget, mfgModeBadBitsPresent,
- i_data, l_eccSpareBitmap );
+ l_tmpData, l_eccSpareBitmap );
if ( l_rc )
{
FAPI_ERR( "fapiAttrSetBadDqBitmap: Error comparing "
OpenPOWER on IntegriCloud