diff options
| author | Amith Nuggehalli <aramachan@nvidia.com> | 2017-07-25 20:17:15 -0400 |
|---|---|---|
| committer | Stephen Wolfe <swolfe@nvidia.com> | 2018-07-27 17:12:44 -0400 |
| commit | 02a7ce99ffe2adc39606d6e277be6593e6c9ea0c (patch) | |
| tree | 0818d59b1aa32a482325191c0786d0d793210aab /include/linux | |
| parent | 7666d4ad0e081b8b06b62c20fe91df2b60fa530a (diff) | |
Retry NOP smc call when a guest's VIRQ is pending
In virtualization use case, if a guest's VIRQ is pending at,
the hypervisor, the control returns back control immediately to the guest
without transitioning to TOS so that the guest's IRQ is handled
in time. In such a case, re-try the NOP smc with the same arguments
as the previous call as the SMC wouldn't have reached TOS yet.
JIRA: SEC-366
Change-Id: Iff0f4fd6aab1369848736a1a7f2fa75afd3616b9
Signed-off-by: Amith Nuggehalli <aramachan@nvidia.com>
(cherry picked from commit 585fea50e14410d312c9966f5520af305c56e989)
Reviewed-on: https://git-master.nvidia.com/r/1533177
GVS: Gerrit_Virtual_Submit
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/trusty/sm_err.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/trusty/sm_err.h b/include/linux/trusty/sm_err.h index 32ee08e49..fb6f3794d 100644 --- a/include/linux/trusty/sm_err.h +++ b/include/linux/trusty/sm_err.h | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2013 Google Inc. All rights reserved | 2 | * Copyright (c) 2013 Google Inc. All rights reserved |
| 3 | * Copyright (c) 2017 NVIDIA CORPORATION. All rights reserved. | ||
| 3 | * | 4 | * |
| 4 | * Permission is hereby granted, free of charge, to any person obtaining | 5 | * Permission is hereby granted, free of charge, to any person obtaining |
| 5 | * a copy of this software and associated documentation files | 6 | * a copy of this software and associated documentation files |
| @@ -39,5 +40,6 @@ | |||
| 39 | #define SM_ERR_CPU_IDLE -13 /* SMC call waiting for another CPU */ | 40 | #define SM_ERR_CPU_IDLE -13 /* SMC call waiting for another CPU */ |
| 40 | #define SM_ERR_NOP_INTERRUPTED -14 /* Got interrupted. Call back with new SMC_SC_NOP */ | 41 | #define SM_ERR_NOP_INTERRUPTED -14 /* Got interrupted. Call back with new SMC_SC_NOP */ |
| 41 | #define SM_ERR_NOP_DONE -15 /* Cpu idle after SMC_SC_NOP (not an error) */ | 42 | #define SM_ERR_NOP_DONE -15 /* Cpu idle after SMC_SC_NOP (not an error) */ |
| 43 | #define SM_ERR_NOP_RETRY -16 /* Retry the previous NOP smc as the first may not have reached TOS */ | ||
| 42 | 44 | ||
| 43 | #endif | 45 | #endif |
