agent: Remove IB ping server from agent Signed-off-by: Hal Rosenstock <[EMAIL PROTECTED]>
Index: agent_priv.h =================================================================== --- agent_priv.h (revision 2017) +++ agent_priv.h (working copy) @@ -57,7 +57,6 @@ int port_num; struct ib_mad_agent *smp_agent; /* SM class */ struct ib_mad_agent *perf_mgmt_agent; /* PerfMgmt class */ - struct ib_mad_agent *pingd_agent; /* OpenIB Ping class */ }; #endif /* __IB_AGENT_PRIV_H__ */ Index: agent.c =================================================================== --- agent.c (revision 2017) +++ agent.c (working copy) @@ -37,7 +37,6 @@ */ #include <linux/dma-mapping.h> -#include <linux/utsname.h> #include <asm/bug.h> #include <ib_smi.h> @@ -70,8 +69,7 @@ } else { list_for_each_entry(entry, &ib_agent_port_list, port_list) { if ((entry->smp_agent == mad_agent) || - (entry->perf_mgmt_agent == mad_agent) || - (entry->pingd_agent == mad_agent)) + (entry->perf_mgmt_agent == mad_agent)) return entry; } } @@ -152,8 +150,7 @@ ah_attr.sl = wc->sl; ah_attr.static_rate = 0; ah_attr.ah_flags = 0; /* No GRH */ - if (mad_priv->mad.mad.mad_hdr.mgmt_class == IB_MGMT_CLASS_PERF_MGMT || - mad_priv->mad.mad.mad_hdr.mgmt_class == IB_MGMT_CLASS_OPENIB_PING) { + if (mad_priv->mad.mad.mad_hdr.mgmt_class == IB_MGMT_CLASS_PERF_MGMT) { if (wc->wc_flags & IB_WC_GRH) { ah_attr.ah_flags = IB_AH_GRH; /* Should sgid be looked up ? */ @@ -177,8 +174,7 @@ } send_wr.wr.ud.ah = agent_send_wr->ah; - if (mad_priv->mad.mad.mad_hdr.mgmt_class == IB_MGMT_CLASS_PERF_MGMT || - mad_priv->mad.mad.mad_hdr.mgmt_class == IB_MGMT_CLASS_OPENIB_PING) { + if (mad_priv->mad.mad.mad_hdr.mgmt_class == IB_MGMT_CLASS_PERF_MGMT) { send_wr.wr.ud.pkey_index = wc->pkey_index; send_wr.wr.ud.remote_qkey = IB_QP1_QKEY; } else { /* for SMPs */ @@ -236,9 +232,6 @@ case IB_MGMT_CLASS_PERF_MGMT: mad_agent = port_priv->perf_mgmt_agent; break; - case IB_MGMT_CLASS_OPENIB_PING: - mad_agent = port_priv->pingd_agent; - break; default: return 1; } @@ -246,42 +239,6 @@ return agent_mad_send(mad_agent, port_priv, mad, grh, wc); } -static void pingd_recv_handler(struct ib_mad_agent *mad_agent, - struct ib_mad_recv_wc *mad_recv_wc) -{ - struct ib_agent_port_private *port_priv; - struct ib_vendor_mad *vend; - struct ib_mad_private *recv = container_of(mad_recv_wc, - struct ib_mad_private, - header.recv_wc); - - /* Find matching MAD agent */ - port_priv = ib_get_agent_port(NULL, 0, mad_agent); - if (!port_priv) { - kmem_cache_free(ib_mad_cache, recv); - printk(KERN_ERR SPFX "pingd_recv_handler: no matching MAD " - "agent %p\n", mad_agent); - return; - } - - vend = (struct ib_vendor_mad *)mad_recv_wc->recv_buf.mad; - - vend->mad_hdr.method |= IB_MGMT_METHOD_RESP; - vend->mad_hdr.status = 0; - if (!system_utsname.domainname[0]) - strncpy(vend->data, system_utsname.nodename, sizeof vend->data); - else - snprintf(vend->data, sizeof vend->data, "%s.%s", - system_utsname.nodename, system_utsname.domainname); - - /* Send response */ - if (agent_mad_send(mad_agent, port_priv, recv, - mad_recv_wc->recv_buf.grh, mad_recv_wc->wc)) { - kmem_cache_free(ib_mad_cache, recv); - printk(KERN_ERR SPFX "pingd_recv_handler: reply failed\n"); - } -} - static void agent_send_handler(struct ib_mad_agent *mad_agent, struct ib_mad_send_wc *mad_send_wc) { @@ -320,7 +277,6 @@ { int ret; struct ib_agent_port_private *port_priv; - struct ib_mad_reg_req pingd_reg_req; unsigned long flags; /* First, check if port already open for SMI */ @@ -367,33 +323,12 @@ goto error3; } - pingd_reg_req.mgmt_class = IB_MGMT_CLASS_OPENIB_PING; - pingd_reg_req.mgmt_class_version = 1; - pingd_reg_req.oui[0] = (IB_OPENIB_OUI >> 16) & 0xff; - pingd_reg_req.oui[1] = (IB_OPENIB_OUI >> 8) & 0xff; - pingd_reg_req.oui[2] = IB_OPENIB_OUI & 0xff; - set_bit(IB_MGMT_METHOD_GET, pingd_reg_req.method_mask); - - /* Obtain server MAD agent for OpenIB Ping class (GSI QP) */ - port_priv->pingd_agent = ib_register_mad_agent(device, port_num, - IB_QPT_GSI, - &pingd_reg_req, 0, - &agent_send_handler, - &pingd_recv_handler, - NULL); - if (IS_ERR(port_priv->pingd_agent)) { - ret = PTR_ERR(port_priv->pingd_agent); - goto error4; - } - spin_lock_irqsave(&ib_agent_port_list_lock, flags); list_add_tail(&port_priv->port_list, &ib_agent_port_list); spin_unlock_irqrestore(&ib_agent_port_list_lock, flags); return 0; -error4: - ib_unregister_mad_agent(port_priv->perf_mgmt_agent); error3: ib_unregister_mad_agent(port_priv->smp_agent); error2: @@ -417,7 +352,6 @@ list_del(&port_priv->port_list); spin_unlock_irqrestore(&ib_agent_port_list_lock, flags); - ib_unregister_mad_agent(port_priv->pingd_agent); ib_unregister_mad_agent(port_priv->perf_mgmt_agent); ib_unregister_mad_agent(port_priv->smp_agent); kfree(port_priv); _______________________________________________ openib-general mailing list openib-general@openib.org http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general