summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArmelle Laine <armellel@google.com>2021-09-08 22:33:37 +0000
committerArmelle Laine <armellel@google.com>2021-09-08 22:34:40 +0000
commit92f7340d1b78119489fe33f01abefb368a4b39bf (patch)
tree22acfd2ab1c667707a1202769e4c6f8bc8db9e2b
parentc2ebb1e355025069fd31598de8029726cbebd59c (diff)
downloadtrusty-92f7340d1b78119489fe33f01abefb368a4b39bf.tar.gz
ANDROID: trusty-irq: enqueue work in trusty_irq_cpu_up
Temporary workaround blindly enqueuing work to force trusty scheduler to run after a cpu suspend. Root causing the workqueue being inappropriately empty (e.g. loss of an IPI) may make this workaround unnecessary in the future. Bug: 197458307 Change-Id: Ice8497c9027666a320ada8aa9c15195e31237201 Signed-off-by: Armelle Laine <armellel@google.com>
-rw-r--r--drivers/trusty/trusty-irq.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/trusty/trusty-irq.c b/drivers/trusty/trusty-irq.c
index 7d59950..5c60761 100644
--- a/drivers/trusty/trusty-irq.c
+++ b/drivers/trusty/trusty-irq.c
@@ -191,6 +191,15 @@ static int trusty_irq_cpu_up(unsigned int cpu, struct hlist_node *node)
trusty_irq_enable_irqset(is, this_cpu_ptr(is->percpu_irqs));
local_irq_restore(irq_flags);
+ /*
+ * Temporary workaround blindly enqueuing work to force trusty scheduler
+ * to run after a cpu suspend.
+ * Root causing the workqueue being inappropriately empty
+ * (e.g. loss of an IPI) may make this workaround unnecessary
+ * in the future.
+ */
+ trusty_enqueue_nop(is->trusty_dev, NULL);
+
return 0;
}