diff --git a/ipc/sem.c b/ipc/sem.c
index 5af1943ad782b415a3dd331161e9b2ecccf89210..76e95e4f3aa284f6ded3962b3055233ea533add8 100644
--- a/ipc/sem.c
+++ b/ipc/sem.c
@@ -2118,7 +2118,7 @@ static long do_semtimedop(int semid, struct sembuf __user *tsops,
 	}
 
 	do {
-		queue.status = -EINTR;
+		WRITE_ONCE(queue.status, -EINTR);
 		queue.sleeper = current;
 
 		__set_current_state(TASK_INTERRUPTIBLE);