diff options
author | Dan Williams <dan.j.williams@intel.com> | 2017-07-19 17:55:26 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2019-01-07 00:24:45 -0500 |
commit | 21b9e979501fdb5f6797193d70428a2b00bd5247 (patch) | |
tree | 653f9051600f5db2b1a40b832d4c0e2b3eba0a33 /drivers/dax/device.c | |
parent | bfeffd155283772bbe78c6a05dec7c0128ee500c (diff) |
device-dax: Kill dax_region ida
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>
Diffstat (limited to 'drivers/dax/device.c')
-rw-r--r-- | drivers/dax/device.c | 24 |
1 files changed, 3 insertions, 21 deletions
diff --git a/drivers/dax/device.c b/drivers/dax/device.c index 948806e57cee..a5a670c1cd58 100644 --- a/drivers/dax/device.c +++ b/drivers/dax/device.c | |||
@@ -128,7 +128,6 @@ struct dax_region *alloc_dax_region(struct device *parent, int region_id, | |||
128 | dax_region->pfn_flags = pfn_flags; | 128 | dax_region->pfn_flags = pfn_flags; |
129 | kref_init(&dax_region->kref); | 129 | kref_init(&dax_region->kref); |
130 | dax_region->id = region_id; | 130 | dax_region->id = region_id; |
131 | ida_init(&dax_region->ida); | ||
132 | dax_region->align = align; | 131 | dax_region->align = align; |
133 | dax_region->dev = parent; | 132 | dax_region->dev = parent; |
134 | dax_region->base = addr; | 133 | dax_region->base = addr; |
@@ -582,8 +581,6 @@ static void dev_dax_release(struct device *dev) | |||
582 | struct dax_region *dax_region = dev_dax->region; | 581 | struct dax_region *dax_region = dev_dax->region; |
583 | struct dax_device *dax_dev = dev_dax->dax_dev; | 582 | struct dax_device *dax_dev = dev_dax->dax_dev; |
584 | 583 | ||
585 | if (dev_dax->id >= 0) | ||
586 | ida_simple_remove(&dax_region->ida, dev_dax->id); | ||
587 | dax_region_put(dax_region); | 584 | dax_region_put(dax_region); |
588 | put_dax(dax_dev); | 585 | put_dax(dax_dev); |
589 | kfree(dev_dax); | 586 | kfree(dev_dax); |
@@ -642,19 +639,7 @@ struct dev_dax *devm_create_dev_dax(struct dax_region *dax_region, | |||
642 | } | 639 | } |
643 | 640 | ||
644 | if (i < count) | 641 | if (i < count) |
645 | goto err_id; | 642 | goto err; |
646 | |||
647 | if (id < 0) { | ||
648 | id = ida_simple_get(&dax_region->ida, 0, 0, GFP_KERNEL); | ||
649 | dev_dax->id = id; | ||
650 | if (id < 0) { | ||
651 | rc = id; | ||
652 | goto err_id; | ||
653 | } | ||
654 | } else { | ||
655 | /* region provider owns @id lifetime */ | ||
656 | dev_dax->id = -1; | ||
657 | } | ||
658 | 643 | ||
659 | /* | 644 | /* |
660 | * No 'host' or dax_operations since there is no access to this | 645 | * 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, | |||
663 | dax_dev = alloc_dax(dev_dax, NULL, NULL); | 648 | dax_dev = alloc_dax(dev_dax, NULL, NULL); |
664 | if (!dax_dev) { | 649 | if (!dax_dev) { |
665 | rc = -ENOMEM; | 650 | rc = -ENOMEM; |
666 | goto err_dax; | 651 | goto err; |
667 | } | 652 | } |
668 | 653 | ||
669 | /* from here on we're committed to teardown via dax_dev_release() */ | 654 | /* 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, | |||
700 | 685 | ||
701 | return dev_dax; | 686 | return dev_dax; |
702 | 687 | ||
703 | err_dax: | 688 | err: |
704 | if (dev_dax->id >= 0) | ||
705 | ida_simple_remove(&dax_region->ida, dev_dax->id); | ||
706 | err_id: | ||
707 | kfree(dev_dax); | 689 | kfree(dev_dax); |
708 | 690 | ||
709 | return ERR_PTR(rc); | 691 | return ERR_PTR(rc); |