summaryrefslogtreecommitdiff
path: root/security/tlk_driver/ote_comms.c
diff options
context:
space:
mode:
Diffstat (limited to 'security/tlk_driver/ote_comms.c')
-rw-r--r--security/tlk_driver/ote_comms.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/security/tlk_driver/ote_comms.c b/security/tlk_driver/ote_comms.c
index da260a5c216f..64045ac0154e 100644
--- a/security/tlk_driver/ote_comms.c
+++ b/security/tlk_driver/ote_comms.c
@@ -218,19 +218,33 @@ static void switch_cpumask_to_cpu0(void)
{
long ret;
cpumask_t local_cpu_mask = CPU_MASK_NONE;
+ unsigned long flags;
+
+ flags = current->flags;
+ current->flags &= ~PF_NO_SETAFFINITY;
cpu_set(0, local_cpu_mask);
cpumask_copy(&saved_cpu_mask, tsk_cpus_allowed(current));
ret = sched_setaffinity(0, &local_cpu_mask);
if (ret)
pr_err("sched_setaffinity #1 -> 0x%lX", ret);
+
+ current->flags = flags;
}
static void restore_cpumask(void)
{
- long ret = sched_setaffinity(0, &saved_cpu_mask);
+ unsigned long flags;
+ long ret;
+
+ flags = current->flags;
+ current->flags &= ~PF_NO_SETAFFINITY;
+
+ ret = sched_setaffinity(0, &saved_cpu_mask);
if (ret)
pr_err("sched_setaffinity #2 -> 0x%lX", ret);
+
+ current->flags = flags;
}
#else
static inline void switch_cpumask_to_cpu0(void) {};