net/mlx4_core: Remove unnecessary validation for port number
authorMoni Shoua <monis@mellanox.co.il>
Tue, 21 Jan 2014 08:19:37 +0000 (10:19 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 22 Jan 2014 07:14:27 +0000 (23:14 -0800)
This is a fix to a regression introduced by commit:
"982290a net/mlx4_core: Check port number for validity
before accessing data"

IPoIB could not attach to multicast group and we get this in dmesg:
[144214.145008] ib0: failed to attach to multicast group, ret = -22
[144214.145016] ib0: couldn't attach QP to multicast group ff12:401b:ffff:0000:0000:0000:ffff:ffff
[144214.145019] ib0: multicast join failed for ff12:401b:ffff:0000:0000:0000:ffff:ffff, status -22

The cause to the problem is because port is extracted from gid[5].
Which is only valid for Ethernet.
Removed this validation in mlx4_qp_attach_common(), which is accessed
from both Ethernet and IB flows.
Error flow for bad port value in Ethernet is already exists in that
function.

Signed-off-by: Moni Shoua <monis@mellanox.co.il>
Signed-off-by: Matan Barak <matanb@mellanox.com>
Signed-off-by: Amir Vadai <amirv@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/mcg.c

index bfe65f7be91c7f46b50c8afc4bd03272112e7ab4..aefb74f56344bd479492ccf0bae47f727540ff7e 100644 (file)
@@ -943,9 +943,6 @@ int mlx4_qp_attach_common(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
        u8 port = gid[5];
        u8 new_entry = 0;
 
-       if (port < 1 || port > dev->caps.num_ports)
-               return -EINVAL;
-
        mailbox = mlx4_alloc_cmd_mailbox(dev);
        if (IS_ERR(mailbox))
                return PTR_ERR(mailbox);