Lines Matching refs:port

97 	int			port;
231 static int ib_link_query_port(struct ib_device *ibdev, u8 port,
247 in_mad->attr_mod = cpu_to_be32(port);
252 err = mlx4_MAD_IFC(to_mdev(ibdev), mad_ifc_flags, port, NULL, NULL,
268 props->gid_tbl_len = to_mdev(ibdev)->dev->caps.gid_table_len[port];
270 props->pkey_tbl_len = to_mdev(ibdev)->dev->caps.pkey_table_len[port];
299 in_mad->attr_mod = cpu_to_be32(port);
301 err = mlx4_MAD_IFC(to_mdev(ibdev), mad_ifc_flags, port,
326 static int eth_link_query_port(struct ib_device *ibdev, u8 port,
341 err = mlx4_cmd_box(mdev->dev, 0, mailbox->dma, port, 0,
354 props->gid_tbl_len = mdev->dev->caps.gid_table_len[port];
364 ndev = iboe->netdevs[port - 1];
381 int __mlx4_ib_query_port(struct ib_device *ibdev, u8 port,
388 err = mlx4_ib_port_link_layer(ibdev, port) == IB_LINK_LAYER_INFINIBAND ?
389 ib_link_query_port(ibdev, port, props, netw_view) :
390 eth_link_query_port(ibdev, port, props, netw_view);
395 static int mlx4_ib_query_port(struct ib_device *ibdev, u8 port,
399 return __mlx4_ib_query_port(ibdev, port, props, 0);
402 int __mlx4_ib_query_gid(struct ib_device *ibdev, u8 port, int index,
419 in_mad->attr_mod = cpu_to_be32(port);
424 err = mlx4_MAD_IFC(dev, mad_ifc_flags, port, NULL, NULL, in_mad, out_mad);
443 err = mlx4_MAD_IFC(dev, mad_ifc_flags, port,
458 static int iboe_query_gid(struct ib_device *ibdev, u8 port, int index,
463 *gid = dev->iboe.gid_table[port - 1][index];
468 static int mlx4_ib_query_gid(struct ib_device *ibdev, u8 port, int index,
471 if (rdma_port_get_link_layer(ibdev, port) == IB_LINK_LAYER_INFINIBAND)
472 return __mlx4_ib_query_gid(ibdev, port, index, gid, 0);
474 return iboe_query_gid(ibdev, port, index, gid);
477 int __mlx4_ib_query_pkey(struct ib_device *ibdev, u8 port, u16 index,
497 err = mlx4_MAD_IFC(to_mdev(ibdev), mad_ifc_flags, port, NULL, NULL,
510 static int mlx4_ib_query_pkey(struct ib_device *ibdev, u8 port, u16 index, u16 *pkey)
512 return __mlx4_ib_query_pkey(ibdev, port, index, pkey, 0);
552 static int mlx4_SET_PORT(struct mlx4_ib_dev *dev, u8 port, int reset_qkey_viols,
557 u8 is_eth = dev->dev->caps.port_type[port] == MLX4_PORT_TYPE_ETH;
573 err = mlx4_cmd(dev->dev, mailbox->dma, port, is_eth, MLX4_CMD_SET_PORT,
580 static int mlx4_ib_modify_port(struct ib_device *ibdev, u8 port, int mask,
589 err = mlx4_ib_query_port(ibdev, port, &attr);
596 err = mlx4_SET_PORT(to_mdev(ibdev), port,
882 ge->port = mqp->port;
900 if (!mqp->port)
904 ndev = mdev->iboe.netdevs[mqp->port - 1];
912 dev_mc_add(mdev->iboe.netdevs[mqp->port - 1], mac, 6, 0);
942 err = mlx4_multicast_attach(mdev->dev, &mqp->mqp, gid->raw, mqp->port,
1091 rule.port = mqp->port;
1234 ndev = ge->added ? mdev->iboe.netdevs[ge->port - 1] : NULL;
1241 dev_mc_delete(mdev->iboe.netdevs[ge->port - 1], mac, 6, 0);
1376 err = mlx4_cmd(dev, mailbox->dma, MLX4_SET_PORT_GID_TABLE << 8 | gw->port,
1380 pr_warn("set port command failed\n");
1382 memcpy(gw->dev->iboe.gid_table[gw->port - 1], gw->gids, sizeof gw->gids);
1383 mlx4_ib_dispatch_event(gw->dev, gw->port, IB_EVENT_GID_CHANGE);
1390 static int update_ipv6_gids(struct mlx4_ib_dev *dev, int port, int clear)
1392 struct net_device *ndev = dev->iboe.netdevs[port - 1];
1414 max_gids = dev->dev->caps.gid_table_len[port];
1431 !memcmp(&dev->iboe.gid_table[port - 1][i], &zgid, sizeof zgid))
1433 if (!memcmp(&dev->iboe.gid_table[port - 1][i], &gid, sizeof gid)) {
1442 (memcmp(&dev->iboe.gid_table[port - 1][0],
1444 !memcmp(&dev->iboe.gid_table[port - 1][0],
1446 dev->iboe.gid_table[port - 1][0] = gid;
1450 dev->iboe.gid_table[port - 1][index_free] = gid;
1466 if (memcmp(&dev->iboe.gid_table[port - 1][i], &zgid, sizeof zgid))
1468 dev->iboe.gid_table[port - 1][i] = zgid;
1472 memcpy(work->gids, dev->iboe.gid_table[port - 1], sizeof work->gids);
1474 work->port = port;
1484 static void handle_en_event(struct mlx4_ib_dev *dev, int port, unsigned long event)
1491 update_ipv6_gids(dev, port, 0);
1495 update_ipv6_gids(dev, port, 1);
1496 dev->iboe.netdevs[port - 1] = NULL;
1500 static void netdev_added(struct mlx4_ib_dev *dev, int port)
1502 update_ipv6_gids(dev, port, 0);
1505 static void netdev_removed(struct mlx4_ib_dev *dev, int port)
1507 update_ipv6_gids(dev, port, 1);
1517 int port;
1528 mlx4_foreach_ib_transport_port(port, ibdev->dev) {
1529 oldnd = iboe->netdevs[port - 1];
1530 iboe->netdevs[port - 1] =
1531 mlx4_get_protocol_dev(ibdev->dev, MLX4_PROT_ETH, port);
1532 if (oldnd != iboe->netdevs[port - 1]) {
1533 if (iboe->netdevs[port - 1])
1534 netdev_added(ibdev, port);
1536 netdev_removed(ibdev, port);
1554 int port;
1560 for (port = 1; port <= ibdev->dev->caps.num_ports; ++port) {
1562 i < ibdev->dev->phys_caps.pkey_phys_table_len[port];
1564 ibdev->pkeys.virt2phys_pkey[slave][port - 1][i] =
1567 ibdev->dev->phys_caps.pkey_phys_table_len[port] - 1;
1568 mlx4_sync_pkey_table(ibdev->dev, slave, port, i,
1569 ibdev->pkeys.virt2phys_pkey[slave][port - 1][i]);
1574 for (port = 1; port <= ibdev->dev->caps.num_ports; ++port) {
1576 i < ibdev->dev->phys_caps.pkey_phys_table_len[port];
1578 ibdev->pkeys.phys_pkey_cache[port-1][i] =
2248 dm[i]->port = i + 1;
2314 /* need to queue only for port owner, which uses GEN_EQE */