Skip to content

Commit 7058f24

Browse files
committed
RDMA/core: Resolve MAC of next-hop device without ARP support
JIRA: https://issues.redhat.com/browse/RHEL-109942 commit 200651b Author: Parav Pandit <parav@nvidia.com> Date: Tue Sep 16 14:11:01 2025 +0300 RDMA/core: Resolve MAC of next-hop device without ARP support Currently, if the next-hop netdevice does not support ARP resolution, the destination MAC address is silently set to zero without reporting an error. This leads to incorrect behavior and may result in packet transmission failures. Fix this by deferring MAC resolution to the IP stack via neighbour lookup, allowing proper resolution or error reporting as appropriate. Fixes: 7025fcd ("IB: address translation to map IP toIB addresses (GIDs)") Signed-off-by: Parav Pandit <parav@nvidia.com> Reviewed-by: Vlad Dumitrescu <vdumitrescu@nvidia.com> Signed-off-by: Edward Srouji <edwards@nvidia.com> Link: https://patch.msgid.link/20250916111103.84069-3-edwards@nvidia.com Signed-off-by: Leon Romanovsky <leon@kernel.org> Signed-off-by: Kamal Heib <kheib@redhat.com>
1 parent dfc5142 commit 7058f24

File tree

1 file changed

+3
-7
lines changed

1 file changed

+3
-7
lines changed

drivers/infiniband/core/addr.c

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -460,14 +460,10 @@ static int addr_resolve_neigh(const struct dst_entry *dst,
460460
{
461461
int ret = 0;
462462

463-
if (ndev_flags & IFF_LOOPBACK) {
463+
if (ndev_flags & IFF_LOOPBACK)
464464
memcpy(addr->dst_dev_addr, addr->src_dev_addr, MAX_ADDR_LEN);
465-
} else {
466-
if (!(ndev_flags & IFF_NOARP)) {
467-
/* If the device doesn't do ARP internally */
468-
ret = fetch_ha(dst, addr, dst_in, seq);
469-
}
470-
}
465+
else
466+
ret = fetch_ha(dst, addr, dst_in, seq);
471467
return ret;
472468
}
473469

0 commit comments

Comments
 (0)