diff options
author | Jan H. Schönherr <schnhrr@cs.tu-berlin.de> | 2011-07-19 21:10:26 +0200 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2011-07-20 14:10:20 -0700 |
commit | 7f70893173b056df691b2ee7546bb44fd9abae6a (patch) | |
tree | 5ac9a61694116b0743b3f407ee935bb07e9271e2 /include/linux/rculist.h | |
parent | cefcb602012482003ca2ccc44fcba628d006e4bd (diff) | |
download | linux-7f70893173b056df691b2ee7546bb44fd9abae6a.tar.gz linux-7f70893173b056df691b2ee7546bb44fd9abae6a.tar.bz2 linux-7f70893173b056df691b2ee7546bb44fd9abae6a.zip |
rcu: Fix wrong check in list_splice_init_rcu()
If the list to be spliced is empty, then list_splice_init_rcu() has
nothing to do. Unfortunately, list_splice_init_rcu() does not check
the list to be spliced; it instead checks the list to be spliced into.
This results in memory leaks given current usage. This commit
therefore fixes the empty-list check.
Signed-off-by: Jan H. Schönherr <schnhrr@cs.tu-berlin.de>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'include/linux/rculist.h')
-rw-r--r-- | include/linux/rculist.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/rculist.h b/include/linux/rculist.h index e3beb315517a..d079290843a9 100644 --- a/include/linux/rculist.h +++ b/include/linux/rculist.h @@ -183,7 +183,7 @@ static inline void list_splice_init_rcu(struct list_head *list, struct list_head *last = list->prev; struct list_head *at = head->next; - if (list_empty(head)) + if (list_empty(list)) return; /* "first" and "last" tracking list, so initialize it. */ |