Lines Matching refs:vhci

429 vhci_failover_modopen(struct scsi_vhci *vhci)
442 vhci->vhci_dip, DDI_PROP_DONTPASS, "ddi-forceload",
491 vhci_mpapi_add_dev_prod(vhci, *dt);
541 struct scsi_vhci *vhci;
547 vhci = ddi_get_soft_state(vhci_softstate, MINOR2INST(getminor(*devp)));
548 if (vhci == NULL) {
553 mutex_enter(&vhci->vhci_mutex);
554 if ((flag & FEXCL) && (vhci->vhci_state & VHCI_STATE_OPEN)) {
555 mutex_exit(&vhci->vhci_mutex);
556 vhci_log(CE_NOTE, vhci->vhci_dip,
557 "!vhci%d: Already open\n", getminor(*devp));
561 vhci->vhci_state |= VHCI_STATE_OPEN;
562 mutex_exit(&vhci->vhci_mutex);
571 struct scsi_vhci *vhci;
577 vhci = ddi_get_soft_state(vhci_softstate, MINOR2INST(getminor(dev)));
578 if (vhci == NULL) {
583 mutex_enter(&vhci->vhci_mutex);
584 vhci->vhci_state &= ~VHCI_STATE_OPEN;
585 mutex_exit(&vhci->vhci_mutex);
615 struct scsi_vhci *vhci;
641 * Allocate vhci data structure.
649 if ((vhci = ddi_get_soft_state(vhci_softstate, instance)) == NULL) {
658 "vhci%d_cache", instance);
660 mutex_init(&vhci->vhci_mutex, NULL, MUTEX_DRIVER, NULL);
669 vhci->vhci_tran = tran;
670 vhci->vhci_dip = dip;
671 vhci->vhci_instance = instance;
673 tran->tran_hba_private = vhci;
757 vhci->vhci_taskq = taskq_create("vhci_taskq", 1, MINCLSYSPRI, 1, 4, 0);
758 vhci->vhci_update_pathstates_taskq =
761 ASSERT(vhci->vhci_taskq);
762 ASSERT(vhci->vhci_update_pathstates_taskq);
768 vhci->vhci_conf_flags = 0;
772 vhci->vhci_conf_flags |= VHCI_CONF_FLAGS_AUTO_FAILBACK;
776 if (!(vhci->vhci_conf_flags & VHCI_CONF_FLAGS_AUTO_FAILBACK))
783 vhci->mp_priv = kmem_zalloc(sizeof (mpapi_priv_t), KM_SLEEP);
784 if (vhci_mpapi_init(vhci) != 0) {
789 vhci_failover_modopen(vhci); /* load failover modules */
801 if (vhci->vhci_tran)
802 scsi_hba_tran_free(vhci->vhci_tran);
805 mutex_destroy(&vhci->vhci_mutex);
819 struct scsi_vhci *vhci;
826 vhci = TRAN2HBAPRIVATE(tran);
827 if (!vhci) {
862 mutex_destroy(&vhci->vhci_mutex);
863 vhci->vhci_dip = NULL;
864 vhci->vhci_tran = NULL;
865 taskq_destroy(vhci->vhci_taskq);
866 taskq_destroy(vhci->vhci_update_pathstates_taskq);
917 struct scsi_vhci *vhci;
952 vhci = ddi_get_soft_state(vhci_softstate, ddi_get_instance(hba_dip));
953 ASSERT(vhci != NULL);
1107 * Return Values : TRAN_FATAL_ERROR - vhci has been shutdown
1122 struct scsi_vhci *vhci = ADDR2VHCI(ap);
1137 ASSERT(vhci != NULL);
1161 if (taskq_dispatch(vhci->vhci_taskq,
1217 VHCI_DEBUG(2, (CE_NOTE, vhci->vhci_dip,
1241 instance = ddi_get_instance(vhci->vhci_dip);
1262 VHCI_DEBUG(6, (CE_WARN, vhci->vhci_dip,
1263 "!vhci%d %x: failed to bind transport: "
1283 VHCI_DEBUG(8, (CE_NOTE, vhci->vhci_dip, "vhci_scsi_start vpkt %p\n",
1289 VHCI_DEBUG(1, (CE_WARN, vhci->vhci_dip,
1302 VHCI_DEBUG(6, (CE_WARN, vhci->vhci_dip,
1334 VHCI_DEBUG(1, (CE_NOTE, vhci->vhci_dip, "!vhci_scsi_start: "
1370 vhci_log(CE_WARN, vhci->vhci_dip, "!Sending "
1503 VHCI_DEBUG(6, (CE_WARN, vhci->vhci_dip,
1554 * vlun - vhci lun pointer of the device
1621 struct scsi_vhci *vhci = NULL;
1637 vhci = ddi_get_soft_state(vhci_softstate, ddi_get_instance(vdip));
1638 ASSERT(vhci != NULL);
1691 mutex_enter(&vhci->vhci_mutex);
1692 scsi_hba_reset_notify_callback(&vhci->vhci_mutex,
1693 &vhci->vhci_reset_notify_listf);
1694 mutex_exit(&vhci->vhci_mutex);
1722 struct scsi_vhci *vhci = ADDR2VHCI(ap);
1728 VHCI_DEBUG(3, (CE_WARN, vhci->vhci_dip,
1734 VHCI_DEBUG(3, (CE_WARN, vhci->vhci_dip,
1761 VHCI_DEBUG(1, (CE_WARN, vhci->vhci_dip,
1788 VHCI_DEBUG(6, (CE_WARN, vhci->vhci_dip,
1794 VHCI_DEBUG(6, (CE_NOTE, vhci->vhci_dip,
1841 VHCI_DEBUG(4, (CE_WARN, vhci->vhci_dip,
1865 VHCI_DEBUG(6, (CE_WARN, vhci->vhci_dip,
1871 VHCI_DEBUG(6, (CE_NOTE, vhci->vhci_dip,
1917 struct scsi_vhci *vhci = ADDR2VHCI(ap);
1935 pktp = scsi_hba_pkt_alloc(vhci->vhci_dip,
1943 /* Get the vhci's private structure */
1979 * vhci has to remember this flag was set during first
2133 struct scsi_vhci *vhci = ADDR2VHCI(ap);
2135 &vhci->vhci_mutex, &vhci->vhci_reset_notify_listf));
2216 struct scsi_vhci *vhci = ADDR2VHCI(ap);
2462 rval = mdi_failover(vhci->vhci_dip, cdip,
2527 (void *)vhci, (void *)psd, (void *)vpkt));
2832 struct scsi_vhci *vhci = ADDR2VHCI(&vpkt->vpkt_tgt_pkt->pkt_address);
2963 if (taskq_dispatch(vhci->vhci_taskq, vhci_dispatch_scsi_start,
3268 struct scsi_vhci *vhci;
3269 vhci = ADDR2VHCI(&tpkt->pkt_address);
3284 vhci->vhci_update_pathstates_taskq,
3439 "!scsi vhci timeout invoked\n"));
3476 struct scsi_vhci *vhci;
3477 vhci = ADDR2VHCI(&tpkt->pkt_address);
3480 (void) vhci_invalidate_mpapi_lu(vhci, vlun);
3552 * For PARTIAL_DMA, vhci should not free the path.
3584 struct scsi_vhci *vhci;
3597 vhci = ADDR2VHCI(&tpkt->pkt_address);
3608 (void) taskq_dispatch(vhci->vhci_update_pathstates_taskq,
3662 struct scsi_vhci *vhci;
3682 vhci = ddi_get_soft_state(vhci_softstate,
3737 (void) taskq_dispatch(vhci->vhci_update_pathstates_taskq,
3749 (void) taskq_dispatch(vhci->vhci_taskq,
3803 struct scsi_vhci *vhci;
3812 vhci = ddi_get_soft_state(vhci_softstate,
4037 mutex_enter(&vhci->vhci_mutex);
4038 scsi_hba_reset_notify_callback(&vhci->vhci_mutex,
4039 &vhci->vhci_reset_notify_listf);
4040 mutex_exit(&vhci->vhci_mutex);
4046 (void) vhci_mpapi_update_tpg_acc_state_for_lu(vhci, vlun);
4067 struct scsi_vhci *vhci;
4076 vhci = ddi_get_soft_state(vhci_softstate, ddi_get_instance(vdip));
4077 ASSERT(vhci != NULL);
4292 struct scsi_vhci *vhci;
4294 vhci = ddi_get_soft_state(vhci_softstate, ddi_get_instance(vdip));
4355 if (((vhci->vhci_conf_flags &
4424 vhci->vhci_taskq,
4445 mutex_enter(&vhci->vhci_mutex);
4447 &vhci->vhci_mutex,
4448 &vhci->vhci_reset_notify_listf);
4449 mutex_exit(&vhci->vhci_mutex);
4723 struct scsi_vhci *vhci)
4833 mutex_enter(&vhci->vhci_mutex);
4835 &vhci->vhci_mutex,
4836 &vhci->vhci_reset_notify_listf);
4837 mutex_exit(&vhci->vhci_mutex);
4905 if (((vhci->vhci_conf_flags & VHCI_CONF_FLAGS_AUTO_FAILBACK) ==
4913 (void) taskq_dispatch(vhci->vhci_taskq,
5055 struct scsi_vhci *vhci;
5068 vhci = ddi_get_soft_state(vhci_softstate, ddi_get_instance(vdip));
5069 ASSERT(vhci != NULL);
5103 * by vhci_pathinfo_uninit(). In other words, vhci maintains its own
5139 VHCI_DEBUG(1, (CE_NOTE, vhci->vhci_dip,
5151 VHCI_DEBUG(1, (CE_NOTE, vhci->vhci_dip,
5234 rval = vhci_update_pathinfo(psd, pip, sfo, vlun, vhci);
5240 vhci_update_mpapi_data(vhci, vlun, pip);
5247 list_ptr = (mpapi_item_list_t *)vhci_get_mpapi_item(vhci, NULL,
5402 struct scsi_vhci *vhci;
5418 /* Check for validity of vhci structure */
5419 vhci = ddi_get_soft_state(vhci_softstate, MINOR2INST(getminor(dev)));
5420 if (vhci == NULL) {
5424 mutex_enter(&vhci->vhci_mutex);
5425 if ((vhci->vhci_state & VHCI_STATE_OPEN) == 0) {
5426 mutex_exit(&vhci->vhci_mutex);
5429 mutex_exit(&vhci->vhci_mutex);
5431 /* Get the vhci dip */
5432 vdip = vhci->vhci_dip;
5501 "!vhci%d: ioctl %x (unsupported ioctl)", instance, cmd);
5509 VHCI_DEBUG(6, (CE_WARN, vdip, "!vhci%d: ioctl <%s>", instance, s));
6085 struct scsi_vhci *vhci;
6091 if ((vhci = ddi_get_soft_state(vhci_softstate,
6098 mutex_enter(&vhci->vhci_mutex);
6099 if ((vhci->vhci_state & VHCI_STATE_OPEN) == 0) {
6100 mutex_exit(&vhci->vhci_mutex);
6103 mutex_exit(&vhci->vhci_mutex);
6105 self = vhci->vhci_dip;
6833 struct scsi_vhci *vhci;
6850 vhci = ddi_get_soft_state(vhci_softstate, ddi_get_instance(vdip));
7136 (void) vhci_mpapi_update_tpg_acc_state_for_lu(vhci, vlun);
7151 mutex_enter(&vhci->vhci_mutex);
7152 scsi_hba_reset_notify_callback(&vhci->vhci_mutex,
7153 &vhci->vhci_reset_notify_listf);
7156 mutex_exit(&vhci->vhci_mutex);
8660 "scsi-vhci-failover-override", vdip, psd);
8790 vhci_invalidate_mpapi_lu(struct scsi_vhci *vhci, scsi_vhci_lun_t *vlun)
8802 ilist = vhci->mp_priv->obj_hdr_list[MP_OBJECT_TYPE_MULTIPATH_LU]->head;