infiniband:Remove unneeded function definitions and declarations in the file, mad.c
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 5 lines
This removes the definitions and declarations of the functions
ib_register_mad_snoopandregister_snoop_agentin the filemad.cdue to have no more callers and thus can be removed to reduce code size of this particular file.
I don't disagree with removing the snoop code, however, I don't believe this goes far enough. I have a similar patch which removes the snoop interface completely. It has a medium level of testing.
I'll send it to the list for review. If you concur with the larger removal, I'd be happy to add your signed-off by line.
Thanks,
Ira
Quoted 115 lines
Signed-off-by Nicholas Krause <[email protected]>--- drivers/infiniband/core/mad.c | 98 ------------------------------------------- 1 file changed, 98 deletions(-)drivers/infiniband/core/mad.c +0
-98@@ -444,104 +444,6 @@ static inline int is_snooping_recvs(intmad_snoop_flags) IB_MAD_SNOOP_RMPP_RECVS*/)); } -static int register_snoop_agent (struct ib_mad_qp_info *qp_info, -struct ib_mad_snoop_private *mad_snoop_priv) -{ -struct ib_mad_snoop_private **new_snoop_table; -unsigned long flags; -int i; - -spin_lock_irqsave (&qp_info->snoop_lock, flags); -/* Check for empty slot in array. */ -for (i =0 ; i < qp_info->snoop_table_size; i++) -if (!qp_info->snoop_table[i]) -break ; - -if (i == qp_info->snoop_table_size) { -/* Grow table. */ - new_snoop_table =krealloc (qp_info->snoop_table, -sizeof mad_snoop_priv * - (qp_info->snoop_table_size +1 ), -GFP_ATOMIC ); -if (!new_snoop_table) { - i = -ENOMEM ; - goto out; - } - - qp_info->snoop_table = new_snoop_table; - qp_info->snoop_table_size++; - } - qp_info->snoop_table[i] = mad_snoop_priv; -atomic_inc (&qp_info->snoop_count); -out: -spin_unlock_irqrestore (&qp_info->snoop_lock, flags); -return i; -} - -struct ib_mad_agent *ib_register_mad_snoop (struct ib_device *device, -u8 port_num, -enum ib_qp_type qp_type, -int mad_snoop_flags, -ib_mad_snoop_handler snoop_handler, -ib_mad_recv_handler recv_handler, -void *context) -{ -struct ib_mad_port_private *port_priv; -struct ib_mad_agent *ret; -struct ib_mad_snoop_private *mad_snoop_priv; -int qpn; - -/* Validate parameters */ -if ((is_snooping_sends (mad_snoop_flags) && !snoop_handler) || - (is_snooping_recvs (mad_snoop_flags) && !recv_handler)) { - ret =ERR_PTR (-EINVAL ); - goto error1; - } - qpn =get_spl_qp_index (qp_type); -if (qpn ==-1 ) { - ret =ERR_PTR (-EINVAL ); - goto error1; - } - port_priv =ib_get_mad_port (device, port_num); -if (!port_priv) { - ret =ERR_PTR (-ENODEV ); - goto error1; - } -/* Allocate structures */ - mad_snoop_priv =kzalloc (sizeof *mad_snoop_priv,GFP_KERNEL ); -if (!mad_snoop_priv) { - ret =ERR_PTR (-ENOMEM ); - goto error1; - } - -/* Now, fill in the various structures */ - mad_snoop_priv->qp_info = &port_priv->qp_info[qpn]; - mad_snoop_priv->agent.device = device; - mad_snoop_priv->agent.recv_handler = recv_handler; - mad_snoop_priv->agent.snoop_handler = snoop_handler; - mad_snoop_priv->agent.context = context; - mad_snoop_priv->agent.qp = port_priv->qp_info[qpn].qp; - mad_snoop_priv->agent.port_num = port_num; - mad_snoop_priv->mad_snoop_flags = mad_snoop_flags; -init_completion (&mad_snoop_priv->comp); - mad_snoop_priv->snoop_index =register_snoop_agent ( - &port_priv->qp_info[qpn], - mad_snoop_priv); -if (mad_snoop_priv->snoop_index <0 ) { - ret =ERR_PTR (mad_snoop_priv->snoop_index); - goto error2; - } - -atomic_set (&mad_snoop_priv->refcount,1 ); -return &mad_snoop_priv->agent; - -error2: -kfree (mad_snoop_priv); -error1: -return ret; -} -EXPORT_SYMBOL (ib_register_mad_snoop); -
Quoted 5 lines
static inline void deref_mad_agent(struct
ib_mad_agent_private*mad_agent_priv) {
if (atomic_dec_and_test(&mad_agent_priv->refcount))
--
2.1.4
--
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