net/mlx4_core: Fix init_port mask state for slaves
authorJack Morgenstein <jackm@dev.mellanox.co.il>
Tue, 15 May 2012 10:34:58 +0000 (10:34 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 16 May 2012 04:56:58 +0000 (00:56 -0400)
commit8bac9ede683f0af92cb50820df138b9c1e6cabe2
tree4a27d7851474af60e2fb11feee60707733a3d2ff
parent162344ed2c80845200845f83e310fa3058bfe001
net/mlx4_core: Fix init_port mask state for slaves

In function mlx4_INIT_PORT_wrapper, the port state mask for the
slave is only set if we are invoking the INIT_PORT fw command.

However, the reference count for the (initialized) port is
incremented anyway.

This creates a problem in that when we have multiple slaves,
then the CLOSE_PORT command will never be invoked. The
reason is that in the CLOSE_PORT wrapper, if the port-state
mask is zero for the slave (which it is), the wrapper returns
without doing anything. The only slave which will not return
immediately in the CLOSE_PORT wrapper is that slave for which
INIT_PORT was invoked.

The fix is to not have the port-state mask setting depend
on the logic for calling the INIT_PORT fw command.

Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/fw.c