IB/core: Use rdma_read_gid_l2_fields to compare GID L2 fields
authorParav Pandit <parav@mellanox.com>
Wed, 2 Oct 2019 12:17:50 +0000 (15:17 +0300)
committerDoug Ledford <dledford@redhat.com>
Fri, 18 Oct 2019 18:55:33 +0000 (14:55 -0400)
commit777a8b32bc0f9bb25848a025f72a9febc30d9033
treec95073187642dec863043754b3785e91490a1ad3
parentb806c94ee44e53233b8ce6c92d9078d9781786a5
IB/core: Use rdma_read_gid_l2_fields to compare GID L2 fields

Current code tries to derive VLAN ID and compares it with GID
attribute for matching entry. This raw search fails on macvlan
netdevice as its not a VLAN device, but its an upper device of a VLAN
netdevice.

Due to this limitation, incoming QP1 packets fail to match in the
GID table. Such packets are dropped.

Hence, to support it, use the existing rdma_read_gid_l2_fields()
that takes care of diffferent device types.

Fixes: dbf727de7440 ("IB/core: Use GID table in AH creation and dmac resolution")
Signed-off-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Link: https://lore.kernel.org/r/20191002121750.17313-1-leon@kernel.org
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/core/verbs.c