]> git.baikalelectronics.ru Git - kernel.git/commit
IPoIB: Start multicast join process only on active ports
authorErez Shitrit <erezsh@mellanox.com>
Wed, 16 Oct 2013 14:37:53 +0000 (17:37 +0300)
committerRoland Dreier <roland@purestorage.com>
Fri, 8 Nov 2013 22:42:49 +0000 (14:42 -0800)
commit9fcf8870ac8e734c971b36718ec31e004accb326
tree665e0c5214e0a3ee33e9fe60d9f93471546b8b80
parentc22f5ca663dd2589910a4ba59055452976dd3f8f
IPoIB: Start multicast join process only on active ports

The driver starts the mcast_join task whenever the netdev interface is
UP without relation to the underlying IB port state.

Until the port state is ACTIVE all the join requests are irrelevant,
and the IB core returns -EINVAL. So the user will see errors such as:
"multicast join failed for ff12:401b:... , status -22".

Instead, have ipoib_mcast_join_task() return when the port is not active.

It will be called again when the port state is changed and the
low-level driver triggers the IB_EVENT_PORT_ACTIVE event or the
IB_EVENT_CLIENT_REREGISTER event.

Signed-off-by: Erez Shitrit <erezsh@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/ulp/ipoib/ipoib_multicast.c