diff options
author | Dan Williams <dan.j.williams@intel.com> | 2019-11-07 04:43:31 +0300 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2019-11-07 17:44:29 +0300 |
commit | 33dd70752cd76f4d883a165a674f13121a4155ed (patch) | |
tree | fd7d361649e73adafe59ade9db9429a1be4e0516 /lib/memregion.c | |
parent | 199c8471761273b7e287914cee968ddf21dfbfe0 (diff) | |
download | linux-33dd70752cd76f4d883a165a674f13121a4155ed.tar.xz |
lib: Uplevel the pmem "region" ida to a global allocator
In preparation for handling platform differentiated memory types beyond
persistent memory, uplevel the "region" identifier to a global number
space. This enables a device-dax instance to be registered to any memory
type with guaranteed unique names.
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'lib/memregion.c')
-rw-r--r-- | lib/memregion.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/memregion.c b/lib/memregion.c new file mode 100644 index 000000000000..77c85b5251da --- /dev/null +++ b/lib/memregion.c @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* identifiers for device / performance-differentiated memory regions */ +#include <linux/idr.h> +#include <linux/types.h> + +static DEFINE_IDA(memregion_ids); + +int memregion_alloc(gfp_t gfp) +{ + return ida_alloc(&memregion_ids, gfp); +} +EXPORT_SYMBOL(memregion_alloc); + +void memregion_free(int id) +{ + ida_free(&memregion_ids, id); +} +EXPORT_SYMBOL(memregion_free); |