diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-09-24 23:15:15 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-09-24 23:15:15 -0400 |
commit | c373ba999103fa794f041eab5bd490714d2dee88 (patch) | |
tree | 8f2b445b1e0af2491c83527967dbcda76054a486 /drivers/edac/edac_mc.c | |
parent | 6f3529f00a0a9ac06413d18d3926adf099cb59af (diff) | |
parent | 851b147e4411df6a1e7e90e2a609773c277eefd2 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'drivers/edac/edac_mc.c')
-rw-r--r-- | drivers/edac/edac_mc.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c index 335b7ebdb11c..b629c41756f0 100644 --- a/drivers/edac/edac_mc.c +++ b/drivers/edac/edac_mc.c | |||
@@ -418,16 +418,14 @@ static void complete_mc_list_del(struct rcu_head *head) | |||
418 | 418 | ||
419 | mci = container_of(head, struct mem_ctl_info, rcu); | 419 | mci = container_of(head, struct mem_ctl_info, rcu); |
420 | INIT_LIST_HEAD(&mci->link); | 420 | INIT_LIST_HEAD(&mci->link); |
421 | complete(&mci->complete); | ||
422 | } | 421 | } |
423 | 422 | ||
424 | static void del_mc_from_global_list(struct mem_ctl_info *mci) | 423 | static void del_mc_from_global_list(struct mem_ctl_info *mci) |
425 | { | 424 | { |
426 | atomic_dec(&edac_handlers); | 425 | atomic_dec(&edac_handlers); |
427 | list_del_rcu(&mci->link); | 426 | list_del_rcu(&mci->link); |
428 | init_completion(&mci->complete); | ||
429 | call_rcu(&mci->rcu, complete_mc_list_del); | 427 | call_rcu(&mci->rcu, complete_mc_list_del); |
430 | wait_for_completion(&mci->complete); | 428 | rcu_barrier(); |
431 | } | 429 | } |
432 | 430 | ||
433 | /** | 431 | /** |