[Skiboot] [PATCH v7 07/17] hw/phb3: Fix reserved PE# for RID unmapping

Gavin Shan gwshan at linux.vnet.ibm.com
Thu Jun 4 16:18:59 AEST 2015


When one RID is unmapped from its corresponding PE# as requested by OS,
the reserved PE#, which is PE#255 instead of PE#0, should be picked to
cover the RID. The patch fixes the wrong reserved PE# used on PHB3.

Signed-off-by: Gavin Shan <gwshan at linux.vnet.ibm.com>
---
 hw/phb3.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/phb3.c b/hw/phb3.c
index eb2ed46..47212a6 100644
--- a/hw/phb3.c
+++ b/hw/phb3.c
@@ -1791,7 +1791,7 @@ static int64_t phb3_set_pe(struct phb *phb,
 			for (idx = 0; idx < RTT_TABLE_ENTRIES; idx++)
 				p->rte_cache[idx] = pe_num;
 		} else {
-			memset(p->rte_cache, 0xff, RTT_TABLE_SIZE);
+			memset(p->rte_cache, 0, RTT_TABLE_SIZE);
 		}
 		memcpy((void *)p->tbl_rtt, p->rte_cache, RTT_TABLE_SIZE);
 		out_be64(p->regs + PHB_RTC_INVALIDATE,
@@ -1801,7 +1801,7 @@ static int64_t phb3_set_pe(struct phb *phb,
 		for (idx = 0; idx < RTT_TABLE_ENTRIES; idx++, rte++) {
 			if ((idx & mask) != val)
 				continue;
-			p->rte_cache[idx] = (action ? pe_num : 0xffff);
+			p->rte_cache[idx] = (action ? pe_num : 0);
 			*rte = p->rte_cache[idx];
 
 			/*
-- 
2.1.0



More information about the Skiboot mailing list