Lines Matching defs:ed

1186 static int fun_init_vports(struct fun_ethdev *ed, unsigned int n)
1188 if (ed->num_vports)
1191 ed->vport_info = kvcalloc(n, sizeof(*ed->vport_info), GFP_KERNEL);
1192 if (!ed->vport_info)
1194 ed->num_vports = n;
1198 static void fun_free_vports(struct fun_ethdev *ed)
1200 kvfree(ed->vport_info);
1201 ed->vport_info = NULL;
1202 ed->num_vports = 0;
1205 static struct fun_vport_info *fun_get_vport(struct fun_ethdev *ed,
1208 if (!ed->vport_info || vport >= ed->num_vports)
1211 return ed->vport_info + vport;
1219 struct fun_ethdev *ed = to_fun_ethdev(fdev);
1226 mutex_lock(&ed->state_mutex);
1227 vi = fun_get_vport(ed, vf);
1237 mutex_unlock(&ed->state_mutex);
1247 struct fun_ethdev *ed = to_fun_ethdev(fdev);
1257 mutex_lock(&ed->state_mutex);
1258 vi = fun_get_vport(ed, vf);
1271 mutex_unlock(&ed->state_mutex);
1281 struct fun_ethdev *ed = to_fun_ethdev(fdev);
1288 mutex_lock(&ed->state_mutex);
1289 vi = fun_get_vport(ed, vf);
1298 mutex_unlock(&ed->state_mutex);
1306 struct fun_ethdev *ed = to_fun_ethdev(fp->fdev);
1309 mutex_lock(&ed->state_mutex);
1310 vi = fun_get_vport(ed, vf);
1323 mutex_unlock(&ed->state_mutex);
1530 static int fun_max_qs(struct fun_ethdev *ed, unsigned int *ntx,
1535 if (ed->num_ports > 1 || is_kdump_kernel()) {
1541 neth = fun_get_res_count(&ed->fdev, FUN_ADMIN_OP_ETH);
1552 *ntx = min(ed->nsqs_per_port - 1, num_online_cpus());
1707 static int fun_create_netdev(struct fun_ethdev *ed, unsigned int portid)
1709 struct fun_dev *fdev = &ed->fdev;
1715 rc = fun_max_qs(ed, &ntx, &nrx);
1726 fun_queue_defaults(netdev, ed->nsqs_per_port);
1798 ed->netdevs[portid] = netdev;
1805 ed->netdevs[portid] = NULL;
1835 static int fun_create_ports(struct fun_ethdev *ed, unsigned int nports)
1837 struct fun_dev *fd = &ed->fdev;
1841 ed->nsqs_per_port = min(fd->num_irqs - 1,
1843 if (ed->nsqs_per_port < 2) {
1848 ed->netdevs = kcalloc(nports, sizeof(*ed->netdevs), GFP_KERNEL);
1849 if (!ed->netdevs)
1852 ed->num_ports = nports;
1854 rc = fun_create_netdev(ed, i);
1863 fun_destroy_netdev(ed->netdevs[--i]);
1864 kfree(ed->netdevs);
1865 ed->netdevs = NULL;
1866 ed->num_ports = 0;
1870 static void fun_destroy_ports(struct fun_ethdev *ed)
1874 for (i = 0; i < ed->num_ports; i++)
1875 fun_destroy_netdev(ed->netdevs[i]);
1877 kfree(ed->netdevs);
1878 ed->netdevs = NULL;
1879 ed->num_ports = 0;
1882 static void fun_update_link_state(const struct fun_ethdev *ed,
1889 if (port_idx >= ed->num_ports)
1892 netdev = ed->netdevs[port_idx];
1942 struct fun_ethdev *ed = to_fun_ethdev(fdev);
1946 fun_destroy_ports(ed);
1952 if (rc < 0 || rc == ed->num_ports)
1955 if (ed->num_ports)
1956 fun_destroy_ports(ed);
1958 fun_create_ports(ed, rc);
1964 struct fun_ethdev *ed = to_fun_ethdev(fdev);
1974 mutex_lock(&ed->state_mutex);
1975 fun_free_vports(ed);
1976 mutex_unlock(&ed->state_mutex);
1985 mutex_lock(&ed->state_mutex);
1986 rc = fun_init_vports(ed, nvfs);
1987 mutex_unlock(&ed->state_mutex);
2009 struct fun_ethdev *ed;
2019 ed = devlink_priv(devlink);
2020 mutex_init(&ed->state_mutex);
2022 fdev = &ed->fdev;
2029 rc = fun_create_ports(ed, rc);
2040 mutex_destroy(&ed->state_mutex);
2049 struct fun_ethdev *ed;
2051 ed = to_fun_ethdev(fdev);
2052 devlink = priv_to_devlink(ed);
2060 fun_destroy_ports(ed);
2062 mutex_destroy(&ed->state_mutex);