Lines Matching refs:vport

41  * @vport: The virtual port for which this call is being executed.
47 struct lpfc_vmid *lpfc_get_vmid_from_hashtable(struct lpfc_vport *vport,
52 hash_for_each_possible(vport->hash_table, vmp, hnode, hash) {
61 * @vport: The virtual port for which this call is being executed.
69 lpfc_put_vmid_in_hashtable(struct lpfc_vport *vport, u32 hash,
72 hash_add(vport->hash_table, &vmp->hnode, hash);
102 * @vport: The virtual port for which this call is being executed.
107 static void lpfc_vmid_update_entry(struct lpfc_vport *vport,
114 if (vport->phba->pport->vmid_flag & LPFC_VMID_TYPE_PRIO)
116 else if (vport->phba->cfg_vmid_app_header)
129 static void lpfc_vmid_assign_cs_ctl(struct lpfc_vport *vport,
135 if (vport->port_type == LPFC_PHYSICAL_PORT) {
136 vmid->un.cs_ctl_vmid = lpfc_vmid_get_cs_ctl(vport);
140 lpfc_get_vmid_from_hashtable(vport->phba->pport, hash,
145 vmid->un.cs_ctl_vmid = lpfc_vmid_get_cs_ctl(vport);
151 * @vport: The virtual port for which this call is being executed.
158 int lpfc_vmid_get_appid(struct lpfc_vport *vport, char *uuid,
166 if (lpfc_vmid_is_type_priority_tag(vport) &&
167 !(vport->vmid_flag & LPFC_VMID_QFPA_CMPL) &&
168 (vport->vmid_flag & LPFC_VMID_ISSUE_QFPA)) {
169 vport->work_port_events |= WORKER_CHECK_VMID_ISSUE_QFPA;
178 read_lock(&vport->vmid_lock);
179 vmp = lpfc_get_vmid_from_hashtable(vport, hash, uuid);
183 read_unlock(&vport->vmid_lock);
184 lpfc_vmid_update_entry(vport, iodir, vmp, tag);
190 read_unlock(&vport->vmid_lock);
195 read_unlock(&vport->vmid_lock);
198 write_lock(&vport->vmid_lock);
199 vmp = lpfc_get_vmid_from_hashtable(vport, hash, uuid);
204 lpfc_vmid_update_entry(vport, iodir, vmp, tag);
205 write_unlock(&vport->vmid_lock);
208 write_unlock(&vport->vmid_lock);
213 if (vport->cur_vmid_cnt < vport->max_vmid) {
214 for (i = 0; i < vport->max_vmid; i++) {
215 vmp = vport->vmid + i;
219 if (i == vport->max_vmid)
226 write_unlock(&vport->vmid_lock);
231 lpfc_put_vmid_in_hashtable(vport, hash, vmp);
239 vport->vmid_inactivity_timeout ? 1 : 0;
242 if (vport->phba->pport->vmid_flag & LPFC_VMID_TYPE_PRIO)
243 lpfc_vmid_assign_cs_ctl(vport, vmp);
252 write_unlock(&vport->vmid_lock);
256 write_unlock(&vport->vmid_lock);
259 if (vport->phba->pport->vmid_flag & LPFC_VMID_TYPE_PRIO)
260 rc = lpfc_vmid_uvem(vport, vmp, true);
261 else if (vport->phba->cfg_vmid_app_header)
262 rc = lpfc_vmid_cmd(vport, SLI_CTAS_RAPP_IDENT, vmp);
264 write_lock(&vport->vmid_lock);
265 vport->cur_vmid_cnt++;
267 write_unlock(&vport->vmid_lock);
269 write_lock(&vport->vmid_lock);
273 write_unlock(&vport->vmid_lock);
278 if (!(vport->phba->pport->vmid_flag & LPFC_VMID_TIMER_ENBLD)) {
279 mod_timer(&vport->phba->inactive_vmid_poll,
282 vport->phba->pport->vmid_flag |= LPFC_VMID_TIMER_ENBLD;
290 * @vport: pointer to vport data structure
298 lpfc_reinit_vmid(struct lpfc_vport *vport)
305 write_lock(&vport->vmid_lock);
306 vport->cur_vmid_cnt = 0;
308 for (i = 0; i < vport->max_vmid; i++) {
309 vmp = &vport->vmid[i];
321 if (!hash_empty(vport->hash_table))
322 hash_for_each_safe(vport->hash_table, bucket, tmp, cur, hnode)
324 vport->vmid_flag = 0;
325 write_unlock(&vport->vmid_lock);