main.c (b2aaf8f74cdc84a9182f6cabf198b7763bcb9d40) main.c (7ff93f8b7ecbc36e7ffc5c11a61643821c1bfee5)
1/*
2 * Copyright (c) 2006, 2007 Cisco Systems, Inc. All rights reserved.
3 * Copyright (c) 2007, 2008 Mellanox Technologies. All rights reserved.
4 *
5 * This software is available to you under a choice of one of two
6 * licenses. You may choose to be licensed under the terms of the GNU
7 * General Public License (GPL) Version 2, available from the file
8 * COPYING in the main directory of this source tree, or the

--- 560 unchanged lines hidden (view full) ---

569 MLX4_INIT_DOORBELL_LOCK(&ibdev->uar_lock);
570
571 ibdev->dev = dev;
572
573 strlcpy(ibdev->ib_dev.name, "mlx4_%d", IB_DEVICE_NAME_MAX);
574 ibdev->ib_dev.owner = THIS_MODULE;
575 ibdev->ib_dev.node_type = RDMA_NODE_IB_CA;
576 ibdev->ib_dev.local_dma_lkey = dev->caps.reserved_lkey;
1/*
2 * Copyright (c) 2006, 2007 Cisco Systems, Inc. All rights reserved.
3 * Copyright (c) 2007, 2008 Mellanox Technologies. All rights reserved.
4 *
5 * This software is available to you under a choice of one of two
6 * licenses. You may choose to be licensed under the terms of the GNU
7 * General Public License (GPL) Version 2, available from the file
8 * COPYING in the main directory of this source tree, or the

--- 560 unchanged lines hidden (view full) ---

569 MLX4_INIT_DOORBELL_LOCK(&ibdev->uar_lock);
570
571 ibdev->dev = dev;
572
573 strlcpy(ibdev->ib_dev.name, "mlx4_%d", IB_DEVICE_NAME_MAX);
574 ibdev->ib_dev.owner = THIS_MODULE;
575 ibdev->ib_dev.node_type = RDMA_NODE_IB_CA;
576 ibdev->ib_dev.local_dma_lkey = dev->caps.reserved_lkey;
577 ibdev->ib_dev.phys_port_cnt = dev->caps.num_ports;
577 ibdev->num_ports = 0;
578 mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_IB)
579 ibdev->num_ports++;
580 ibdev->ib_dev.phys_port_cnt = ibdev->num_ports;
578 ibdev->ib_dev.num_comp_vectors = 1;
579 ibdev->ib_dev.dma_device = &dev->pdev->dev;
580
581 ibdev->ib_dev.uverbs_abi_ver = MLX4_IB_UVERBS_ABI_VERSION;
582 ibdev->ib_dev.uverbs_cmd_mask =
583 (1ull << IB_USER_VERBS_CMD_GET_CONTEXT) |
584 (1ull << IB_USER_VERBS_CMD_QUERY_DEVICE) |
585 (1ull << IB_USER_VERBS_CMD_QUERY_PORT) |

--- 100 unchanged lines hidden (view full) ---

686 return NULL;
687}
688
689static void mlx4_ib_remove(struct mlx4_dev *dev, void *ibdev_ptr)
690{
691 struct mlx4_ib_dev *ibdev = ibdev_ptr;
692 int p;
693
581 ibdev->ib_dev.num_comp_vectors = 1;
582 ibdev->ib_dev.dma_device = &dev->pdev->dev;
583
584 ibdev->ib_dev.uverbs_abi_ver = MLX4_IB_UVERBS_ABI_VERSION;
585 ibdev->ib_dev.uverbs_cmd_mask =
586 (1ull << IB_USER_VERBS_CMD_GET_CONTEXT) |
587 (1ull << IB_USER_VERBS_CMD_QUERY_DEVICE) |
588 (1ull << IB_USER_VERBS_CMD_QUERY_PORT) |

--- 100 unchanged lines hidden (view full) ---

689 return NULL;
690}
691
692static void mlx4_ib_remove(struct mlx4_dev *dev, void *ibdev_ptr)
693{
694 struct mlx4_ib_dev *ibdev = ibdev_ptr;
695 int p;
696
694 for (p = 1; p <= dev->caps.num_ports; ++p)
697 for (p = 1; p <= ibdev->num_ports; ++p)
695 mlx4_CLOSE_PORT(dev, p);
696
697 mlx4_ib_mad_cleanup(ibdev);
698 ib_unregister_device(&ibdev->ib_dev);
699 iounmap(ibdev->uar_map);
700 mlx4_uar_free(dev, &ibdev->priv_uar);
701 mlx4_pd_free(dev, ibdev->priv_pdn);
702 ib_dealloc_device(&ibdev->ib_dev);
703}
704
705static void mlx4_ib_event(struct mlx4_dev *dev, void *ibdev_ptr,
706 enum mlx4_dev_event event, int port)
707{
708 struct ib_event ibev;
698 mlx4_CLOSE_PORT(dev, p);
699
700 mlx4_ib_mad_cleanup(ibdev);
701 ib_unregister_device(&ibdev->ib_dev);
702 iounmap(ibdev->uar_map);
703 mlx4_uar_free(dev, &ibdev->priv_uar);
704 mlx4_pd_free(dev, ibdev->priv_pdn);
705 ib_dealloc_device(&ibdev->ib_dev);
706}
707
708static void mlx4_ib_event(struct mlx4_dev *dev, void *ibdev_ptr,
709 enum mlx4_dev_event event, int port)
710{
711 struct ib_event ibev;
712 struct mlx4_ib_dev *ibdev = to_mdev((struct ib_device *) ibdev_ptr);
709
713
714 if (port > ibdev->num_ports)
715 return;
716
710 switch (event) {
711 case MLX4_DEV_EVENT_PORT_UP:
712 ibev.event = IB_EVENT_PORT_ACTIVE;
713 break;
714
715 case MLX4_DEV_EVENT_PORT_DOWN:
716 ibev.event = IB_EVENT_PORT_ERR;
717 break;

--- 33 unchanged lines hidden ---
717 switch (event) {
718 case MLX4_DEV_EVENT_PORT_UP:
719 ibev.event = IB_EVENT_PORT_ACTIVE;
720 break;
721
722 case MLX4_DEV_EVENT_PORT_DOWN:
723 ibev.event = IB_EVENT_PORT_ERR;
724 break;

--- 33 unchanged lines hidden ---