From bba428d6d8861b8ccf5cab5b05b37327da615ee3 Mon Sep 17 00:00:00 2001 From: Jesper Dangaard Brouer Date: Wed, 23 Sep 2009 15:57:29 -0700 Subject: [PATCH] --- yaml --- r: 165709 b: refs/heads/master c: 458e5ff13e1bed050990d97e9aa55bcdafc951a7 h: refs/heads/master i: 165707: b1dd67fc3ab84bf2577e4c82d84d0fa39c070a3f v: v3 --- [refs] | 2 +- trunk/drivers/edac/edac_device.c | 5 +---- trunk/drivers/edac/edac_mc.c | 4 +--- trunk/drivers/edac/edac_pci.c | 4 +--- 4 files changed, 4 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 0bfcd12f9a9c..4bd8bb9973a2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dd8ef1db87a486577b3a76e6ad45df52e12d0145 +refs/heads/master: 458e5ff13e1bed050990d97e9aa55bcdafc951a7 diff --git a/trunk/drivers/edac/edac_device.c b/trunk/drivers/edac/edac_device.c index b02a6a69a8f0..d5e13c94714f 100644 --- a/trunk/drivers/edac/edac_device.c +++ b/trunk/drivers/edac/edac_device.c @@ -356,7 +356,6 @@ static void complete_edac_device_list_del(struct rcu_head *head) edac_dev = container_of(head, struct edac_device_ctl_info, rcu); INIT_LIST_HEAD(&edac_dev->link); - complete(&edac_dev->removal_complete); } /* @@ -369,10 +368,8 @@ static void del_edac_device_from_global_list(struct edac_device_ctl_info *edac_device) { list_del_rcu(&edac_device->link); - - init_completion(&edac_device->removal_complete); call_rcu(&edac_device->rcu, complete_edac_device_list_del); - wait_for_completion(&edac_device->removal_complete); + rcu_barrier(); } /* diff --git a/trunk/drivers/edac/edac_mc.c b/trunk/drivers/edac/edac_mc.c index 335b7ebdb11c..b629c41756f0 100644 --- a/trunk/drivers/edac/edac_mc.c +++ b/trunk/drivers/edac/edac_mc.c @@ -418,16 +418,14 @@ static void complete_mc_list_del(struct rcu_head *head) mci = container_of(head, struct mem_ctl_info, rcu); INIT_LIST_HEAD(&mci->link); - complete(&mci->complete); } static void del_mc_from_global_list(struct mem_ctl_info *mci) { atomic_dec(&edac_handlers); list_del_rcu(&mci->link); - init_completion(&mci->complete); call_rcu(&mci->rcu, complete_mc_list_del); - wait_for_completion(&mci->complete); + rcu_barrier(); } /** diff --git a/trunk/drivers/edac/edac_pci.c b/trunk/drivers/edac/edac_pci.c index 30b585b1d60b..efb5d5650783 100644 --- a/trunk/drivers/edac/edac_pci.c +++ b/trunk/drivers/edac/edac_pci.c @@ -174,7 +174,6 @@ static void complete_edac_pci_list_del(struct rcu_head *head) pci = container_of(head, struct edac_pci_ctl_info, rcu); INIT_LIST_HEAD(&pci->link); - complete(&pci->complete); } /* @@ -185,9 +184,8 @@ static void complete_edac_pci_list_del(struct rcu_head *head) static void del_edac_pci_from_global_list(struct edac_pci_ctl_info *pci) { list_del_rcu(&pci->link); - init_completion(&pci->complete); call_rcu(&pci->rcu, complete_edac_pci_list_del); - wait_for_completion(&pci->complete); + rcu_barrier(); } #if 0