• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/drivers/infiniband/core/

Lines Matching defs:mad_snoop_priv

395 				struct ib_mad_snoop_private *mad_snoop_priv)
409 new_snoop_table = kmalloc(sizeof mad_snoop_priv *
418 sizeof mad_snoop_priv *
425 qp_info->snoop_table[i] = mad_snoop_priv;
442 struct ib_mad_snoop_private *mad_snoop_priv;
462 mad_snoop_priv = kzalloc(sizeof *mad_snoop_priv, GFP_KERNEL);
463 if (!mad_snoop_priv) {
469 mad_snoop_priv->qp_info = &port_priv->qp_info[qpn];
470 mad_snoop_priv->agent.device = device;
471 mad_snoop_priv->agent.recv_handler = recv_handler;
472 mad_snoop_priv->agent.snoop_handler = snoop_handler;
473 mad_snoop_priv->agent.context = context;
474 mad_snoop_priv->agent.qp = port_priv->qp_info[qpn].qp;
475 mad_snoop_priv->agent.port_num = port_num;
476 mad_snoop_priv->mad_snoop_flags = mad_snoop_flags;
477 init_completion(&mad_snoop_priv->comp);
478 mad_snoop_priv->snoop_index = register_snoop_agent(
480 mad_snoop_priv);
481 if (mad_snoop_priv->snoop_index < 0) {
482 ret = ERR_PTR(mad_snoop_priv->snoop_index);
486 atomic_set(&mad_snoop_priv->refcount, 1);
487 return &mad_snoop_priv->agent;
490 kfree(mad_snoop_priv);
502 static inline void deref_snoop_agent(struct ib_mad_snoop_private *mad_snoop_priv)
504 if (atomic_dec_and_test(&mad_snoop_priv->refcount))
505 complete(&mad_snoop_priv->comp);
539 static void unregister_mad_snoop(struct ib_mad_snoop_private *mad_snoop_priv)
544 qp_info = mad_snoop_priv->qp_info;
546 qp_info->snoop_table[mad_snoop_priv->snoop_index] = NULL;
550 deref_snoop_agent(mad_snoop_priv);
551 wait_for_completion(&mad_snoop_priv->comp);
553 kfree(mad_snoop_priv);
562 struct ib_mad_snoop_private *mad_snoop_priv;
571 mad_snoop_priv = container_of(mad_agent,
574 unregister_mad_snoop(mad_snoop_priv);
598 struct ib_mad_snoop_private *mad_snoop_priv;
604 mad_snoop_priv = qp_info->snoop_table[i];
605 if (!mad_snoop_priv ||
606 !(mad_snoop_priv->mad_snoop_flags & mad_snoop_flags))
609 atomic_inc(&mad_snoop_priv->refcount);
611 mad_snoop_priv->agent.snoop_handler(&mad_snoop_priv->agent,
613 deref_snoop_agent(mad_snoop_priv);
623 struct ib_mad_snoop_private *mad_snoop_priv;
629 mad_snoop_priv = qp_info->snoop_table[i];
630 if (!mad_snoop_priv ||
631 !(mad_snoop_priv->mad_snoop_flags & mad_snoop_flags))
634 atomic_inc(&mad_snoop_priv->refcount);
636 mad_snoop_priv->agent.recv_handler(&mad_snoop_priv->agent,
638 deref_snoop_agent(mad_snoop_priv);