Commit 917918f5 authored by Leon Romanovsky's avatar Leon Romanovsky
Browse files

RDMA/device: Return error earlier if port in not valid

There is no need to allocate port data if port provided is not valid.

Fixes: c2261dd7 ("RDMA/device: Add ib_device_set_netdev() as an alternative to get_netdev")
Link: https://lore.kernel.org/r/022047a8b16988fc88d4426da50bf60a4833311b.1719235449.git.leon@kernel.org


Signed-off-by: default avatarLeon Romanovsky <leonro@nvidia.com>
parent 589b844f
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -2146,6 +2146,9 @@ int ib_device_set_netdev(struct ib_device *ib_dev, struct net_device *ndev,
	unsigned long flags;
	int ret;

	if (!rdma_is_port_valid(ib_dev, port))
		return -EINVAL;

	/*
	 * Drivers wish to call this before ib_register_driver, so we have to
	 * setup the port data early.
@@ -2154,9 +2157,6 @@ int ib_device_set_netdev(struct ib_device *ib_dev, struct net_device *ndev,
	if (ret)
		return ret;

	if (!rdma_is_port_valid(ib_dev, port))
		return -EINVAL;

	pdata = &ib_dev->port_data[port];
	spin_lock_irqsave(&pdata->netdev_lock, flags);
	old_ndev = rcu_dereference_protected(