[Skiboot] [PATCH v2 04/10] xive: When disabling a VP, wipe all of its settings
Benjamin Herrenschmidt
benh at kernel.crashing.org
Tue Nov 21 20:32:25 AEDT 2017
Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
---
doc/xive.rst | 2 ++
hw/xive.c | 10 +++++-----
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/doc/xive.rst b/doc/xive.rst
index 85fe1119..c35db6ef 100644
--- a/doc/xive.rst
+++ b/doc/xive.rst
@@ -699,6 +699,8 @@ This call configures a VP:
* report_cl_pair: This is the real address of the reporting cache line
pair for that VP or 0 to disable.
+ .. note:: When disabling a VP, all other VP settings are lost.
+
OPAL_XIVE_ALLOCATE_IRQ
^^^^^^^^^^^^^^^^^^^^^^
diff --git a/hw/xive.c b/hw/xive.c
index c9690aad..333d77e9 100644
--- a/hw/xive.c
+++ b/hw/xive.c
@@ -4142,13 +4142,13 @@ static int64_t opal_xive_set_vp_info(uint64_t vp_id,
return OPAL_PARAMETER;
vp_new = *vp;
- if (flags & OPAL_XIVE_VP_ENABLED)
+ if (flags & OPAL_XIVE_VP_ENABLED) {
vp_new.w0 |= VP_W0_VALID;
- else
- vp_new.w0 &= ~VP_W0_VALID;
+ vp_new.w6 = report_cl_pair >> 32;
+ vp_new.w7 = report_cl_pair & 0xffffffff;
+ } else
+ vp_new.w0 = vp_new.w6 = vp_new.w7 = 0;
- vp_new.w7 = report_cl_pair & 0xffffffff;
- vp_new.w6 = report_cl_pair >> 32;
lock(&x->lock);
rc = xive_vpc_cache_update(x, blk, idx, 0, 8, &vp_new, false, false);
--
2.14.3
More information about the Skiboot
mailing list