Lines Matching refs:nn

85 static void nfp_net_pf_free_vnic(struct nfp_pf *pf, struct nfp_net *nn)  in nfp_net_pf_free_vnic()  argument
87 if (nfp_net_is_data_vnic(nn)) in nfp_net_pf_free_vnic()
88 nfp_app_vnic_free(pf->app, nn); in nfp_net_pf_free_vnic()
89 nfp_port_free(nn->port); in nfp_net_pf_free_vnic()
90 list_del(&nn->vnic_list); in nfp_net_pf_free_vnic()
92 nfp_net_free(nn); in nfp_net_pf_free_vnic()
97 struct nfp_net *nn, *next; in nfp_net_pf_free_vnics() local
99 list_for_each_entry_safe(nn, next, &pf->vnics, vnic_list) in nfp_net_pf_free_vnics()
100 if (nfp_net_is_data_vnic(nn)) in nfp_net_pf_free_vnics()
101 nfp_net_pf_free_vnic(pf, nn); in nfp_net_pf_free_vnics()
110 struct nfp_net *nn; in nfp_net_pf_alloc_vnic() local
119 nn = nfp_net_alloc(pf->pdev, ctrl_bar, needs_netdev, in nfp_net_pf_alloc_vnic()
121 if (IS_ERR(nn)) in nfp_net_pf_alloc_vnic()
122 return nn; in nfp_net_pf_alloc_vnic()
124 nn->app = pf->app; in nfp_net_pf_alloc_vnic()
125 nfp_net_get_fw_version(&nn->fw_ver, ctrl_bar); in nfp_net_pf_alloc_vnic()
126 nn->tx_bar = qc_bar + tx_base * NFP_QCP_QUEUE_ADDR_SZ; in nfp_net_pf_alloc_vnic()
127 nn->rx_bar = qc_bar + rx_base * NFP_QCP_QUEUE_ADDR_SZ; in nfp_net_pf_alloc_vnic()
128 nn->dp.is_vf = 0; in nfp_net_pf_alloc_vnic()
129 nn->stride_rx = stride; in nfp_net_pf_alloc_vnic()
130 nn->stride_tx = stride; in nfp_net_pf_alloc_vnic()
133 err = nfp_app_vnic_alloc(pf->app, nn, id); in nfp_net_pf_alloc_vnic()
135 nfp_net_free(nn); in nfp_net_pf_alloc_vnic()
141 list_add_tail(&nn->vnic_list, &pf->vnics); in nfp_net_pf_alloc_vnic()
143 return nn; in nfp_net_pf_alloc_vnic()
147 nfp_net_pf_init_vnic(struct nfp_pf *pf, struct nfp_net *nn, unsigned int id) in nfp_net_pf_init_vnic() argument
151 nn->id = id; in nfp_net_pf_init_vnic()
153 if (nn->port) { in nfp_net_pf_init_vnic()
154 err = nfp_devlink_port_register(pf->app, nn->port); in nfp_net_pf_init_vnic()
159 err = nfp_net_init(nn); in nfp_net_pf_init_vnic()
163 nfp_net_debugfs_vnic_add(nn, pf->ddir); in nfp_net_pf_init_vnic()
165 if (nn->port) in nfp_net_pf_init_vnic()
166 nfp_devlink_port_type_eth_set(nn->port); in nfp_net_pf_init_vnic()
168 nfp_net_info(nn); in nfp_net_pf_init_vnic()
170 if (nfp_net_is_data_vnic(nn)) { in nfp_net_pf_init_vnic()
171 err = nfp_app_vnic_init(pf->app, nn); in nfp_net_pf_init_vnic()
179 if (nn->port) in nfp_net_pf_init_vnic()
180 nfp_devlink_port_type_clear(nn->port); in nfp_net_pf_init_vnic()
181 nfp_net_debugfs_dir_clean(&nn->debugfs_dir); in nfp_net_pf_init_vnic()
182 nfp_net_clean(nn); in nfp_net_pf_init_vnic()
184 if (nn->port) in nfp_net_pf_init_vnic()
185 nfp_devlink_port_unregister(nn->port); in nfp_net_pf_init_vnic()
193 struct nfp_net *nn; in nfp_net_pf_alloc_vnics() local
198 nn = nfp_net_pf_alloc_vnic(pf, true, ctrl_bar, qc_bar, in nfp_net_pf_alloc_vnics()
200 if (IS_ERR(nn)) { in nfp_net_pf_alloc_vnics()
201 err = PTR_ERR(nn); in nfp_net_pf_alloc_vnics()
208 if (nn->port && nn->port->type == NFP_PORT_INVALID) in nfp_net_pf_alloc_vnics()
209 nfp_net_pf_free_vnic(pf, nn); in nfp_net_pf_alloc_vnics()
222 static void nfp_net_pf_clean_vnic(struct nfp_pf *pf, struct nfp_net *nn) in nfp_net_pf_clean_vnic() argument
224 if (nfp_net_is_data_vnic(nn)) in nfp_net_pf_clean_vnic()
225 nfp_app_vnic_clean(pf->app, nn); in nfp_net_pf_clean_vnic()
226 if (nn->port) in nfp_net_pf_clean_vnic()
227 nfp_devlink_port_type_clear(nn->port); in nfp_net_pf_clean_vnic()
228 nfp_net_debugfs_dir_clean(&nn->debugfs_dir); in nfp_net_pf_clean_vnic()
229 nfp_net_clean(nn); in nfp_net_pf_clean_vnic()
230 if (nn->port) in nfp_net_pf_clean_vnic()
231 nfp_devlink_port_unregister(nn->port); in nfp_net_pf_clean_vnic()
237 struct nfp_net *nn; in nfp_net_pf_alloc_irqs() local
241 list_for_each_entry(nn, &pf->vnics, vnic_list) in nfp_net_pf_alloc_irqs()
242 wanted_irqs += NFP_NET_NON_Q_VECTORS + nn->dp.num_r_vecs; in nfp_net_pf_alloc_irqs()
260 list_for_each_entry(nn, &pf->vnics, vnic_list) { in nfp_net_pf_alloc_irqs()
263 n = min(NFP_NET_NON_Q_VECTORS + nn->dp.num_r_vecs, in nfp_net_pf_alloc_irqs()
265 nfp_net_irqs_assign(nn, &pf->irq_entries[num_irqs - irqs_left], in nfp_net_pf_alloc_irqs()
282 struct nfp_net *nn; in nfp_net_pf_init_vnics() local
288 list_for_each_entry(nn, &pf->vnics, vnic_list) { in nfp_net_pf_init_vnics()
289 if (!nfp_net_is_data_vnic(nn)) in nfp_net_pf_init_vnics()
291 err = nfp_net_pf_init_vnic(pf, nn, id); in nfp_net_pf_init_vnics()
301 list_for_each_entry_continue_reverse(nn, &pf->vnics, vnic_list) in nfp_net_pf_init_vnics()
302 if (nfp_net_is_data_vnic(nn)) in nfp_net_pf_init_vnics()
303 nfp_net_pf_clean_vnic(pf, nn); in nfp_net_pf_init_vnics()
550 struct nfp_net *nn, *next; in nfp_net_refresh_port_table_sync() local
588 list_for_each_entry_safe(nn, next, &pf->vnics, vnic_list) { in nfp_net_refresh_port_table_sync()
589 if (!nn->port || nn->port->type != NFP_PORT_INVALID) in nfp_net_refresh_port_table_sync()
592 nfp_net_pf_clean_vnic(pf, nn); in nfp_net_refresh_port_table_sync()
593 nfp_net_pf_free_vnic(pf, nn); in nfp_net_refresh_port_table_sync()
759 struct nfp_net *nn, *next; in nfp_net_pci_remove() local
763 list_for_each_entry_safe(nn, next, &pf->vnics, vnic_list) { in nfp_net_pci_remove()
764 if (!nfp_net_is_data_vnic(nn)) in nfp_net_pci_remove()
766 nfp_net_pf_clean_vnic(pf, nn); in nfp_net_pci_remove()
767 nfp_net_pf_free_vnic(pf, nn); in nfp_net_pci_remove()