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)
committerDanny Wood <danwood76@gmail.com>
Tue, 29 Jan 2019 13:15:04 +0000 (13:15 +0000)
commitcdd7533f2d428c1d9af83ec5de8585aafad7f0ec
treeffcf63acc16f95d630efe0006a06bfdec941d7ab
parent786656c12229bfbcd285281ffde2bec4bef5439a
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: Willy Tarreau <w@1wt.eu>
drivers/infiniband/hw/mlx4/mcg.c