> > This removes the definitions and declarations of the functions > ib_register_mad_snoop and register_snoop_agent in the file mad.c due 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 > > Signed-off-by: Nicholas Krause <xerofo...@gmail.com> > --- > drivers/infiniband/core/mad.c | 98 > ------------------------------------------- > 1 file changed, 98 deletions(-) > > diff --git a/drivers/infiniband/core/mad.c b/drivers/infiniband/core/mad.c > index 4b5c723..e5978e1 100644 > --- a/drivers/infiniband/core/mad.c > +++ b/drivers/infiniband/core/mad.c > @@ -444,104 +444,6 @@ static inline int is_snooping_recvs(int > mad_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); > - > 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-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/