aboutsummaryrefslogtreecommitdiff
path: root/hw/xive.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2017-11-21 20:32:25 +1100
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-11-28 20:39:07 -0600
commitddc35b93fcadf624e9c60c4b9fefd83330748613 (patch)
treeda264b6255a519c08320d3332dedea090aef8add /hw/xive.c
parent639ed194dedcdfdd18a0daf0c2459928f2266647 (diff)
downloadskiboot-ddc35b93fcadf624e9c60c4b9fefd83330748613.zip
skiboot-ddc35b93fcadf624e9c60c4b9fefd83330748613.tar.gz
skiboot-ddc35b93fcadf624e9c60c4b9fefd83330748613.tar.bz2
xive: When disabling a VP, wipe all of its settings
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hw/xive.c')
-rw-r--r--hw/xive.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/hw/xive.c b/hw/xive.c
index c9690aa..333d77e 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);