diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/percpu_ida.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/percpu_ida.c b/lib/percpu_ida.c index 0f51c1b556cf..b0698ea972c6 100644 --- a/lib/percpu_ida.c +++ b/lib/percpu_ida.c | |||
| @@ -371,3 +371,20 @@ out: | |||
| 371 | return err; | 371 | return err; |
| 372 | } | 372 | } |
| 373 | EXPORT_SYMBOL_GPL(percpu_ida_for_each_free); | 373 | EXPORT_SYMBOL_GPL(percpu_ida_for_each_free); |
| 374 | |||
| 375 | /** | ||
| 376 | * percpu_ida_free_tags - return free tags number of a specific cpu or global pool | ||
| 377 | * @pool: pool related | ||
| 378 | * @cpu: specific cpu or global pool if @cpu == nr_cpu_ids | ||
| 379 | * | ||
| 380 | * Note: this just returns a snapshot of free tags number. | ||
| 381 | */ | ||
| 382 | unsigned percpu_ida_free_tags(struct percpu_ida *pool, int cpu) | ||
| 383 | { | ||
| 384 | struct percpu_ida_cpu *remote; | ||
| 385 | if (cpu == nr_cpu_ids) | ||
| 386 | return pool->nr_free; | ||
| 387 | remote = per_cpu_ptr(pool->tag_cpu, cpu); | ||
| 388 | return remote->nr_free; | ||
| 389 | } | ||
| 390 | EXPORT_SYMBOL_GPL(percpu_ida_free_tags); | ||
