summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C')
-rw-r--r--src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C b/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C
index 72434e700..d52ef2d1d 100644
--- a/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C
+++ b/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C
@@ -1260,6 +1260,22 @@ uint32_t MemTdCtlr<TYPE_MBA>::handleRrFo()
PRDF_ERR( PRDF_FUNC "stopBgScrub<TYPE_MBA>(0x%08x) failed",
iv_chip->getHuid() );
}
+
+ // The HWP that stops the command apparently clears the command
+ // complete attention, which we were not expecting. Therefore,
+ // we must manually set the attention.
+ SCAN_COMM_REGISTER_CLASS * mbaspa_or =
+ iv_chip->getRegister("MBASPA_OR");
+ mbaspa_or->SetBit( 0 );
+
+ mbaspa_or->Write();
+ if ( SUCCESS != o_rc )
+ {
+ PRDF_ERR( PRDF_FUNC "Write() failed on MBASPA_OR" );
+ }
+
+ // There is now a command complete attention for this MBA. So
+ // break out of the for-loop.
break;
}
}
OpenPOWER on IntegriCloud