Commit 4b38da75 authored by Jason Gunthorpe's avatar Jason Gunthorpe
Browse files

RDMA/drivers: Convert easy drivers to use ib_device_set_netdev()



Drivers that never change their ndev dynamically do not need to use
the get_netdev callback.

Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
Acked-by: default avatarSelvin Xavier <selvin.xavier@broadcom.com>
Acked-by: default avatarMichal Kalderon <michal.kalderon@marvell.com>
Acked-by: default avatarAdit Ranadive <aditr@vmware.com>
parent 2b277dae
Loading
Loading
Loading
Loading
+0 −15
Original line number Diff line number Diff line
@@ -119,21 +119,6 @@ static int bnxt_re_build_sgl(struct ib_sge *ib_sg_list,
}

/* Device */
struct net_device *bnxt_re_get_netdev(struct ib_device *ibdev, u8 port_num)
{
	struct bnxt_re_dev *rdev = to_bnxt_re_dev(ibdev, ibdev);
	struct net_device *netdev = NULL;

	rcu_read_lock();
	if (rdev)
		netdev = rdev->netdev;
	if (netdev)
		dev_hold(netdev);

	rcu_read_unlock();
	return netdev;
}

int bnxt_re_query_device(struct ib_device *ibdev,
			 struct ib_device_attr *ib_attr,
			 struct ib_udata *udata)
+0 −2
Original line number Diff line number Diff line
@@ -142,8 +142,6 @@ struct bnxt_re_ucontext {
	spinlock_t		sh_lock;	/* protect shpg */
};

struct net_device *bnxt_re_get_netdev(struct ib_device *ibdev, u8 port_num);

int bnxt_re_query_device(struct ib_device *ibdev,
			 struct ib_device_attr *ib_attr,
			 struct ib_udata *udata);
+5 −1
Original line number Diff line number Diff line
@@ -617,7 +617,6 @@ static const struct ib_device_ops bnxt_re_dev_ops = {
	.get_dma_mr = bnxt_re_get_dma_mr,
	.get_hw_stats = bnxt_re_ib_get_hw_stats,
	.get_link_layer = bnxt_re_get_link_layer,
	.get_netdev = bnxt_re_get_netdev,
	.get_port_immutable = bnxt_re_get_port_immutable,
	.map_mr_sg = bnxt_re_map_mr_sg,
	.mmap = bnxt_re_mmap,
@@ -646,6 +645,7 @@ static const struct ib_device_ops bnxt_re_dev_ops = {
static int bnxt_re_register_ib(struct bnxt_re_dev *rdev)
{
	struct ib_device *ibdev = &rdev->ibdev;
	int ret;

	/* ib device init */
	ibdev->owner = THIS_MODULE;
@@ -693,6 +693,10 @@ static int bnxt_re_register_ib(struct bnxt_re_dev *rdev)
	rdma_set_device_sysfs_group(ibdev, &bnxt_re_dev_attr_group);
	ibdev->driver_id = RDMA_DRIVER_BNXT_RE;
	ib_set_device_ops(ibdev, &bnxt_re_dev_ops);
	ret = ib_device_set_netdev(&rdev->ibdev, rdev->netdev, 1);
	if (ret)
		return ret;

	return ib_register_device(ibdev, "bnxt_re%d");
}

+10 −20
Original line number Diff line number Diff line
@@ -234,25 +234,6 @@ static int hns_roce_query_device(struct ib_device *ib_dev,
	return 0;
}

static struct net_device *hns_roce_get_netdev(struct ib_device *ib_dev,
					      u8 port_num)
{
	struct hns_roce_dev *hr_dev = to_hr_dev(ib_dev);
	struct net_device *ndev;

	if (port_num < 1 || port_num > hr_dev->caps.num_ports)
		return NULL;

	rcu_read_lock();

	ndev = hr_dev->iboe.netdevs[port_num - 1];
	if (ndev)
		dev_hold(ndev);

	rcu_read_unlock();
	return ndev;
}

static int hns_roce_query_port(struct ib_device *ib_dev, u8 port_num,
			       struct ib_port_attr *props)
{
@@ -458,7 +439,6 @@ static const struct ib_device_ops hns_roce_dev_ops = {
	.fill_res_entry = hns_roce_fill_res_entry,
	.get_dma_mr = hns_roce_get_dma_mr,
	.get_link_layer = hns_roce_get_link_layer,
	.get_netdev = hns_roce_get_netdev,
	.get_port_immutable = hns_roce_port_immutable,
	.mmap = hns_roce_mmap,
	.modify_device = hns_roce_modify_device,
@@ -502,6 +482,7 @@ static int hns_roce_register_device(struct hns_roce_dev *hr_dev)
	struct hns_roce_ib_iboe *iboe = NULL;
	struct ib_device *ib_dev = NULL;
	struct device *dev = hr_dev->dev;
	unsigned int i;

	iboe = &hr_dev->iboe;
	spin_lock_init(&iboe->lock);
@@ -567,6 +548,15 @@ static int hns_roce_register_device(struct hns_roce_dev *hr_dev)
	ib_dev->driver_id = RDMA_DRIVER_HNS;
	ib_set_device_ops(ib_dev, hr_dev->hw->hns_roce_dev_ops);
	ib_set_device_ops(ib_dev, &hns_roce_dev_ops);
	for (i = 0; i < hr_dev->caps.num_ports; i++) {
		if (!hr_dev->iboe.netdevs[i])
			continue;

		ret = ib_device_set_netdev(ib_dev, hr_dev->iboe.netdevs[i],
					   i + 1);
		if (ret)
			return ret;
	}
	ret = ib_register_device(ib_dev, "hns_%d");
	if (ret) {
		dev_err(dev, "ib_register_device failed!\n");
+7 −1
Original line number Diff line number Diff line
@@ -161,7 +161,6 @@ static const struct ib_device_ops ocrdma_dev_ops = {
	.get_dev_fw_str = get_dev_fw_str,
	.get_dma_mr = ocrdma_get_dma_mr,
	.get_link_layer = ocrdma_link_layer,
	.get_netdev = ocrdma_get_netdev,
	.get_port_immutable = ocrdma_port_immutable,
	.map_mr_sg = ocrdma_map_mr_sg,
	.mmap = ocrdma_mmap,
@@ -197,6 +196,8 @@ static const struct ib_device_ops ocrdma_dev_srq_ops = {

static int ocrdma_register_device(struct ocrdma_dev *dev)
{
	int ret;

	ocrdma_get_guid(dev, (u8 *)&dev->ibdev.node_guid);
	BUILD_BUG_ON(sizeof(OCRDMA_NODE_DESC) > IB_DEVICE_NODE_DESC_MAX);
	memcpy(dev->ibdev.node_desc, OCRDMA_NODE_DESC,
@@ -251,6 +252,10 @@ static int ocrdma_register_device(struct ocrdma_dev *dev)
	}
	rdma_set_device_sysfs_group(&dev->ibdev, &ocrdma_attr_group);
	dev->ibdev.driver_id = RDMA_DRIVER_OCRDMA;
	ret = ib_device_set_netdev(&dev->ibdev, dev->nic_info.netdev, 1);
	if (ret)
		return ret;

	return ib_register_device(&dev->ibdev, "ocrdma%d");
}

@@ -308,6 +313,7 @@ static struct ocrdma_dev *ocrdma_add(struct be_dev_info *dev_info)
		pr_err("Unable to allocate ib device\n");
		return NULL;
	}

	dev->mbx_cmd = kzalloc(sizeof(struct ocrdma_mqe_emb_cmd), GFP_KERNEL);
	if (!dev->mbx_cmd)
		goto idr_err;
Loading