diff options
author | mochel@digitalimplant.org <mochel@digitalimplant.org> | 2005-03-24 21:59:59 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2005-06-20 18:15:19 -0400 |
commit | 0293a509405dccecc30783a5d729d615b68d6a77 (patch) | |
tree | 69856eefdaba010e35dd7fbe2e5bb152a110d186 /lib/klist.c | |
parent | 0956af53afea290c5676c75249fc2c180d831375 (diff) |
[PATCH] Don't reference NULL klist pointer in klist_remove().
Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
diff -Nru a/lib/klist.c b/lib/klist.c
Diffstat (limited to 'lib/klist.c')
-rw-r--r-- | lib/klist.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/klist.c b/lib/klist.c index 02177d72dc89..738ab810160a 100644 --- a/lib/klist.c +++ b/lib/klist.c | |||
@@ -145,9 +145,10 @@ EXPORT_SYMBOL_GPL(klist_del); | |||
145 | 145 | ||
146 | void klist_remove(struct klist_node * n) | 146 | void klist_remove(struct klist_node * n) |
147 | { | 147 | { |
148 | spin_lock(&n->n_klist->k_lock); | 148 | struct klist * k = n->n_klist; |
149 | spin_lock(&k->k_lock); | ||
149 | klist_dec_and_del(n); | 150 | klist_dec_and_del(n); |
150 | spin_unlock(&n->n_klist->k_lock); | 151 | spin_unlock(&k->k_lock); |
151 | wait_for_completion(&n->n_removed); | 152 | wait_for_completion(&n->n_removed); |
152 | } | 153 | } |
153 | 154 | ||