diff options
Diffstat (limited to 'kernel/rcu/srcutree.c')
| -rw-r--r-- | kernel/rcu/srcutree.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c index 2e7f6b460150..86c7fd0a1bfe 100644 --- a/kernel/rcu/srcutree.c +++ b/kernel/rcu/srcutree.c | |||
| @@ -186,7 +186,6 @@ static int init_srcu_struct_fields(struct srcu_struct *sp, bool is_static) | |||
| 186 | mutex_init(&sp->srcu_barrier_mutex); | 186 | mutex_init(&sp->srcu_barrier_mutex); |
| 187 | atomic_set(&sp->srcu_barrier_cpu_cnt, 0); | 187 | atomic_set(&sp->srcu_barrier_cpu_cnt, 0); |
| 188 | INIT_DELAYED_WORK(&sp->work, process_srcu); | 188 | INIT_DELAYED_WORK(&sp->work, process_srcu); |
| 189 | INIT_LIST_HEAD(&sp->srcu_boot_entry); | ||
| 190 | if (!is_static) | 189 | if (!is_static) |
| 191 | sp->sda = alloc_percpu(struct srcu_data); | 190 | sp->sda = alloc_percpu(struct srcu_data); |
| 192 | init_srcu_struct_nodes(sp, is_static); | 191 | init_srcu_struct_nodes(sp, is_static); |
| @@ -708,8 +707,8 @@ static void srcu_funnel_gp_start(struct srcu_struct *sp, struct srcu_data *sdp, | |||
| 708 | if (likely(srcu_init_done)) | 707 | if (likely(srcu_init_done)) |
| 709 | queue_delayed_work(rcu_gp_wq, &sp->work, | 708 | queue_delayed_work(rcu_gp_wq, &sp->work, |
| 710 | srcu_get_delay(sp)); | 709 | srcu_get_delay(sp)); |
| 711 | else if (list_empty(&sp->srcu_boot_entry)) | 710 | else if (list_empty(&sp->work.work.entry)) |
| 712 | list_add(&sp->srcu_boot_entry, &srcu_boot_list); | 711 | list_add(&sp->work.work.entry, &srcu_boot_list); |
| 713 | } | 712 | } |
| 714 | spin_unlock_irqrestore_rcu_node(sp, flags); | 713 | spin_unlock_irqrestore_rcu_node(sp, flags); |
| 715 | } | 714 | } |
| @@ -1323,10 +1322,10 @@ void __init srcu_init(void) | |||
| 1323 | 1322 | ||
| 1324 | srcu_init_done = true; | 1323 | srcu_init_done = true; |
| 1325 | while (!list_empty(&srcu_boot_list)) { | 1324 | while (!list_empty(&srcu_boot_list)) { |
| 1326 | sp = list_first_entry(&srcu_boot_list, | 1325 | sp = list_first_entry(&srcu_boot_list, struct srcu_struct, |
| 1327 | struct srcu_struct, srcu_boot_entry); | 1326 | work.work.entry); |
| 1328 | check_init_srcu_struct(sp); | 1327 | check_init_srcu_struct(sp); |
| 1329 | list_del_init(&sp->srcu_boot_entry); | 1328 | list_del_init(&sp->work.work.entry); |
| 1330 | queue_work(rcu_gp_wq, &sp->work.work); | 1329 | queue_work(rcu_gp_wq, &sp->work.work); |
| 1331 | } | 1330 | } |
| 1332 | } | 1331 | } |
