History

ipc/sem.c: prevent queue.status tearing in semop

In order for load/store tearing prevention to work, _all_ accesses to the variable in question need to be done around READ and WRITE_ONCE() macros. Ensure everyone does so for q->status variable for semtimedop().

Davidlohr Bueso committed 8 years ago

Commit f075faa1 parent 15d36fe1 file · +1 −1Browse files

Unified · Split

ipc/sem.c+1−1
@@ -2118,7 +2118,7 @@ static long do_semtimedop(int semid, struct sembuf __user *tsops, · 2117 unmodified lines
2118 }2118 }
2119 2119
2120 do {2120 do {
2121 queue.status = -EINTR;2121 WRITE_ONCE(queue.status, -EINTR);
2122 queue.sleeper = current;2122 queue.sleeper = current;
2123 2123
2124 __set_current_state(TASK_INTERRUPTIBLE);2124 __set_current_state(TASK_INTERRUPTIBLE);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t