* [PATCH v2 1/2] ibacm: Incorrect usage of BE byte order of MLID attach/detach_mcast()
@ 2017-10-16 14:24 Michael J. Ruhl
[not found] ` <20171016142303.12814.97296.stgit-K+u1se/DcYrLESAwzcoQNrvm/XP+8Wra@public.gmane.org>
0 siblings, 1 reply; 4+ messages in thread
From: Michael J. Ruhl @ 2017-10-16 14:24 UTC (permalink / raw)
To: sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb
From: Michael J. Ruhl <michael.j.ruhl-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
The MLID value passed to ibv_attach/detach_mcast() must be in host
byte order.
acmp.c incorrectly uses the big endian format when doing a multicast
attach/detach (join). Multicast packets are used to do name resolution
by the libibacmp library.
There are two possible results because of this issue.
If a kernel has commit 8561eae60ff9, the attach will fail with an
EINVAL. ibacm will log this as a failure during the multicast join.
If a kernel does not have commit 8561eae60ff9, the attach will
complete successfully. Packets sent to this address will be dropped
because the packet dlid value and the multicast address information
given by the attach will not match.
Update MLID usage to use the correct byte order.
Reviewed-by: Mike Marciniszyn <mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
v1 -> v2
* Update kernel commit reference to correct commit id.
---
ibacm/prov/acmp/src/acmp.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/ibacm/prov/acmp/src/acmp.c b/ibacm/prov/acmp/src/acmp.c
index aa78416..78d9a29 100644
--- a/ibacm/prov/acmp/src/acmp.c
+++ b/ibacm/prov/acmp/src/acmp.c
@@ -732,7 +732,7 @@ static void acmp_process_join_resp(struct acm_sa_mad *sa_mad)
acm_log(0, "ERROR - unable to create ah\n");
goto out;
}
- ret = ibv_attach_mcast(ep->qp, &mc_rec->mgid, mc_rec->mlid);
+ ret = ibv_attach_mcast(ep->qp, &dest->mgid, dest->av.dlid);
if (ret) {
acm_log(0, "ERROR - unable to attach QP to multicast group\n");
ibv_destroy_ah(dest->ah);
@@ -1429,7 +1429,7 @@ static void acmp_ep_join(struct acmp_ep *ep)
if (ep->mc_dest[0].state == ACMP_READY && ep->mc_dest[0].ah) {
ibv_detach_mcast(ep->qp, &ep->mc_dest[0].mgid,
- be16toh(ep->mc_dest[0].av.dlid));
+ ep->mc_dest[0].av.dlid);
ibv_destroy_ah(ep->mc_dest[0].ah);
ep->mc_dest[0].ah = NULL;
}
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 2/2] ibacm: Incorrect list used for subnet list causes a segfault
[not found] ` <20171016142303.12814.97296.stgit-K+u1se/DcYrLESAwzcoQNrvm/XP+8Wra@public.gmane.org>
@ 2017-10-16 14:24 ` Michael J. Ruhl
[not found] ` <20171016142426.12814.13095.stgit-K+u1se/DcYrLESAwzcoQNrvm/XP+8Wra@public.gmane.org>
0 siblings, 1 reply; 4+ messages in thread
From: Michael J. Ruhl @ 2017-10-16 14:24 UTC (permalink / raw)
To: sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb
From: Michael J. Ruhl <michael.j.ruhl-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Setting the provider keyword in the ibacm_opts.cfg file to something
other than 'default' will cause ibacm to segfault on startup:
ibacm[32739]: segfault at 302e40 ip 000000000040432d
sp 00007ffe4039e1c0 error 4 in ibacm[400000+c000]
To re-produce the segfault, change the provider keyword in
ibacm_opts.cfg from:
provider ibacmp default
to:
provider ibacmp 0xFE80000000000000
When adding subnets to a provider subnet list, the incorrect list is
used. The list used is the provider_list (list of all providers)
rather than the (specific) provider subnet list.
This corrupts the provider_list, and causes ibacm to crash with the
above segfault.
Use the correct list when adding subnet information to a provider.
Fixes: 26e05f8304a506 ("ibacm: use ccan/list.h")
Reviewed-by: Mike Marciniszyn <mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
v1 -> v2
* Remove reference to library commit.
---
ibacm/src/acm.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/ibacm/src/acm.c b/ibacm/src/acm.c
index 1ccef94..a67001d 100644
--- a/ibacm/src/acm.c
+++ b/ibacm/src/acm.c
@@ -2587,8 +2587,8 @@ static void acm_load_prov_config(void)
return;
}
subnet->subnet_prefix = htobe64(prefix);
- list_add_after(&provider_list, &prov->entry,
- &subnet->entry);
+ list_add_tail(&prov->subnet_list,
+ &subnet->entry);
}
}
}
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2 2/2] ibacm: Incorrect list used for subnet list causes a segfault
[not found] ` <20171016142426.12814.13095.stgit-K+u1se/DcYrLESAwzcoQNrvm/XP+8Wra@public.gmane.org>
@ 2017-10-17 15:00 ` Nicolas Morey-Chaisemartin
[not found] ` <92b10949-edc9-c363-f909-7674cde678c9-l3A5Bk7waGM@public.gmane.org>
0 siblings, 1 reply; 4+ messages in thread
From: Nicolas Morey-Chaisemartin @ 2017-10-17 15:00 UTC (permalink / raw)
To: Michael J. Ruhl, sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb
Le 16/10/2017 à 16:24, Michael J. Ruhl a écrit :
> From: Michael J. Ruhl <michael.j.ruhl-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
>
> Setting the provider keyword in the ibacm_opts.cfg file to something
> other than 'default' will cause ibacm to segfault on startup:
>
> ibacm[32739]: segfault at 302e40 ip 000000000040432d
> sp 00007ffe4039e1c0 error 4 in ibacm[400000+c000]
>
> To re-produce the segfault, change the provider keyword in
> ibacm_opts.cfg from:
>
> provider ibacmp default
>
> to:
>
> provider ibacmp 0xFE80000000000000
>
> When adding subnets to a provider subnet list, the incorrect list is
> used. The list used is the provider_list (list of all providers)
> rather than the (specific) provider subnet list.
>
> This corrupts the provider_list, and causes ibacm to crash with the
> above segfault.
>
> Use the correct list when adding subnet information to a provider.
>
> Fixes: 26e05f8304a506 ("ibacm: use ccan/list.h")
> Reviewed-by: Mike Marciniszyn <mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
> Signed-off-by: Michael J. Ruhl <michael.j.ruhl-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
For this patch only (no setup for the first one)
Tested-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin-IBi9RG/b67k@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 2/2] ibacm: Incorrect list used for subnet list causes a segfault
[not found] ` <92b10949-edc9-c363-f909-7674cde678c9-l3A5Bk7waGM@public.gmane.org>
@ 2017-10-18 15:37 ` Doug Ledford
0 siblings, 0 replies; 4+ messages in thread
From: Doug Ledford @ 2017-10-18 15:37 UTC (permalink / raw)
To: Nicolas Morey-Chaisemartin, Michael J. Ruhl,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb
On Tue, 2017-10-17 at 17:00 +0200, Nicolas Morey-Chaisemartin wrote:
>
> Le 16/10/2017 à 16:24, Michael J. Ruhl a écrit :
> > From: Michael J. Ruhl <michael.j.ruhl-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
> >
> > Setting the provider keyword in the ibacm_opts.cfg file to
> > something
> > other than 'default' will cause ibacm to segfault on startup:
> >
> > ibacm[32739]: segfault at 302e40 ip 000000000040432d
> > sp 00007ffe4039e1c0 error 4 in ibacm[400000+c000]
> >
> > To re-produce the segfault, change the provider keyword in
> > ibacm_opts.cfg from:
> >
> > provider ibacmp default
> >
> > to:
> >
> > provider ibacmp 0xFE80000000000000
> >
> > When adding subnets to a provider subnet list, the incorrect list
> > is
> > used. The list used is the provider_list (list of all providers)
> > rather than the (specific) provider subnet list.
> >
> > This corrupts the provider_list, and causes ibacm to crash with the
> > above segfault.
> >
> > Use the correct list when adding subnet information to a provider.
> >
> > Fixes: 26e05f8304a506 ("ibacm: use ccan/list.h")
> > Reviewed-by: Mike Marciniszyn <mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
> > Signed-off-by: Michael J. Ruhl <michael.j.ruhl-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
>
> For this patch only (no setup for the first one)
>
> Tested-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin-IBi9RG/b67k@public.gmane.org>
Thanks, series applied.
--
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
GPG KeyID: B826A3330E572FDD
Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-10-18 15:37 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-16 14:24 [PATCH v2 1/2] ibacm: Incorrect usage of BE byte order of MLID attach/detach_mcast() Michael J. Ruhl
[not found] ` <20171016142303.12814.97296.stgit-K+u1se/DcYrLESAwzcoQNrvm/XP+8Wra@public.gmane.org>
2017-10-16 14:24 ` [PATCH v2 2/2] ibacm: Incorrect list used for subnet list causes a segfault Michael J. Ruhl
[not found] ` <20171016142426.12814.13095.stgit-K+u1se/DcYrLESAwzcoQNrvm/XP+8Wra@public.gmane.org>
2017-10-17 15:00 ` Nicolas Morey-Chaisemartin
[not found] ` <92b10949-edc9-c363-f909-7674cde678c9-l3A5Bk7waGM@public.gmane.org>
2017-10-18 15:37 ` Doug Ledford
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).