diff options
author | Warner Losh <imp@FreeBSD.org> | 2018-04-23 22:30:17 +0000 |
---|---|---|
committer | Warner Losh <imp@FreeBSD.org> | 2018-04-23 22:30:17 +0000 |
commit | 76583d573de49f489c3b164294be52b658c9e379 (patch) | |
tree | ca479146d0dc45de74974c7cbe4e3311db913b69 /sys/dev/nvme/nvme_ns.c | |
parent | c9e05ccd6290c127204a7dab735c39b56020fec5 (diff) | |
download | src-76583d573de49f489c3b164294be52b658c9e379.tar.gz src-76583d573de49f489c3b164294be52b658c9e379.zip |
Migrate to make_dev_s interface to populate /dev/nvmeX entries
Submitted by: Michael Hordijk
Differential Revision: https://reviews.freebsd.org/D15162
Notes
Notes:
svn path=/head/; revision=332897
Diffstat (limited to 'sys/dev/nvme/nvme_ns.c')
-rw-r--r-- | sys/dev/nvme/nvme_ns.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/sys/dev/nvme/nvme_ns.c b/sys/dev/nvme/nvme_ns.c index bb233c7abb52..557c3e480623 100644 --- a/sys/dev/nvme/nvme_ns.c +++ b/sys/dev/nvme/nvme_ns.c @@ -494,7 +494,9 @@ int nvme_ns_construct(struct nvme_namespace *ns, uint32_t id, struct nvme_controller *ctrlr) { + struct make_dev_args md_args; struct nvme_completion_poll_status status; + int res; int unit; uint16_t oncs; uint8_t dsm; @@ -590,15 +592,20 @@ nvme_ns_construct(struct nvme_namespace *ns, uint32_t id, */ unit = device_get_unit(ctrlr->dev) * NVME_MAX_NAMESPACES + ns->id - 1; - ns->cdev = make_dev_credf(0, &nvme_ns_cdevsw, unit, - NULL, UID_ROOT, GID_WHEEL, 0600, "nvme%dns%d", + make_dev_args_init(&md_args); + md_args.mda_devsw = &nvme_ns_cdevsw; + md_args.mda_unit = unit; + md_args.mda_mode = 0600; + res = make_dev_s(&md_args, &ns->cdev, "nvme%dns%d", device_get_unit(ctrlr->dev), ns->id); + if (res != 0) + return (ENXIO); + #ifdef NVME_UNMAPPED_BIO_SUPPORT ns->cdev->si_flags |= SI_UNMAPPED; #endif - if (ns->cdev != NULL) - ns->cdev->si_drv1 = ns; + ns->cdev->si_drv1 = ns; return (0); } |