diff --git a/kernel/seccomp.c b/kernel/seccomp.c index e35c742a05d5d87416b14833b36827b9911f0118..829a2cae2764c9c05d888c5ee7a5e8f76415199a 100644 --- a/kernel/seccomp.c +++ b/kernel/seccomp.c @@ -245,7 +245,7 @@ static inline void seccomp_assign_mode(struct task_struct *task, * Make sure TIF_SECCOMP cannot be set before the mode (and * filter) is set. */ - smp_mb__before_atomic(); + smp_mb(); set_tsk_thread_flag(task, TIF_SECCOMP); } @@ -335,8 +335,8 @@ static inline void seccomp_sync_threads(void) * allows a put before the assignment.) */ put_seccomp_filter(thread); - smp_store_release(&thread->seccomp.filter, - caller->seccomp.filter); + smp_mb(); + ACCESS_ONCE(thread->seccomp.filter) = caller->seccomp.filter; /* * Opt the other thread into seccomp if needed. * As threads are considered to be trust-realm