Lines Matching refs:minor

686 #define	NVME_MINOR_INST(minor)	((minor) >> NVME_MINOR_INST_SHIFT)  argument
687 #define NVME_MINOR_NSID(minor) ((minor) & ((1 << NVME_MINOR_INST_SHIFT) - 1)) argument
4377 nvme_minor_free(nvme_minor_t *minor) in nvme_minor_free() argument
4379 if (minor->nm_minor > 0) { in nvme_minor_free()
4380 ASSERT3S(minor->nm_minor, >=, NVME_OPEN_MINOR_MIN); in nvme_minor_free()
4381 id_free(nvme_open_minors, minor->nm_minor); in nvme_minor_free()
4382 minor->nm_minor = 0; in nvme_minor_free()
4384 VERIFY0(list_link_active(&minor->nm_ctrl_lock.nli_node)); in nvme_minor_free()
4385 VERIFY0(list_link_active(&minor->nm_ns_lock.nli_node)); in nvme_minor_free()
4386 cv_destroy(&minor->nm_cv); in nvme_minor_free()
4387 kmem_free(minor, sizeof (nvme_minor_t)); in nvme_minor_free()
5334 nvme_minor_t *minor = NULL; in nvme_open() local
5362 minor = kmem_zalloc(sizeof (nvme_minor_t), KM_NOSLEEP_LAZY); in nvme_open()
5363 if (minor == NULL) { in nvme_open()
5367 cv_init(&minor->nm_cv, NULL, CV_DRIVER, NULL); in nvme_open()
5368 list_link_init(&minor->nm_ctrl_lock.nli_node); in nvme_open()
5369 minor->nm_ctrl_lock.nli_nvme = nvme; in nvme_open()
5370 minor->nm_ctrl_lock.nli_minor = minor; in nvme_open()
5371 list_link_init(&minor->nm_ns_lock.nli_node); in nvme_open()
5372 minor->nm_ns_lock.nli_nvme = nvme; in nvme_open()
5373 minor->nm_ns_lock.nli_minor = minor; in nvme_open()
5374 minor->nm_minor = id_alloc_nosleep(nvme_open_minors); in nvme_open()
5375 if (minor->nm_minor == -1) { in nvme_open()
5376 nvme_minor_free(minor); in nvme_open()
5380 minor->nm_ctrl = nvme; in nvme_open()
5382 minor->nm_ns = nvme_nsid2ns(nvme, nsid); in nvme_open()
5390 avl_add(&nvme_open_minors_avl, minor); in nvme_open()
5406 if (minor->nm_ns != NULL) { in nvme_open()
5412 nvme_rwlock(minor, &lock); in nvme_open()
5417 avl_remove(&nvme_open_minors_avl, minor); in nvme_open()
5420 nvme_minor_free(minor); in nvme_open()
5426 *devp = makedevice(getmajor(*devp), (minor_t)minor->nm_minor); in nvme_open()
5434 nvme_minor_t *minor; in nvme_close() local
5441 minor = nvme_minor_find_by_dev(dev); in nvme_close()
5442 if (minor == NULL) { in nvme_close()
5447 avl_remove(&nvme_open_minors_avl, minor); in nvme_close()
5454 nvme = minor->nm_ctrl; in nvme_close()
5456 ASSERT3U(minor->nm_ctrl_lock.nli_state, !=, NVME_LOCK_STATE_BLOCKED); in nvme_close()
5457 ASSERT3U(minor->nm_ns_lock.nli_state, !=, NVME_LOCK_STATE_BLOCKED); in nvme_close()
5459 if (minor->nm_ctrl_lock.nli_state == NVME_LOCK_STATE_ACQUIRED) { in nvme_close()
5460 VERIFY3P(minor->nm_ctrl_lock.nli_lock, !=, NULL); in nvme_close()
5461 nvme_rwunlock(&minor->nm_ctrl_lock, in nvme_close()
5462 minor->nm_ctrl_lock.nli_lock); in nvme_close()
5465 if (minor->nm_ns_lock.nli_state == NVME_LOCK_STATE_ACQUIRED) { in nvme_close()
5466 VERIFY3P(minor->nm_ns_lock.nli_lock, !=, NULL); in nvme_close()
5467 nvme_rwunlock(&minor->nm_ns_lock, minor->nm_ns_lock.nli_lock); in nvme_close()
5471 nvme_minor_free(minor); in nvme_close()
5522 nvme_ioctl_excl_check(nvme_minor_t *minor, nvme_ioctl_common_t *ioc, in nvme_ioctl_excl_check() argument
5525 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_excl_check()
5544 have_ctrl = nvme->n_lock.nl_writer == &minor->nm_ctrl_lock; in nvme_ioctl_excl_check()
5552 have_ns = ns->ns_lock.nl_writer == &minor->nm_ns_lock; in nvme_ioctl_excl_check()
5556 ASSERT3P(minor->nm_ns_lock.nli_ns, ==, ns); in nvme_ioctl_excl_check()
5609 nvme_ioctl_check(nvme_minor_t *minor, nvme_ioctl_common_t *ioc, in nvme_ioctl_check() argument
5619 if (minor->nm_ns != NULL) { in nvme_ioctl_check()
5626 ioc->nioc_nsid = minor->nm_ns->ns_id; in nvme_ioctl_check()
5627 } else if (ioc->nioc_nsid != minor->nm_ns->ns_id) { in nvme_ioctl_check()
5632 return (nvme_ioctl_excl_check(minor, ioc, check)); in nvme_ioctl_check()
5642 return (nvme_ioctl_excl_check(minor, ioc, check)); in nvme_ioctl_check()
5656 return (nvme_ioctl_excl_check(minor, ioc, check)); in nvme_ioctl_check()
5671 if (ioc->nioc_nsid > minor->nm_ctrl->n_namespace_count && in nvme_ioctl_check()
5689 return (nvme_ioctl_excl_check(minor, ioc, check)); in nvme_ioctl_check()
5693 nvme_ioctl_ctrl_info(nvme_minor_t *minor, intptr_t arg, int mode, in nvme_ioctl_ctrl_info() argument
5696 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_ctrl_info()
5717 if (!nvme_ioctl_check(minor, &info->nci_common, in nvme_ioctl_ctrl_info()
5767 nvme_ioctl_ns_info(nvme_minor_t *minor, intptr_t arg, int mode, cred_t *cred_p) in nvme_ioctl_ns_info() argument
5769 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_ns_info()
5790 if (!nvme_ioctl_check(minor, &ns_info->nni_common, in nvme_ioctl_ns_info()
5848 nvme_ioctl_identify(nvme_minor_t *minor, intptr_t arg, int mode, cred_t *cred_p) in nvme_ioctl_identify() argument
5851 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_identify()
5888 if (!nvme_ioctl_check(minor, &id.nid_common, &nvme_check_identify)) { in nvme_ioctl_identify()
5892 ns_minor = minor->nm_ns != NULL; in nvme_ioctl_identify()
6030 nvme_ioctl_get_logpage(nvme_minor_t *minor, intptr_t arg, int mode, in nvme_ioctl_get_logpage() argument
6033 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_get_logpage()
6079 if (!nvme_ioctl_check(minor, &log.nigl_common, in nvme_ioctl_get_logpage()
6136 nvme_ioctl_get_feature(nvme_minor_t *minor, intptr_t arg, int mode, in nvme_ioctl_get_feature() argument
6139 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_get_feature()
6183 if (!nvme_ioctl_check(minor, &feat.nigf_common, in nvme_ioctl_get_feature()
6246 nvme_ioctl_format(nvme_minor_t *minor, intptr_t arg, int mode, cred_t *cred_p) in nvme_ioctl_format() argument
6248 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_format()
6261 if (!nvme_ioctl_check(minor, &ioc.nif_common, &nvme_check_format)) { in nvme_ioctl_format()
6293 nvme_ioctl_detach(nvme_minor_t *minor, intptr_t arg, int mode, cred_t *cred_p) in nvme_ioctl_detach() argument
6295 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_detach()
6309 if (!nvme_ioctl_check(minor, &com, &nvme_check_attach_detach)) { in nvme_ioctl_detach()
6329 nvme_ioctl_attach(nvme_minor_t *minor, intptr_t arg, int mode, in nvme_ioctl_attach() argument
6332 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_attach()
6347 if (!nvme_ioctl_check(minor, &com, &nvme_check_attach_detach)) { in nvme_ioctl_attach()
6400 nvme_ioctl_firmware_download(nvme_minor_t *minor, intptr_t arg, int mode, in nvme_ioctl_firmware_download() argument
6403 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_firmware_download()
6425 if (!nvme_ioctl_check(minor, &fw.fwl_common, &nvme_check_firmware)) { in nvme_ioctl_firmware_download()
6497 nvme_ioctl_firmware_commit(nvme_minor_t *minor, intptr_t arg, int mode, in nvme_ioctl_firmware_commit() argument
6500 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_firmware_commit()
6519 if (!nvme_ioctl_check(minor, &fw.fwc_common, &nvme_check_firmware)) { in nvme_ioctl_firmware_commit()
6648 nvme_ioctl_passthru(nvme_minor_t *minor, intptr_t arg, int mode, cred_t *cred_p) in nvme_ioctl_passthru() argument
6650 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_passthru()
6670 if (!nvme_ioctl_check(minor, &pass.npc_common, &nvme_check_passthru)) { in nvme_ioctl_passthru()
6730 nvme_ioctl_lock(nvme_minor_t *minor, intptr_t arg, int mode, in nvme_ioctl_lock() argument
6735 nvme_t *nvme = minor->nm_ctrl; in nvme_ioctl_lock()
6768 if (!nvme_ioctl_check(minor, &lock.nil_common, &nvme_check_locking)) { in nvme_ioctl_lock()
6809 if (minor->nm_ctrl_lock.nli_state == NVME_LOCK_STATE_BLOCKED || in nvme_ioctl_lock()
6810 minor->nm_ns_lock.nli_state == NVME_LOCK_STATE_BLOCKED) { in nvme_ioctl_lock()
6818 minor->nm_ctrl_lock.nli_state == NVME_LOCK_STATE_ACQUIRED) || in nvme_ioctl_lock()
6820 minor->nm_ns_lock.nli_state == NVME_LOCK_STATE_ACQUIRED && in nvme_ioctl_lock()
6821 minor->nm_ns_lock.nli_ns->ns_id == lock.nil_common.nioc_nsid)) { in nvme_ioctl_lock()
6829 minor->nm_ns_lock.nli_state != NVME_LOCK_STATE_UNLOCKED) { in nvme_ioctl_lock()
6837 (minor->nm_ctrl_lock.nli_state == NVME_LOCK_STATE_ACQUIRED && in nvme_ioctl_lock()
6838 minor->nm_ctrl_lock.nli_curlevel == NVME_LOCK_L_WRITE)) { in nvme_ioctl_lock()
6846 minor->nm_ns_lock.nli_state != NVME_LOCK_STATE_UNLOCKED) { in nvme_ioctl_lock()
6860 ASSERT3P(minor->nm_ns_lock.nli_lock, ==, NULL); in nvme_ioctl_lock()
6861 ASSERT3U(minor->nm_ns_lock.nli_state, ==, in nvme_ioctl_lock()
6863 ASSERT3U(minor->nm_ns_lock.nli_curlevel, ==, 0); in nvme_ioctl_lock()
6864 ASSERT3P(minor->nm_ns_lock.nli_ns, ==, NULL); in nvme_ioctl_lock()
6866 if (minor->nm_ns != NULL) { in nvme_ioctl_lock()
6867 ASSERT3U(minor->nm_ns->ns_id, ==, in nvme_ioctl_lock()
6871 ASSERT0(list_link_active(&minor->nm_ns_lock.nli_node)); in nvme_ioctl_lock()
6873 ASSERT3P(minor->nm_ctrl_lock.nli_lock, ==, NULL); in nvme_ioctl_lock()
6874 ASSERT3U(minor->nm_ctrl_lock.nli_state, ==, in nvme_ioctl_lock()
6876 ASSERT3U(minor->nm_ctrl_lock.nli_curlevel, ==, 0); in nvme_ioctl_lock()
6877 ASSERT3P(minor->nm_ns_lock.nli_ns, ==, NULL); in nvme_ioctl_lock()
6878 ASSERT0(list_link_active(&minor->nm_ctrl_lock.nli_node)); in nvme_ioctl_lock()
6880 ASSERT3P(minor->nm_ns_lock.nli_lock, ==, NULL); in nvme_ioctl_lock()
6881 ASSERT3U(minor->nm_ns_lock.nli_state, ==, in nvme_ioctl_lock()
6883 ASSERT3U(minor->nm_ns_lock.nli_curlevel, ==, 0); in nvme_ioctl_lock()
6884 ASSERT3P(minor->nm_ns_lock.nli_ns, ==, NULL); in nvme_ioctl_lock()
6885 ASSERT0(list_link_active(&minor->nm_ns_lock.nli_node)); in nvme_ioctl_lock()
6892 nvme_rwlock(minor, &lock); in nvme_ioctl_lock()
6905 nvme_ioctl_unlock(nvme_minor_t *minor, intptr_t arg, int mode, in nvme_ioctl_unlock() argument
6909 nvme_t *const nvme = minor->nm_ctrl; in nvme_ioctl_unlock()
6935 if (!nvme_ioctl_check(minor, &unlock.niu_common, &nvme_check_locking)) { in nvme_ioctl_unlock()
6952 if (minor->nm_ctrl_lock.nli_state != NVME_LOCK_STATE_ACQUIRED) { in nvme_ioctl_unlock()
6959 if (minor->nm_ns_lock.nli_ns == NULL) { in nvme_ioctl_unlock()
6972 if (minor->nm_ns_lock.nli_ns->ns_id != in nvme_ioctl_unlock()
6975 ASSERT3P(minor->nm_ns, ==, NULL); in nvme_ioctl_unlock()
6981 if (minor->nm_ns_lock.nli_state != NVME_LOCK_STATE_ACQUIRED) { in nvme_ioctl_unlock()
6995 info = &minor->nm_ctrl_lock; in nvme_ioctl_unlock()
7002 info = &minor->nm_ns_lock; in nvme_ioctl_unlock()
7025 nvme_minor_t *minor; in nvme_ioctl() local
7028 minor = nvme_minor_find_by_dev(dev); in nvme_ioctl()
7029 if (minor == NULL) { in nvme_ioctl()
7033 nvme = minor->nm_ctrl; in nvme_ioctl()
7055 return (nvme_ioctl_ctrl_info(minor, arg, mode, cred_p)); in nvme_ioctl()
7057 return (nvme_ioctl_identify(minor, arg, mode, cred_p)); in nvme_ioctl()
7059 return (nvme_ioctl_get_logpage(minor, arg, mode, cred_p)); in nvme_ioctl()
7061 return (nvme_ioctl_get_feature(minor, arg, mode, cred_p)); in nvme_ioctl()
7063 return (nvme_ioctl_detach(minor, arg, mode, cred_p)); in nvme_ioctl()
7065 return (nvme_ioctl_attach(minor, arg, mode, cred_p)); in nvme_ioctl()
7067 return (nvme_ioctl_format(minor, arg, mode, cred_p)); in nvme_ioctl()
7069 return (nvme_ioctl_firmware_download(minor, arg, mode, in nvme_ioctl()
7072 return (nvme_ioctl_firmware_commit(minor, arg, mode, in nvme_ioctl()
7075 return (nvme_ioctl_ns_info(minor, arg, mode, cred_p)); in nvme_ioctl()
7077 return (nvme_ioctl_passthru(minor, arg, mode, cred_p)); in nvme_ioctl()
7079 return (nvme_ioctl_lock(minor, arg, mode, cred_p)); in nvme_ioctl()
7081 return (nvme_ioctl_unlock(minor, arg, mode, cred_p)); in nvme_ioctl()