aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2017-11-01 16:59:44 +1100
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-11-10 15:23:49 +1100
commit0e9340792355a7b9905df71c706055194f36647c (patch)
tree87c60725d02f1167a4b8b96b09cd0fcbad481b2a
parent6c9cf5455de43137e449e39efc710539e5454e5b (diff)
downloadskiboot-0e9340792355a7b9905df71c706055194f36647c.zip
skiboot-0e9340792355a7b9905df71c706055194f36647c.tar.gz
skiboot-0e9340792355a7b9905df71c706055194f36647c.tar.bz2
xive: Fix ability to clear some EQ flags
We could never clear "unconditional notify" and "escalate" Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com> (cherry picked from commit 7c2a76705674a6594462b859d1ac5affcde96593) Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r--hw/xive.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/hw/xive.c b/hw/xive.c
index 352ad3b..bb17b38 100644
--- a/hw/xive.c
+++ b/hw/xive.c
@@ -4013,10 +4013,14 @@ static int64_t opal_xive_set_queue_info(uint64_t vp, uint32_t prio,
/* Always notify flag */
if (qflags & OPAL_XIVE_EQ_ALWAYS_NOTIFY)
eq.w0 |= EQ_W0_UCOND_NOTIFY;
+ else
+ eq.w0 &= ~EQ_W0_UCOND_NOTIFY;
/* Escalation flag */
if (qflags & OPAL_XIVE_EQ_ESCALATE)
eq.w0 |= EQ_W0_ESCALATE_CTL;
+ else
+ eq.w0 &= ~EQ_W0_ESCALATE_CTL;
/* Unconditionally clear the current queue pointer, set
* generation to 1 and disable escalation interrupts.