From 43e4b6ca7f12df71e2e0cb8618fc221a7f4ca91a Mon Sep 17 00:00:00 2001 From: Conrad Meyer Date: Fri, 18 Oct 2019 21:32:45 +0000 Subject: nvdimm(4): Persist unit numbers in cdev They're formatted into the device name like unit numbers, anyway; store the number in mda_unit => si_drv0 like dev2unit() expects. No functional change intended. Sponsored by: Dell EMC Isilon --- sys/dev/nvdimm/nvdimm_ns.c | 2 +- sys/dev/nvdimm/nvdimm_spa.c | 5 +++-- sys/dev/nvdimm/nvdimm_var.h | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'sys/dev/nvdimm') diff --git a/sys/dev/nvdimm/nvdimm_ns.c b/sys/dev/nvdimm/nvdimm_ns.c index 59facc2bc925..86727016220f 100644 --- a/sys/dev/nvdimm/nvdimm_ns.c +++ b/sys/dev/nvdimm/nvdimm_ns.c @@ -74,7 +74,7 @@ nvdimm_create_namespaces(struct SPA_mapping *spa, ACPI_TABLE_NFIT *nfitbl) ns->dev.spa_efi_mem_flags = spa->dev.spa_efi_mem_flags; ns->dev.spa_memattr = spa->dev.spa_memattr; asprintf(&name, M_NVDIMM, "spa%dns%d", spa->spa_nfit_idx, i); - error = nvdimm_spa_dev_init(&ns->dev, name); + error = nvdimm_spa_dev_init(&ns->dev, name, i); free(name, M_NVDIMM); if (error != 0) break; diff --git a/sys/dev/nvdimm/nvdimm_spa.c b/sys/dev/nvdimm/nvdimm_spa.c index 60d738ca319b..1f7edd09899b 100644 --- a/sys/dev/nvdimm/nvdimm_spa.c +++ b/sys/dev/nvdimm/nvdimm_spa.c @@ -462,13 +462,13 @@ nvdimm_spa_init(struct SPA_mapping *spa, ACPI_NFIT_SYSTEM_ADDRESS *nfitaddr, return (0); asprintf(&name, M_NVDIMM, "spa%d", spa->spa_nfit_idx); - error = nvdimm_spa_dev_init(&spa->dev, name); + error = nvdimm_spa_dev_init(&spa->dev, name, spa->spa_nfit_idx); free(name, M_NVDIMM); return (error); } int -nvdimm_spa_dev_init(struct nvdimm_spa_dev *dev, const char *name) +nvdimm_spa_dev_init(struct nvdimm_spa_dev *dev, const char *name, int unit) { struct make_dev_args mda; struct sglist *spa_sg; @@ -507,6 +507,7 @@ nvdimm_spa_dev_init(struct nvdimm_spa_dev *dev, const char *name) mda.mda_gid = GID_OPERATOR; mda.mda_mode = 0660; mda.mda_si_drv1 = dev; + mda.mda_unit = unit; asprintf(&devname, M_NVDIMM, "nvdimm_%s", name); error = make_dev_s(&mda, &dev->spa_dev, "%s", devname); free(devname, M_NVDIMM); diff --git a/sys/dev/nvdimm/nvdimm_var.h b/sys/dev/nvdimm/nvdimm_var.h index 2d03cc8dda1f..5398f6e123fd 100644 --- a/sys/dev/nvdimm/nvdimm_var.h +++ b/sys/dev/nvdimm/nvdimm_var.h @@ -170,7 +170,7 @@ struct nvdimm_dev *nvdimm_find_by_handle(nfit_handle_t nv_handle); int nvdimm_spa_init(struct SPA_mapping *spa, ACPI_NFIT_SYSTEM_ADDRESS *nfitaddr, enum SPA_mapping_type spa_type); void nvdimm_spa_fini(struct SPA_mapping *spa); -int nvdimm_spa_dev_init(struct nvdimm_spa_dev *dev, const char *name); +int nvdimm_spa_dev_init(struct nvdimm_spa_dev *dev, const char *name, int unit); void nvdimm_spa_dev_fini(struct nvdimm_spa_dev *dev); int nvdimm_create_namespaces(struct SPA_mapping *spa, ACPI_TABLE_NFIT *nfitbl); void nvdimm_destroy_namespaces(struct SPA_mapping *spa); -- cgit v1.2.3