acm.c: In acm_port_up, handle noncontiguous pkeys
PATCH 2/8 acm.c: In acm_port_up, handle noncontiguous pkeys
There can be "holes" in pkey table although this is not usually the case but since IBA spec allows for this, it should be handled.
--- src/acm.c | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-)
src/acm.c +7 -7
@@ -3192,11 +3192,6 @@ static void acm_port_up(struct acm_port *port)break ; } -for (port->pkey_cnt =0 ;; port->pkey_cnt++) { - ret =ibv_query_pkey (port->dev->verbs, port->port_num, port->pkey_cnt, &pkey); -if (ret || !pkey) -break ; - } port->lid = attr.lid; port->lid_mask =0xffff - ((1 << attr.lmc) -1 );
@@ -3214,8 +3209,13 @@ static void acm_port_up(struct acm_port *port)return ;atomic_set (&port->sa_dest.refcnt,1 ); -for (i =0 ; i < port->pkey_cnt; i++) -acm_ep_up (port, (uint16_t ) i); +for (i =0 ; i < attr.pkey_tbl_len; i++) { + ret =ibv_query_pkey (port->dev->verbs, port->port_num, i, &pkey); +if (ret || !pkey) +continue ; + port->pkey_cnt++; +acm_ep_up (port, (uint16_t ) i); + }acm_port_join (port); port->state =IBV_PORT_ACTIVE ;
Signature · 6 lines
1.7.8.2 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): 5200E1CD.6070705-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org
Quoted 28 lines
There can be "holes" in pkey table although this is not usually the case but since IBA spec allows for this, it should be handled.
--- src/acm.c | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-)src/acm.c +0
-5@@ -3192,11 +3192,6 @@ static void acm_port_up(struct acm_port *port)break ; } -for (port->pkey_cnt =0 ;; port->pkey_cnt++) { - ret =ibv_query_pkey (port->dev->verbs, port->port_num, port- >pkey_cnt, &pkey); -if (ret || !pkey) -break ; - } port->lid = attr.lid; port->lid_mask =0xffff - ((1 << attr.lmc) -1 );@@ -3214,8 +3209,13 @@ static void acm_port_up(struct acm_port *port)return ;
src/acm.c static void acm_port_up(struct acm_port *port) · line 3218
Quoted 10 lines
src/acm.c +7
-2atomic_set (&port->sa_dest.refcnt,1 ); -for (i =0 ; i < port->pkey_cnt; i++) -acm_ep_up (port, (uint16_t ) i); +for (i =0 ; i < attr.pkey_tbl_len; i++) { + ret =ibv_query_pkey (port->dev->verbs, port->port_num, i, &pkey); +if (ret || !pkey) +continue ; + port->pkey_cnt++; +acm_ep_up (port, (uint16_t ) i); + }
I think we can remove pkey_cnt from struct acm_port as part of this change. If you agree, I can fix that up when applying the patch (no need to update). --
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): 1828884A29C6694DAF28B7E6B8A8237388CA48C0-P5GAC/[email protected]
Quoted 28 lines · Sean
Quoted 28 lines
There can be "holes" in pkey table although this is not usually the case but since IBA spec allows for this, it should be handled.
--- src/acm.c | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-)src/acm.c +0
-5@@ -3192,11 +3192,6 @@ static void acm_port_up(struct acm_port *port)break ; } -for (port->pkey_cnt =0 ;; port->pkey_cnt++) { - ret =ibv_query_pkey (port->dev->verbs, port->port_num, port- > pkey_cnt, &pkey); -if (ret || !pkey) -break ; - } port->lid = attr.lid; port->lid_mask =0xffff - ((1 << attr.lmc) -1 );@@ -3214,8 +3209,13 @@ static void acm_port_up(struct acm_port *port)return ;
Quoted 12 lines
src/acm.c static void acm_port_up(struct acm_port *port) · line 3218
Quoted 10 lines
src/acm.c +7
-2atomic_set (&port->sa_dest.refcnt,1 ); -for (i =0 ; i < port->pkey_cnt; i++) -acm_ep_up (port, (uint16_t ) i); +for (i =0 ; i < attr.pkey_tbl_len; i++) { + ret =ibv_query_pkey (port->dev->verbs, port->port_num, i, &pkey); +if (ret || !pkey) +continue ; + port->pkey_cnt++; +acm_ep_up (port, (uint16_t ) i); + }I think we can remove
pkey_cntfrom structacm_portas part of this change. If you agree, I can fix that up when applying the patch (no need to update).
Agreed. Thanks.
-- Hal
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html