aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/phb4.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/hw/phb4.c b/hw/phb4.c
index 79083d4..ddaa18f 100644
--- a/hw/phb4.c
+++ b/hw/phb4.c
@@ -1051,6 +1051,14 @@ static int64_t phb4_tce_kill(struct phb *phb, uint32_t kill_type,
uint64_t val;
int64_t rc;
+ /*
+ * HW560152: a page-level kill can be dropped if the
+ * processing queue is backed-up, which can cause data
+ * integrity issues
+ */
+ if (kill_type == OPAL_PCI_TCE_KILL_PAGES)
+ kill_type = OPAL_PCI_TCE_KILL_PE;
+
sync();
switch(kill_type) {
case OPAL_PCI_TCE_KILL_PAGES: