IB/mlx4: Fix incorrect MC join state bit-masking on SR-IOV
authorAlex Vesker <valex@mellanox.com>
Mon, 12 Sep 2016 16:16:18 +0000 (19:16 +0300)
committerJiri Slaby <jslaby@suse.cz>
Fri, 7 Oct 2016 08:06:57 +0000 (10:06 +0200)
commit3a6d50fe6a54175cadd8e0f3881cfff3ef5ca82c
tree84b2b9721da4a8df75f1765e42ab962860f55483
parent8a9d8dc9ce83a90bfbbe69181acc4cf1beff46f5
IB/mlx4: Fix incorrect MC join state bit-masking on SR-IOV

commit e5ac40cd66c2f3cd11bc5edc658f012661b16347 upstream.

Because of an incorrect bit-masking done on the join state bits, when
handling a join request we failed to detect a difference between the
group join state and the request join state when joining as send only
full member (0x8). This caused the MC join request not to be sent.
This issue is relevant only when SRIOV is enabled and SM supports
send only full member.

This fix separates scope bits and join states bits a nibble each.

Fixes: b9c5d6a64358 ('IB/mlx4: Add multicast group (MCG) paravirtualization for SR-IOV')
Signed-off-by: Alex Vesker <valex@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
drivers/infiniband/hw/mlx4/mcg.c