Lines Matching refs:pla
787 struct qlt_plogi_ack_t *pla; in qlt_plogi_ack_find_add() local
791 list_for_each_entry(pla, &vha->plogi_ack_list, list) { in qlt_plogi_ack_find_add()
792 if (pla->id.b24 == id->b24) { in qlt_plogi_ack_find_add()
796 pla->iocb.u.isp24.port_name); in qlt_plogi_ack_find_add()
797 qlt_send_term_imm_notif(vha, &pla->iocb, 1); in qlt_plogi_ack_find_add()
798 memcpy(&pla->iocb, iocb, sizeof(pla->iocb)); in qlt_plogi_ack_find_add()
799 return pla; in qlt_plogi_ack_find_add()
803 pla = kmem_cache_zalloc(qla_tgt_plogi_cachep, GFP_ATOMIC); in qlt_plogi_ack_find_add()
804 if (!pla) { in qlt_plogi_ack_find_add()
811 memcpy(&pla->iocb, iocb, sizeof(pla->iocb)); in qlt_plogi_ack_find_add()
812 pla->id = *id; in qlt_plogi_ack_find_add()
813 list_add_tail(&pla->list, &vha->plogi_ack_list); in qlt_plogi_ack_find_add()
815 return pla; in qlt_plogi_ack_find_add()
819 struct qlt_plogi_ack_t *pla) in qlt_plogi_ack_unref() argument
821 struct imm_ntfy_from_isp *iocb = &pla->iocb; in qlt_plogi_ack_unref()
824 fc_port_t *fcport = pla->fcport; in qlt_plogi_ack_unref()
826 BUG_ON(!pla->ref_count); in qlt_plogi_ack_unref()
827 pla->ref_count--; in qlt_plogi_ack_unref()
829 if (pla->ref_count) in qlt_plogi_ack_unref()
855 if (fcport->plogi_link[QLT_PLOGI_LINK_SAME_WWN] == pla) in qlt_plogi_ack_unref()
857 if (fcport->plogi_link[QLT_PLOGI_LINK_CONFLICT] == pla) in qlt_plogi_ack_unref()
861 list_del(&pla->list); in qlt_plogi_ack_unref()
862 kmem_cache_free(qla_tgt_plogi_cachep, pla); in qlt_plogi_ack_unref()
866 qlt_plogi_ack_link(struct scsi_qla_host *vha, struct qlt_plogi_ack_t *pla, in qlt_plogi_ack_link() argument
869 struct imm_ntfy_from_isp *iocb = &pla->iocb; in qlt_plogi_ack_link()
871 pla->ref_count++; in qlt_plogi_ack_link()
879 pla->ref_count, pla, link); in qlt_plogi_ack_link()
885 pla->ref_count--; in qlt_plogi_ack_link()
896 pla->fcport = sess; in qlt_plogi_ack_link()
898 sess->plogi_link[link] = pla; in qlt_plogi_ack_link()
4679 struct qlt_plogi_ack_t *pla; in qlt_handle_login() local
4714 pla = qlt_plogi_ack_find_add(vha, &port_id, iocb); in qlt_handle_login()
4715 if (!pla) { in qlt_handle_login()
4726 qlt_plogi_ack_link(vha, pla, conflict_sess, in qlt_handle_login()
4731 pla->ref_count++; in qlt_handle_login()
4739 pla, FC4_TYPE_UNKNOWN); in qlt_handle_login()
4743 pla, FC4_TYPE_UNKNOWN); in qlt_handle_login()
4768 list_del(&pla->list); in qlt_handle_login()
4769 kmem_cache_free(qla_tgt_plogi_cachep, pla); in qlt_handle_login()
4776 qlt_plogi_ack_link(vha, pla, sess, QLT_PLOGI_LINK_SAME_WWN); in qlt_handle_login()
4807 qlt_plogi_ack_unref(vha, pla); in qlt_handle_login()