diff options
Diffstat (limited to 'security/tlk_driver/ote_comms.c')
-rw-r--r-- | security/tlk_driver/ote_comms.c | 16 |
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) {}; |