diff options
| author | Lai Jiangshan <[email protected]> | 2010-12-22 06:18:50 +0000 |
|---|---|---|
| committer | Steven Rostedt <[email protected]> | 2011-03-11 20:09:52 +0000 |
| commit | 2e12978a9f7a7abd54e8eb9ce70a7718767b8b2c (patch) | |
| tree | eb4f298e084b5bcc4922511237cd6ce2e158abdd /net/unix/af_unix.c | |
| parent | Linux 2.6.38-rc8 (diff) | |
| download | kernel-2e12978a9f7a7abd54e8eb9ce70a7718767b8b2c.tar.gz kernel-2e12978a9f7a7abd54e8eb9ce70a7718767b8b2c.zip | |
futex,plist: Pass the real head of the priority list to plist_del()
Some plist_del()s in kernel/futex.c are passed a faked head of the
priority list.
It does not fail because the current code does not require the real head
in plist_del(). The current code of plist_del() just uses the head for checking,
so it will not cause a bad result even when we use a faked head.
But it is undocumented usage:
/**
* plist_del - Remove a @node from plist.
*
* @node: &struct plist_node pointer - entry to be removed
* @head: &struct plist_head pointer - list head
*/
The document says that the @head is the "list head" head of the priority list.
In futex code, several places use "plist_del(&q->list, &q->list.plist);",
they pass a fake head. We need to fix them all.
Thanks to Darren Hart for many suggestions.
Acked-by: Darren Hart <[email protected]>
Signed-off-by: Lai Jiangshan <[email protected]>
LKML-Reference: <[email protected]>
Signed-off-by: Steven Rostedt <[email protected]>
Diffstat (limited to 'net/unix/af_unix.c')
0 files changed, 0 insertions, 0 deletions
