Lines Matching refs:vhci

432 vhci_failover_modopen(struct scsi_vhci *vhci)
445 vhci->vhci_dip, DDI_PROP_DONTPASS, "ddi-forceload",
494 vhci_mpapi_add_dev_prod(vhci, *dt);
544 struct scsi_vhci *vhci;
550 vhci = ddi_get_soft_state(vhci_softstate, MINOR2INST(getminor(*devp)));
551 if (vhci == NULL) {
556 mutex_enter(&vhci->vhci_mutex);
557 if ((flag & FEXCL) && (vhci->vhci_state & VHCI_STATE_OPEN)) {
558 mutex_exit(&vhci->vhci_mutex);
559 vhci_log(CE_NOTE, vhci->vhci_dip,
560 "!vhci%d: Already open\n", getminor(*devp));
564 vhci->vhci_state |= VHCI_STATE_OPEN;
565 mutex_exit(&vhci->vhci_mutex);
574 struct scsi_vhci *vhci;
580 vhci = ddi_get_soft_state(vhci_softstate, MINOR2INST(getminor(dev)));
581 if (vhci == NULL) {
586 mutex_enter(&vhci->vhci_mutex);
587 vhci->vhci_state &= ~VHCI_STATE_OPEN;
588 mutex_exit(&vhci->vhci_mutex);
618 struct scsi_vhci *vhci;
644 * Allocate vhci data structure.
652 if ((vhci = ddi_get_soft_state(vhci_softstate, instance)) == NULL) {
661 "vhci%d_cache", instance);
663 mutex_init(&vhci->vhci_mutex, NULL, MUTEX_DRIVER, NULL);
672 vhci->vhci_tran = tran;
673 vhci->vhci_dip = dip;
674 vhci->vhci_instance = instance;
676 tran->tran_hba_private = vhci;
760 vhci->vhci_taskq = taskq_create("vhci_taskq", 1, MINCLSYSPRI, 1, 4, 0);
761 vhci->vhci_update_pathstates_taskq =
764 ASSERT(vhci->vhci_taskq);
765 ASSERT(vhci->vhci_update_pathstates_taskq);
771 vhci->vhci_conf_flags = 0;
775 vhci->vhci_conf_flags |= VHCI_CONF_FLAGS_AUTO_FAILBACK;
779 if (!(vhci->vhci_conf_flags & VHCI_CONF_FLAGS_AUTO_FAILBACK))
786 vhci->mp_priv = kmem_zalloc(sizeof (mpapi_priv_t), KM_SLEEP);
787 if (vhci_mpapi_init(vhci) != 0) {
792 vhci_failover_modopen(vhci); /* load failover modules */
804 if (vhci->vhci_tran)
805 scsi_hba_tran_free(vhci->vhci_tran);
808 mutex_destroy(&vhci->vhci_mutex);
822 struct scsi_vhci *vhci;
829 vhci = TRAN2HBAPRIVATE(tran);
830 if (!vhci) {
865 mutex_destroy(&vhci->vhci_mutex);
866 vhci->vhci_dip = NULL;
867 vhci->vhci_tran = NULL;
868 taskq_destroy(vhci->vhci_taskq);
869 taskq_destroy(vhci->vhci_update_pathstates_taskq);
920 struct scsi_vhci *vhci;
955 vhci = ddi_get_soft_state(vhci_softstate, ddi_get_instance(hba_dip));
956 ASSERT(vhci != NULL);
1110 * Return Values : TRAN_FATAL_ERROR - vhci has been shutdown
1125 struct scsi_vhci *vhci = ADDR2VHCI(ap);
1140 ASSERT(vhci != NULL);
1164 if (taskq_dispatch(vhci->vhci_taskq,
1220 VHCI_DEBUG(2, (CE_NOTE, vhci->vhci_dip,
1244 instance = ddi_get_instance(vhci->vhci_dip);
1265 VHCI_DEBUG(6, (CE_WARN, vhci->vhci_dip,
1266 "!vhci%d %x: failed to bind transport: "
1286 VHCI_DEBUG(8, (CE_NOTE, vhci->vhci_dip, "vhci_scsi_start vpkt %p\n",
1292 VHCI_DEBUG(1, (CE_WARN, vhci->vhci_dip,
1305 VHCI_DEBUG(6, (CE_WARN, vhci->vhci_dip,
1337 VHCI_DEBUG(1, (CE_NOTE, vhci->vhci_dip, "!vhci_scsi_start: "
1373 vhci_log(CE_WARN, vhci->vhci_dip, "!Sending "
1506 VHCI_DEBUG(6, (CE_WARN, vhci->vhci_dip,
1557 * vlun - vhci lun pointer of the device
1624 struct scsi_vhci *vhci = NULL;
1640 vhci = ddi_get_soft_state(vhci_softstate, ddi_get_instance(vdip));
1641 ASSERT(vhci != NULL);
1694 mutex_enter(&vhci->vhci_mutex);
1695 scsi_hba_reset_notify_callback(&vhci->vhci_mutex,
1696 &vhci->vhci_reset_notify_listf);
1697 mutex_exit(&vhci->vhci_mutex);
1725 struct scsi_vhci *vhci = ADDR2VHCI(ap);
1731 VHCI_DEBUG(3, (CE_WARN, vhci->vhci_dip,
1737 VHCI_DEBUG(3, (CE_WARN, vhci->vhci_dip,
1764 VHCI_DEBUG(1, (CE_WARN, vhci->vhci_dip,
1791 VHCI_DEBUG(6, (CE_WARN, vhci->vhci_dip,
1797 VHCI_DEBUG(6, (CE_NOTE, vhci->vhci_dip,
1844 VHCI_DEBUG(4, (CE_WARN, vhci->vhci_dip,
1868 VHCI_DEBUG(6, (CE_WARN, vhci->vhci_dip,
1874 VHCI_DEBUG(6, (CE_NOTE, vhci->vhci_dip,
1920 struct scsi_vhci *vhci = ADDR2VHCI(ap);
1938 pktp = scsi_hba_pkt_alloc(vhci->vhci_dip,
1946 /* Get the vhci's private structure */
1982 * vhci has to remember this flag was set during first
2136 struct scsi_vhci *vhci = ADDR2VHCI(ap);
2138 &vhci->vhci_mutex, &vhci->vhci_reset_notify_listf));
2219 struct scsi_vhci *vhci = ADDR2VHCI(ap);
2464 rval = mdi_failover(vhci->vhci_dip, cdip,
2529 (void *)vhci, (void *)psd, (void *)vpkt));
2834 struct scsi_vhci *vhci = ADDR2VHCI(&vpkt->vpkt_tgt_pkt->pkt_address);
2965 if (taskq_dispatch(vhci->vhci_taskq, vhci_dispatch_scsi_start,
3270 struct scsi_vhci *vhci;
3271 vhci = ADDR2VHCI(&tpkt->pkt_address);
3286 vhci->vhci_update_pathstates_taskq,
3441 "!scsi vhci timeout invoked\n"));
3478 struct scsi_vhci *vhci;
3479 vhci = ADDR2VHCI(&tpkt->pkt_address);
3482 (void) vhci_invalidate_mpapi_lu(vhci, vlun);
3554 * For PARTIAL_DMA, vhci should not free the path.
3586 struct scsi_vhci *vhci;
3599 vhci = ADDR2VHCI(&tpkt->pkt_address);
3610 (void) taskq_dispatch(vhci->vhci_update_pathstates_taskq,
3664 struct scsi_vhci *vhci;
3684 vhci = ddi_get_soft_state(vhci_softstate,
3739 (void) taskq_dispatch(vhci->vhci_update_pathstates_taskq,
3751 (void) taskq_dispatch(vhci->vhci_taskq,
3805 struct scsi_vhci *vhci;
3814 vhci = ddi_get_soft_state(vhci_softstate,
4039 mutex_enter(&vhci->vhci_mutex);
4040 scsi_hba_reset_notify_callback(&vhci->vhci_mutex,
4041 &vhci->vhci_reset_notify_listf);
4042 mutex_exit(&vhci->vhci_mutex);
4048 (void) vhci_mpapi_update_tpg_acc_state_for_lu(vhci, vlun);
4069 struct scsi_vhci *vhci;
4078 vhci = ddi_get_soft_state(vhci_softstate, ddi_get_instance(vdip));
4079 ASSERT(vhci != NULL);
4294 struct scsi_vhci *vhci;
4296 vhci = ddi_get_soft_state(vhci_softstate, ddi_get_instance(vdip));
4357 if (((vhci->vhci_conf_flags &
4426 vhci->vhci_taskq,
4447 mutex_enter(&vhci->vhci_mutex);
4449 &vhci->vhci_mutex,
4450 &vhci->vhci_reset_notify_listf);
4451 mutex_exit(&vhci->vhci_mutex);
4725 struct scsi_vhci *vhci)
4835 mutex_enter(&vhci->vhci_mutex);
4837 &vhci->vhci_mutex,
4838 &vhci->vhci_reset_notify_listf);
4839 mutex_exit(&vhci->vhci_mutex);
4907 if (((vhci->vhci_conf_flags & VHCI_CONF_FLAGS_AUTO_FAILBACK) ==
4915 (void) taskq_dispatch(vhci->vhci_taskq,
5057 struct scsi_vhci *vhci;
5070 vhci = ddi_get_soft_state(vhci_softstate, ddi_get_instance(vdip));
5071 ASSERT(vhci != NULL);
5105 * by vhci_pathinfo_uninit(). In other words, vhci maintains its own
5141 VHCI_DEBUG(1, (CE_NOTE, vhci->vhci_dip,
5153 VHCI_DEBUG(1, (CE_NOTE, vhci->vhci_dip,
5236 rval = vhci_update_pathinfo(psd, pip, sfo, vlun, vhci);
5242 vhci_update_mpapi_data(vhci, vlun, pip);
5249 list_ptr = (mpapi_item_list_t *)vhci_get_mpapi_item(vhci, NULL,
5404 struct scsi_vhci *vhci;
5420 /* Check for validity of vhci structure */
5421 vhci = ddi_get_soft_state(vhci_softstate, MINOR2INST(getminor(dev)));
5422 if (vhci == NULL) {
5426 mutex_enter(&vhci->vhci_mutex);
5427 if ((vhci->vhci_state & VHCI_STATE_OPEN) == 0) {
5428 mutex_exit(&vhci->vhci_mutex);
5431 mutex_exit(&vhci->vhci_mutex);
5433 /* Get the vhci dip */
5434 vdip = vhci->vhci_dip;
5503 "!vhci%d: ioctl %x (unsupported ioctl)", instance, cmd);
5511 VHCI_DEBUG(6, (CE_WARN, vdip, "!vhci%d: ioctl <%s>", instance, s));
6087 struct scsi_vhci *vhci;
6093 if ((vhci = ddi_get_soft_state(vhci_softstate,
6100 mutex_enter(&vhci->vhci_mutex);
6101 if ((vhci->vhci_state & VHCI_STATE_OPEN) == 0) {
6102 mutex_exit(&vhci->vhci_mutex);
6105 mutex_exit(&vhci->vhci_mutex);
6107 self = vhci->vhci_dip;
6835 struct scsi_vhci *vhci;
6852 vhci = ddi_get_soft_state(vhci_softstate, ddi_get_instance(vdip));
7138 (void) vhci_mpapi_update_tpg_acc_state_for_lu(vhci, vlun);
7153 mutex_enter(&vhci->vhci_mutex);
7154 scsi_hba_reset_notify_callback(&vhci->vhci_mutex,
7155 &vhci->vhci_reset_notify_listf);
7158 mutex_exit(&vhci->vhci_mutex);
8662 "scsi-vhci-failover-override", vdip, psd);
8792 vhci_invalidate_mpapi_lu(struct scsi_vhci *vhci, scsi_vhci_lun_t *vlun)
8804 ilist = vhci->mp_priv->obj_hdr_list[MP_OBJECT_TYPE_MULTIPATH_LU]->head;