aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/nvme/nvme_ns.c
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2018-04-23 22:30:17 +0000
committerWarner Losh <imp@FreeBSD.org>2018-04-23 22:30:17 +0000
commit76583d573de49f489c3b164294be52b658c9e379 (patch)
treeca479146d0dc45de74974c7cbe4e3311db913b69 /sys/dev/nvme/nvme_ns.c
parentc9e05ccd6290c127204a7dab735c39b56020fec5 (diff)
downloadsrc-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.c15
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);
}