From: Sean Hefty <[email protected]>

Endpoints are given a string identifer (base name) that matches
the first address assigned to the endpoint.  Store the endpoint
string identifier separately from the address name, and identify
the endpoint using the device name, port, and pkey.

The endpoint identifier is only used for logging purposes.

Signed-off-by: Sean Hefty <[email protected]>
---
 src/acm.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/src/acm.c b/src/acm.c
index 16e929b..a8a1fb9 100644
--- a/src/acm.c
+++ b/src/acm.c
@@ -153,6 +153,7 @@ struct acm_ep {
        DLIST_ENTRY           entry;
        union acm_ep_info     addr[MAX_EP_ADDR];
        char                  name[MAX_EP_ADDR][ACM_MAX_ADDRESS];
+       char                  id_string[ACM_MAX_ADDRESS];
        uint8_t               addr_type[MAX_EP_ADDR];
        void                  *dest_map[ACM_ADDRESS_RESERVED - 1];
        struct acm_dest       mc_dest[MAX_EP_MC];
@@ -1394,7 +1395,7 @@ static void acm_process_recv(struct acm_ep *ep, struct 
ibv_wc *wc)
 {
        struct acm_mad *mad;
 
-       acm_log(2, "base endpoint name %s\n", ep->name[0]);
+       acm_log(2, "base endpoint name %s\n", ep->id_string);
        mad = (struct acm_mad *) (uintptr_t) (wc->wr_id + sizeof(struct 
ibv_grh));
        switch (mad->mgmt_class) {
        case IB_MGMT_CLASS_SA:
@@ -3057,6 +3058,8 @@ acm_alloc_ep(struct acm_port *port, uint16_t pkey, 
uint16_t pkey_index)
        DListInit(&ep->active_queue);
        DListInit(&ep->wait_queue);
        lock_init(&ep->lock);
+       sprintf(ep->id_string, "%s-%d-0x%x", port->dev->verbs->device->name,
+               port->port_num, pkey);
 
        return ep;
 }
-- 
1.7.3

--
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

Reply via email to