summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorStephen Wolfe <swolfe@nvidia.com>2017-10-29 22:39:44 -0400
committerStephen Wolfe <swolfe@nvidia.com>2018-07-27 17:12:44 -0400
commit111a90676b10d3fbb9de161775724e1194e83aa6 (patch)
treef9ffb4332b2b96fe4776da788f0ac5e9e65f6db1 /include/linux
parent063e2a8b0579b4931ef591dab469f626c09a9ad3 (diff)
trusty: disable trusty irq's when trusty crashes
After trusty panics, whenever control reaches trusty will immediately context switch back to NS world. This triggers a trusty irq in the linux kernel, which eventually causes control to return back to trusty. This causes an endless loop of context switching back and forth between non-secure and secure world, and generates log spew. This commit fixes this issue by disabling trusty irq's once trusty crashes. The crash is detected in the trusty driver, who signals the trusty-irq driver to disable interrupts via a notifier chain. Bug 1883981 Change-Id: Ib7d8f921537f6aa423bd1372d8073bfa73b81fa4 Signed-off-by: Stephen Wolfe <swolfe@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1591010 (cherry picked from commit 55756bf62e988fe028791d95bc54b5345863c098) Reviewed-on: https://git-master.nvidia.com/r/1600497 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Mihir Joshi <mihirj@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/trusty/trusty.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/trusty/trusty.h b/include/linux/trusty/trusty.h
index 41623faa9..096608e24 100644
--- a/include/linux/trusty/trusty.h
+++ b/include/linux/trusty/trusty.h
@@ -67,6 +67,10 @@ int trusty_call_notifier_register(struct device *dev,
67 struct notifier_block *n); 67 struct notifier_block *n);
68int trusty_call_notifier_unregister(struct device *dev, 68int trusty_call_notifier_unregister(struct device *dev,
69 struct notifier_block *n); 69 struct notifier_block *n);
70int trusty_panic_notifier_register(struct device *dev,
71 struct notifier_block *n);
72int trusty_panic_notifier_unregister(struct device *dev,
73 struct notifier_block *n);
70const char *trusty_version_str_get(struct device *dev); 74const char *trusty_version_str_get(struct device *dev);
71u32 trusty_get_api_version(struct device *dev); 75u32 trusty_get_api_version(struct device *dev);
72 76