Message ID | 20221012141542.16925-1-haakon.bugge@oracle.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [rdma-rc] RDMA/cma: Use output interface for net_dev check | expand |
On Wed, Oct 12, 2022 at 04:15:42PM +0200, Håkon Bugge wrote: > Commit 27cfde795a96 ("RDMA/cma: Fix arguments order in net device > validation") swapped the src and dst addresses in the call to > validate_net_dev(). > > As a consequence, the test in validate_ipv4_net_dev() to see if the > net_dev is the right one, is incorrect for port 1 <-> 2 communication > when the ports are on the same sub-net. This is fixed by denoting the > flowi4_oif as the device instead of the incoming one. > > The bug has not been observed using IPv6 addresses. > > Fixes: 27cfde795a96 ("RDMA/cma: Fix arguments order in net device validation") > Signed-off-by: Håkon Bugge <haakon.bugge@oracle.com> > --- > drivers/infiniband/core/cma.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > Thanks, Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
> On 13 Oct 2022, at 10:43, Leon Romanovsky <leon@kernel.org> wrote: > > On Wed, Oct 12, 2022 at 04:15:42PM +0200, Håkon Bugge wrote: >> Commit 27cfde795a96 ("RDMA/cma: Fix arguments order in net device >> validation") swapped the src and dst addresses in the call to >> validate_net_dev(). >> >> As a consequence, the test in validate_ipv4_net_dev() to see if the >> net_dev is the right one, is incorrect for port 1 <-> 2 communication >> when the ports are on the same sub-net. This is fixed by denoting the >> flowi4_oif as the device instead of the incoming one. >> >> The bug has not been observed using IPv6 addresses. >> >> Fixes: 27cfde795a96 ("RDMA/cma: Fix arguments order in net device validation") >> Signed-off-by: Håkon Bugge <haakon.bugge@oracle.com> >> --- >> drivers/infiniband/core/cma.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> > > Thanks, > Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Thank you for your quick review Leon! Håkon
On Thu, Oct 13, 2022 at 10:31:55AM +0000, Haakon Bugge wrote: > > > > On 13 Oct 2022, at 10:43, Leon Romanovsky <leon@kernel.org> wrote: > > > > On Wed, Oct 12, 2022 at 04:15:42PM +0200, Håkon Bugge wrote: > >> Commit 27cfde795a96 ("RDMA/cma: Fix arguments order in net device > >> validation") swapped the src and dst addresses in the call to > >> validate_net_dev(). > >> > >> As a consequence, the test in validate_ipv4_net_dev() to see if the > >> net_dev is the right one, is incorrect for port 1 <-> 2 communication > >> when the ports are on the same sub-net. This is fixed by denoting the > >> flowi4_oif as the device instead of the incoming one. > >> > >> The bug has not been observed using IPv6 addresses. > >> > >> Fixes: 27cfde795a96 ("RDMA/cma: Fix arguments order in net device validation") > >> Signed-off-by: Håkon Bugge <haakon.bugge@oracle.com> > >> --- > >> drivers/infiniband/core/cma.c | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > > > > Thanks, > > Reviewed-by: Leon Romanovsky <leonro@nvidia.com> > > Thank you for your quick review Leon! Sure, just as a note. We won't take any patches before -rc1. Thanks > > > Håkon > >
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index 925e1e7d1f1f3..2f95e12296fa2 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c @@ -1634,7 +1634,7 @@ static bool validate_ipv4_net_dev(struct net_device *net_dev, return false; memset(&fl4, 0, sizeof(fl4)); - fl4.flowi4_iif = net_dev->ifindex; + fl4.flowi4_oif = net_dev->ifindex; fl4.daddr = daddr; fl4.saddr = saddr;
Commit 27cfde795a96 ("RDMA/cma: Fix arguments order in net device validation") swapped the src and dst addresses in the call to validate_net_dev(). As a consequence, the test in validate_ipv4_net_dev() to see if the net_dev is the right one, is incorrect for port 1 <-> 2 communication when the ports are on the same sub-net. This is fixed by denoting the flowi4_oif as the device instead of the incoming one. The bug has not been observed using IPv6 addresses. Fixes: 27cfde795a96 ("RDMA/cma: Fix arguments order in net device validation") Signed-off-by: Håkon Bugge <haakon.bugge@oracle.com> --- drivers/infiniband/core/cma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)