device-dax: Kill dax_region ida
authorDan Williams <dan.j.williams@intel.com>
Wed, 19 Jul 2017 21:55:26 +0000 (14:55 -0700)
committerDan Williams <dan.j.williams@intel.com>
Mon, 7 Jan 2019 05:24:45 +0000 (21:24 -0800)
Commit bbb3be170ac2 "device-dax: fix sysfs duplicate warnings" arranged
for passing a dax instance-id to devm_create_dax_dev(), rather than
generating one internally. Remove the dax_region ida and related code.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/dax/dax-private.h
drivers/dax/device.c

index b6fc4f0..d1b36a4 100644 (file)
@@ -28,7 +28,6 @@
  */
 struct dax_region {
        int id;
-       struct ida ida;
        void *base;
        struct kref kref;
        struct device *dev;
@@ -42,7 +41,6 @@ struct dax_region {
  * @region - parent region
  * @dax_dev - core dax functionality
  * @dev - device core
- * @id - child id in the region
  * @num_resources - number of physical address extents in this device
  * @res - array of physical address ranges
  */
@@ -50,7 +48,6 @@ struct dev_dax {
        struct dax_region *region;
        struct dax_device *dax_dev;
        struct device dev;
-       int id;
        int num_resources;
        struct resource res[0];
 };
index 948806e..a5a670c 100644 (file)
@@ -128,7 +128,6 @@ struct dax_region *alloc_dax_region(struct device *parent, int region_id,
        dax_region->pfn_flags = pfn_flags;
        kref_init(&dax_region->kref);
        dax_region->id = region_id;
-       ida_init(&dax_region->ida);
        dax_region->align = align;
        dax_region->dev = parent;
        dax_region->base = addr;
@@ -582,8 +581,6 @@ static void dev_dax_release(struct device *dev)
        struct dax_region *dax_region = dev_dax->region;
        struct dax_device *dax_dev = dev_dax->dax_dev;
 
-       if (dev_dax->id >= 0)
-               ida_simple_remove(&dax_region->ida, dev_dax->id);
        dax_region_put(dax_region);
        put_dax(dax_dev);
        kfree(dev_dax);
@@ -642,19 +639,7 @@ struct dev_dax *devm_create_dev_dax(struct dax_region *dax_region,
        }
 
        if (i < count)
-               goto err_id;
-
-       if (id < 0) {
-               id = ida_simple_get(&dax_region->ida, 0, 0, GFP_KERNEL);
-               dev_dax->id = id;
-               if (id < 0) {
-                       rc = id;
-                       goto err_id;
-               }
-       } else {
-               /* region provider owns @id lifetime */
-               dev_dax->id = -1;
-       }
+               goto err;
 
        /*
         * No 'host' or dax_operations since there is no access to this
@@ -663,7 +648,7 @@ struct dev_dax *devm_create_dev_dax(struct dax_region *dax_region,
        dax_dev = alloc_dax(dev_dax, NULL, NULL);
        if (!dax_dev) {
                rc = -ENOMEM;
-               goto err_dax;
+               goto err;
        }
 
        /* from here on we're committed to teardown via dax_dev_release() */
@@ -700,10 +685,7 @@ struct dev_dax *devm_create_dev_dax(struct dax_region *dax_region,
 
        return dev_dax;
 
- err_dax:
-       if (dev_dax->id >= 0)
-               ida_simple_remove(&dax_region->ida, dev_dax->id);
- err_id:
+ err:
        kfree(dev_dax);
 
        return ERR_PTR(rc);