Merge branch 'for-3.13/post-mq-drivers' into for-linus
[cascardo/linux.git] / lib / percpu_ida.c
index 0f51c1b..b0698ea 100644 (file)
@@ -371,3 +371,20 @@ out:
        return err;
 }
 EXPORT_SYMBOL_GPL(percpu_ida_for_each_free);
+
+/**
+ * percpu_ida_free_tags - return free tags number of a specific cpu or global pool
+ * @pool: pool related
+ * @cpu: specific cpu or global pool if @cpu == nr_cpu_ids
+ *
+ * Note: this just returns a snapshot of free tags number.
+ */
+unsigned percpu_ida_free_tags(struct percpu_ida *pool, int cpu)
+{
+       struct percpu_ida_cpu *remote;
+       if (cpu == nr_cpu_ids)
+               return pool->nr_free;
+       remote = per_cpu_ptr(pool->tag_cpu, cpu);
+       return remote->nr_free;
+}
+EXPORT_SYMBOL_GPL(percpu_ida_free_tags);