Skip to content

Commit d076ac9

Browse files
peterhurleytorvalds
authored andcommitted
ipc: simplify msg list search
Signed-off-by: Peter Hurley <[email protected]> Acked-by: Stanislav Kinsbursky <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
1 parent 8ac6ed5 commit d076ac9

File tree

1 file changed

+2
-6
lines changed

1 file changed

+2
-6
lines changed

ipc/msg.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -836,19 +836,16 @@ long do_msgrcv(int msqid, void __user *buf, size_t bufsz, long msgtyp,
836836

837837
for (;;) {
838838
struct msg_receiver msr_d;
839-
struct list_head *tmp;
839+
struct msg_msg *walk_msg;
840840
long msg_counter = 0;
841841

842842
msg = ERR_PTR(-EACCES);
843843
if (ipcperms(ns, &msq->q_perm, S_IRUGO))
844844
goto out_unlock;
845845

846846
msg = ERR_PTR(-EAGAIN);
847-
tmp = msq->q_messages.next;
848-
while (tmp != &msq->q_messages) {
849-
struct msg_msg *walk_msg;
847+
list_for_each_entry(walk_msg, &msq->q_messages, m_list) {
850848

851-
walk_msg = list_entry(tmp, struct msg_msg, m_list);
852849
if (testmsg(walk_msg, msgtyp, mode) &&
853850
!security_msg_queue_msgrcv(msq, walk_msg, current,
854851
msgtyp, mode)) {
@@ -865,7 +862,6 @@ long do_msgrcv(int msqid, void __user *buf, size_t bufsz, long msgtyp,
865862
break;
866863
msg_counter++;
867864
}
868-
tmp = tmp->next;
869865
}
870866
if (!IS_ERR(msg)) {
871867
/*

0 commit comments

Comments
 (0)