diff options
Diffstat (limited to 'kernel/srcu.c')
-rw-r--r-- | kernel/srcu.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/kernel/srcu.c b/kernel/srcu.c index 3e43a214b4dc..7cf5baba96f9 100644 --- a/kernel/srcu.c +++ b/kernel/srcu.c | |||
@@ -282,12 +282,8 @@ static int srcu_readers_active(struct srcu_struct *sp) | |||
282 | */ | 282 | */ |
283 | void cleanup_srcu_struct(struct srcu_struct *sp) | 283 | void cleanup_srcu_struct(struct srcu_struct *sp) |
284 | { | 284 | { |
285 | int sum; | 285 | if (WARN_ON(srcu_readers_active(sp))) |
286 | 286 | return; /* Leakage unless caller handles error. */ | |
287 | sum = srcu_readers_active(sp); | ||
288 | WARN_ON(sum); /* Leakage unless caller handles error. */ | ||
289 | if (sum != 0) | ||
290 | return; | ||
291 | free_percpu(sp->per_cpu_ref); | 287 | free_percpu(sp->per_cpu_ref); |
292 | sp->per_cpu_ref = NULL; | 288 | sp->per_cpu_ref = NULL; |
293 | } | 289 | } |