Lines Matching refs:minor

718 #define	NVME_MINOR_INST(minor)	((minor) >> NVME_MINOR_INST_SHIFT)  argument
719 #define NVME_MINOR_NSID(minor) ((minor) & ((1 << NVME_MINOR_INST_SHIFT) - 1)) argument
4493 nvme_minor_free(nvme_minor_t *minor) in nvme_minor_free() argument
4495 if (minor->nm_minor > 0) { in nvme_minor_free()
4496 ASSERT3S(minor->nm_minor, >=, NVME_OPEN_MINOR_MIN); in nvme_minor_free()
4497 id_free(nvme_open_minors, minor->nm_minor); in nvme_minor_free()
4498 minor->nm_minor = 0; in nvme_minor_free()
4500 VERIFY0(list_link_active(&minor->nm_ctrl_lock.nli_node)); in nvme_minor_free()
4501 VERIFY0(list_link_active(&minor->nm_ns_lock.nli_node)); in nvme_minor_free()
4502 cv_destroy(&minor->nm_cv); in nvme_minor_free()
4503 kmem_free(minor, sizeof (nvme_minor_t)); in nvme_minor_free()
5428 nvme_minor_t *minor = NULL; in nvme_open() local
5456 minor = kmem_zalloc(sizeof (nvme_minor_t), KM_NOSLEEP_LAZY); in nvme_open()
5457 if (minor == NULL) { in nvme_open()
5461 cv_init(&minor->nm_cv, NULL, CV_DRIVER, NULL); in nvme_open()
5462 list_link_init(&minor->nm_ctrl_lock.nli_node); in nvme_open()
5463 minor->nm_ctrl_lock.nli_nvme = nvme; in nvme_open()
5464 minor->nm_ctrl_lock.nli_minor = minor; in nvme_open()
5465 list_link_init(&minor->nm_ns_lock.nli_node); in nvme_open()
5466 minor->nm_ns_lock.nli_nvme = nvme; in nvme_open()
5467 minor->nm_ns_lock.nli_minor = minor; in nvme_open()
5468 minor->nm_minor = id_alloc_nosleep(nvme_open_minors); in nvme_open()
5469 if (minor->nm_minor == -1) { in nvme_open()
5470 nvme_minor_free(minor); in nvme_open()
5474 minor->nm_ctrl = nvme; in nvme_open()
5476 minor->nm_ns = nvme_nsid2ns(nvme, nsid); in nvme_open()
5484 avl_add(&nvme_open_minors_avl, minor); in nvme_open()
5500 if (minor->nm_ns != NULL) { in nvme_open()
5506 nvme_rwlock(minor, &lock); in nvme_open()
5511 avl_remove(&nvme_open_minors_avl, minor); in nvme_open()
5514 nvme_minor_free(minor); in nvme_open()
5520 *devp = makedevice(getmajor(*devp), (minor_t)minor->nm_minor); in nvme_open()
5528 nvme_minor_t *minor; in nvme_close() local
5535 minor = nvme_minor_find_by_dev(dev); in nvme_close()
5536 if (minor == NULL) { in nvme_close()
5541 avl_remove(&nvme_open_minors_avl, minor); in nvme_close()
5548 nvme = minor->nm_ctrl; in nvme_close()
5550 ASSERT3U(minor->nm_ctrl_lock.nli_state, !=, NVME_LOCK_STATE_BLOCKED); in nvme_close()
5551 ASSERT3U(minor->nm_ns_lock.nli_state, !=, NVME_LOCK_STATE_BLOCKED); in nvme_close()
5553 if (minor->nm_ctrl_lock.nli_state == NVME_LOCK_STATE_ACQUIRED) { in nvme_close()
5554 VERIFY3P(minor->nm_ctrl_lock.nli_lock, !=, NULL); in nvme_close()
5555 nvme_rwunlock(&minor->nm_ctrl_lock, in nvme_close()
5556 minor->nm_ctrl_lock.nli_lock); in nvme_close()
5559 if (minor->nm_ns_lock.nli_state == NVME_LOCK_STATE_ACQUIRED) { in nvme_close()
5560 VERIFY3P(minor->nm_ns_lock.nli_lock, !=, NULL); in nvme_close()
5561 nvme_rwunlock(&minor->nm_ns_lock, minor->nm_ns_lock.nli_lock); in nvme_close()
5565 nvme_minor_free(minor); in nvme_close()
5616 nvme_ioctl_excl_check(nvme_minor_t *minor, nvme_ioctl_common_t *ioc, in nvme_ioctl_excl_check() argument
5619 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_excl_check()
5638 have_ctrl = nvme->n_lock.nl_writer == &minor->nm_ctrl_lock; in nvme_ioctl_excl_check()
5646 have_ns = ns->ns_lock.nl_writer == &minor->nm_ns_lock; in nvme_ioctl_excl_check()
5650 ASSERT3P(minor->nm_ns_lock.nli_ns, ==, ns); in nvme_ioctl_excl_check()
5703 nvme_ioctl_check(nvme_minor_t *minor, nvme_ioctl_common_t *ioc, in nvme_ioctl_check() argument
5713 if (minor->nm_ns != NULL) { in nvme_ioctl_check()
5720 ioc->nioc_nsid = minor->nm_ns->ns_id; in nvme_ioctl_check()
5721 } else if (ioc->nioc_nsid != minor->nm_ns->ns_id) { in nvme_ioctl_check()
5726 return (nvme_ioctl_excl_check(minor, ioc, check)); in nvme_ioctl_check()
5736 return (nvme_ioctl_excl_check(minor, ioc, check)); in nvme_ioctl_check()
5750 return (nvme_ioctl_excl_check(minor, ioc, check)); in nvme_ioctl_check()
5765 if (ioc->nioc_nsid > minor->nm_ctrl->n_namespace_count && in nvme_ioctl_check()
5783 return (nvme_ioctl_excl_check(minor, ioc, check)); in nvme_ioctl_check()
5787 nvme_ioctl_ctrl_info(nvme_minor_t *minor, intptr_t arg, int mode, in nvme_ioctl_ctrl_info() argument
5790 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_ctrl_info()
5811 if (!nvme_ioctl_check(minor, &info->nci_common, in nvme_ioctl_ctrl_info()
5861 nvme_ioctl_ns_info(nvme_minor_t *minor, intptr_t arg, int mode, cred_t *cred_p) in nvme_ioctl_ns_info() argument
5863 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_ns_info()
5884 if (!nvme_ioctl_check(minor, &ns_info->nni_common, in nvme_ioctl_ns_info()
5942 nvme_ioctl_identify(nvme_minor_t *minor, intptr_t arg, int mode, cred_t *cred_p) in nvme_ioctl_identify() argument
5945 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_identify()
5982 if (!nvme_ioctl_check(minor, &id.nid_common, &nvme_check_identify)) { in nvme_ioctl_identify()
5986 ns_minor = minor->nm_ns != NULL; in nvme_ioctl_identify()
6124 nvme_ioctl_get_logpage(nvme_minor_t *minor, intptr_t arg, int mode, in nvme_ioctl_get_logpage() argument
6127 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_get_logpage()
6173 if (!nvme_ioctl_check(minor, &log.nigl_common, in nvme_ioctl_get_logpage()
6230 nvme_ioctl_get_feature(nvme_minor_t *minor, intptr_t arg, int mode, in nvme_ioctl_get_feature() argument
6233 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_get_feature()
6277 if (!nvme_ioctl_check(minor, &feat.nigf_common, in nvme_ioctl_get_feature()
6340 nvme_ioctl_format(nvme_minor_t *minor, intptr_t arg, int mode, cred_t *cred_p) in nvme_ioctl_format() argument
6342 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_format()
6355 if (!nvme_ioctl_check(minor, &ioc.nif_common, &nvme_check_format)) { in nvme_ioctl_format()
6387 nvme_ioctl_detach(nvme_minor_t *minor, intptr_t arg, int mode, cred_t *cred_p) in nvme_ioctl_detach() argument
6389 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_detach()
6403 if (!nvme_ioctl_check(minor, &com, &nvme_check_attach_detach)) { in nvme_ioctl_detach()
6423 nvme_ioctl_attach(nvme_minor_t *minor, intptr_t arg, int mode, in nvme_ioctl_attach() argument
6426 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_attach()
6441 if (!nvme_ioctl_check(minor, &com, &nvme_check_attach_detach)) { in nvme_ioctl_attach()
6494 nvme_ioctl_firmware_download(nvme_minor_t *minor, intptr_t arg, int mode, in nvme_ioctl_firmware_download() argument
6497 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_firmware_download()
6519 if (!nvme_ioctl_check(minor, &fw.fwl_common, &nvme_check_firmware)) { in nvme_ioctl_firmware_download()
6591 nvme_ioctl_firmware_commit(nvme_minor_t *minor, intptr_t arg, int mode, in nvme_ioctl_firmware_commit() argument
6594 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_firmware_commit()
6613 if (!nvme_ioctl_check(minor, &fw.fwc_common, &nvme_check_firmware)) { in nvme_ioctl_firmware_commit()
6742 nvme_ioctl_passthru(nvme_minor_t *minor, intptr_t arg, int mode, cred_t *cred_p) in nvme_ioctl_passthru() argument
6744 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_passthru()
6764 if (!nvme_ioctl_check(minor, &pass.npc_common, &nvme_check_passthru)) { in nvme_ioctl_passthru()
6824 nvme_ioctl_lock(nvme_minor_t *minor, intptr_t arg, int mode, in nvme_ioctl_lock() argument
6829 nvme_t *nvme = minor->nm_ctrl; in nvme_ioctl_lock()
6862 if (!nvme_ioctl_check(minor, &lock.nil_common, &nvme_check_locking)) { in nvme_ioctl_lock()
6903 if (minor->nm_ctrl_lock.nli_state == NVME_LOCK_STATE_BLOCKED || in nvme_ioctl_lock()
6904 minor->nm_ns_lock.nli_state == NVME_LOCK_STATE_BLOCKED) { in nvme_ioctl_lock()
6912 minor->nm_ctrl_lock.nli_state == NVME_LOCK_STATE_ACQUIRED) || in nvme_ioctl_lock()
6914 minor->nm_ns_lock.nli_state == NVME_LOCK_STATE_ACQUIRED && in nvme_ioctl_lock()
6915 minor->nm_ns_lock.nli_ns->ns_id == lock.nil_common.nioc_nsid)) { in nvme_ioctl_lock()
6923 minor->nm_ns_lock.nli_state != NVME_LOCK_STATE_UNLOCKED) { in nvme_ioctl_lock()
6931 (minor->nm_ctrl_lock.nli_state == NVME_LOCK_STATE_ACQUIRED && in nvme_ioctl_lock()
6932 minor->nm_ctrl_lock.nli_curlevel == NVME_LOCK_L_WRITE)) { in nvme_ioctl_lock()
6940 minor->nm_ns_lock.nli_state != NVME_LOCK_STATE_UNLOCKED) { in nvme_ioctl_lock()
6954 ASSERT3P(minor->nm_ns_lock.nli_lock, ==, NULL); in nvme_ioctl_lock()
6955 ASSERT3U(minor->nm_ns_lock.nli_state, ==, in nvme_ioctl_lock()
6957 ASSERT3U(minor->nm_ns_lock.nli_curlevel, ==, 0); in nvme_ioctl_lock()
6958 ASSERT3P(minor->nm_ns_lock.nli_ns, ==, NULL); in nvme_ioctl_lock()
6960 if (minor->nm_ns != NULL) { in nvme_ioctl_lock()
6961 ASSERT3U(minor->nm_ns->ns_id, ==, in nvme_ioctl_lock()
6965 ASSERT0(list_link_active(&minor->nm_ns_lock.nli_node)); in nvme_ioctl_lock()
6967 ASSERT3P(minor->nm_ctrl_lock.nli_lock, ==, NULL); in nvme_ioctl_lock()
6968 ASSERT3U(minor->nm_ctrl_lock.nli_state, ==, in nvme_ioctl_lock()
6970 ASSERT3U(minor->nm_ctrl_lock.nli_curlevel, ==, 0); in nvme_ioctl_lock()
6971 ASSERT3P(minor->nm_ns_lock.nli_ns, ==, NULL); in nvme_ioctl_lock()
6972 ASSERT0(list_link_active(&minor->nm_ctrl_lock.nli_node)); in nvme_ioctl_lock()
6974 ASSERT3P(minor->nm_ns_lock.nli_lock, ==, NULL); in nvme_ioctl_lock()
6975 ASSERT3U(minor->nm_ns_lock.nli_state, ==, in nvme_ioctl_lock()
6977 ASSERT3U(minor->nm_ns_lock.nli_curlevel, ==, 0); in nvme_ioctl_lock()
6978 ASSERT3P(minor->nm_ns_lock.nli_ns, ==, NULL); in nvme_ioctl_lock()
6979 ASSERT0(list_link_active(&minor->nm_ns_lock.nli_node)); in nvme_ioctl_lock()
6986 nvme_rwlock(minor, &lock); in nvme_ioctl_lock()
6999 nvme_ioctl_unlock(nvme_minor_t *minor, intptr_t arg, int mode, in nvme_ioctl_unlock() argument
7003 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_unlock()
7029 if (!nvme_ioctl_check(minor, &unlock.niu_common, &nvme_check_locking)) { in nvme_ioctl_unlock()
7046 if (minor->nm_ctrl_lock.nli_state != NVME_LOCK_STATE_ACQUIRED) { in nvme_ioctl_unlock()
7053 if (minor->nm_ns_lock.nli_ns == NULL) { in nvme_ioctl_unlock()
7066 if (minor->nm_ns_lock.nli_ns->ns_id != in nvme_ioctl_unlock()
7069 ASSERT3P(minor->nm_ns, ==, NULL); in nvme_ioctl_unlock()
7075 if (minor->nm_ns_lock.nli_state != NVME_LOCK_STATE_ACQUIRED) { in nvme_ioctl_unlock()
7089 info = &minor->nm_ctrl_lock; in nvme_ioctl_unlock()
7096 info = &minor->nm_ns_lock; in nvme_ioctl_unlock()
7119 nvme_minor_t *minor; in nvme_ioctl() local
7122 minor = nvme_minor_find_by_dev(dev); in nvme_ioctl()
7123 if (minor == NULL) { in nvme_ioctl()
7127 nvme = minor->nm_ctrl; in nvme_ioctl()
7149 return (nvme_ioctl_ctrl_info(minor, arg, mode, cred_p)); in nvme_ioctl()
7151 return (nvme_ioctl_identify(minor, arg, mode, cred_p)); in nvme_ioctl()
7153 return (nvme_ioctl_get_logpage(minor, arg, mode, cred_p)); in nvme_ioctl()
7155 return (nvme_ioctl_get_feature(minor, arg, mode, cred_p)); in nvme_ioctl()
7157 return (nvme_ioctl_detach(minor, arg, mode, cred_p)); in nvme_ioctl()
7159 return (nvme_ioctl_attach(minor, arg, mode, cred_p)); in nvme_ioctl()
7161 return (nvme_ioctl_format(minor, arg, mode, cred_p)); in nvme_ioctl()
7163 return (nvme_ioctl_firmware_download(minor, arg, mode, in nvme_ioctl()
7166 return (nvme_ioctl_firmware_commit(minor, arg, mode, in nvme_ioctl()
7169 return (nvme_ioctl_ns_info(minor, arg, mode, cred_p)); in nvme_ioctl()
7171 return (nvme_ioctl_passthru(minor, arg, mode, cred_p)); in nvme_ioctl()
7173 return (nvme_ioctl_lock(minor, arg, mode, cred_p)); in nvme_ioctl()
7175 return (nvme_ioctl_unlock(minor, arg, mode, cred_p)); in nvme_ioctl()