• 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:agent

46 	struct ib_mad_agent_private *agent;
85 void ib_cancel_rmpp_recvs(struct ib_mad_agent_private *agent)
90 spin_lock_irqsave(&agent->lock, flags);
91 list_for_each_entry(rmpp_recv, &agent->rmpp_list, list) {
95 spin_unlock_irqrestore(&agent->lock, flags);
97 flush_workqueue(agent->qp_info->port_priv->wq);
100 &agent->rmpp_list, list) {
135 msg = ib_create_send_mad(&rmpp_recv->agent->agent, recv_wc->wc->src_qp,
148 static struct ib_mad_send_buf *alloc_response_msg(struct ib_mad_agent *agent,
155 ah = ib_create_ah_from_wc(agent->qp->pd, recv_wc->wc,
156 recv_wc->recv_buf.grh, agent->port_num);
161 msg = ib_create_send_mad(agent, recv_wc->wc->src_qp,
172 static void ack_ds_ack(struct ib_mad_agent_private *agent,
179 msg = alloc_response_msg(&agent->agent, recv_wc);
207 static void nack_recv(struct ib_mad_agent_private *agent,
214 msg = alloc_response_msg(&agent->agent, recv_wc);
243 spin_lock_irqsave(&rmpp_recv->agent->lock, flags);
245 spin_unlock_irqrestore(&rmpp_recv->agent->lock, flags);
250 spin_unlock_irqrestore(&rmpp_recv->agent->lock, flags);
253 nack_recv(rmpp_recv->agent, rmpp_wc, IB_MGMT_RMPP_STATUS_T2L);
264 spin_lock_irqsave(&rmpp_recv->agent->lock, flags);
266 spin_unlock_irqrestore(&rmpp_recv->agent->lock, flags);
271 create_rmpp_recv(struct ib_mad_agent_private *agent,
281 rmpp_recv->ah = ib_create_ah_from_wc(agent->agent.qp->pd,
284 agent->agent.port_num);
288 rmpp_recv->agent = agent;
317 find_rmpp_recv(struct ib_mad_agent_private *agent,
323 list_for_each_entry(rmpp_recv, &agent->rmpp_list, list) {
336 acquire_rmpp_recv(struct ib_mad_agent_private *agent,
342 spin_lock_irqsave(&agent->lock, flags);
343 rmpp_recv = find_rmpp_recv(agent, mad_recv_wc);
346 spin_unlock_irqrestore(&agent->lock, flags);
351 insert_rmpp_recv(struct ib_mad_agent_private *agent,
356 cur_rmpp_recv = find_rmpp_recv(agent, rmpp_recv->rmpp_wc);
358 list_add_tail(&rmpp_recv->list, &agent->rmpp_list);
388 static inline int window_size(struct ib_mad_agent_private *agent)
390 return max(agent->qp_info->recv_queue.max_active >> 3, 1);
448 queue_delayed_work(rmpp_recv->agent->qp_info->port_priv->wq,
454 continue_rmpp(struct ib_mad_agent_private *agent,
463 rmpp_recv = acquire_rmpp_recv(agent, mad_recv_wc);
495 rmpp_recv->newwin += window_size(agent);
513 start_rmpp(struct ib_mad_agent_private *agent,
519 rmpp_recv = create_rmpp_recv(agent, mad_recv_wc);
525 spin_lock_irqsave(&agent->lock, flags);
526 if (insert_rmpp_recv(agent, rmpp_recv)) {
527 spin_unlock_irqrestore(&agent->lock, flags);
530 return continue_rmpp(agent, mad_recv_wc);
536 spin_unlock_irqrestore(&agent->lock, flags);
539 spin_unlock_irqrestore(&agent->lock, flags);
541 queue_delayed_work(agent->qp_info->port_priv->wq,
544 rmpp_recv->newwin += window_size(agent);
582 static void abort_send(struct ib_mad_agent_private *agent,
589 spin_lock_irqsave(&agent->lock, flags);
590 mad_send_wr = ib_find_send_mad(agent, mad_recv_wc);
599 spin_unlock_irqrestore(&agent->lock, flags);
607 spin_unlock_irqrestore(&agent->lock, flags);
622 static void process_ds_ack(struct ib_mad_agent_private *agent,
627 rmpp_recv = find_rmpp_recv(agent, mad_recv_wc);
632 static void process_rmpp_ack(struct ib_mad_agent_private *agent,
642 abort_send(agent, mad_recv_wc, IB_MGMT_RMPP_STATUS_BAD_STATUS);
643 nack_recv(agent, mad_recv_wc, IB_MGMT_RMPP_STATUS_BAD_STATUS);
650 abort_send(agent, mad_recv_wc, IB_MGMT_RMPP_STATUS_W2S);
651 nack_recv(agent, mad_recv_wc, IB_MGMT_RMPP_STATUS_W2S);
655 spin_lock_irqsave(&agent->lock, flags);
656 mad_send_wr = ib_find_send_mad(agent, mad_recv_wc);
659 process_ds_ack(agent, mad_recv_wc, newwin);
665 spin_unlock_irqrestore(&agent->lock, flags);
666 ack_ds_ack(agent, mad_recv_wc);
676 spin_unlock_irqrestore(&agent->lock, flags);
677 abort_send(agent, mad_recv_wc, IB_MGMT_RMPP_STATUS_S2B);
678 nack_recv(agent, mad_recv_wc, IB_MGMT_RMPP_STATUS_S2B);
696 spin_unlock_irqrestore(&agent->lock, flags);
707 spin_unlock_irqrestore(&agent->lock, flags);
708 ack_ds_ack(agent, mad_recv_wc);
723 spin_unlock_irqrestore(&agent->lock, flags);
727 process_rmpp_data(struct ib_mad_agent_private *agent,
745 return start_rmpp(agent, mad_recv_wc);
751 return continue_rmpp(agent, mad_recv_wc);
754 nack_recv(agent, mad_recv_wc, rmpp_status);
759 static void process_rmpp_stop(struct ib_mad_agent_private *agent,
767 abort_send(agent, mad_recv_wc, IB_MGMT_RMPP_STATUS_BAD_STATUS);
768 nack_recv(agent, mad_recv_wc, IB_MGMT_RMPP_STATUS_BAD_STATUS);
770 abort_send(agent, mad_recv_wc, rmpp_mad->rmpp_hdr.rmpp_status);
773 static void process_rmpp_abort(struct ib_mad_agent_private *agent,
782 abort_send(agent, mad_recv_wc, IB_MGMT_RMPP_STATUS_BAD_STATUS);
783 nack_recv(agent, mad_recv_wc, IB_MGMT_RMPP_STATUS_BAD_STATUS);
785 abort_send(agent, mad_recv_wc, rmpp_mad->rmpp_hdr.rmpp_status);
789 ib_process_rmpp_recv_wc(struct ib_mad_agent_private *agent,
799 abort_send(agent, mad_recv_wc, IB_MGMT_RMPP_STATUS_UNV);
800 nack_recv(agent, mad_recv_wc, IB_MGMT_RMPP_STATUS_UNV);
806 return process_rmpp_data(agent, mad_recv_wc);
808 process_rmpp_ack(agent, mad_recv_wc);
811 process_rmpp_stop(agent, mad_recv_wc);
814 process_rmpp_abort(agent, mad_recv_wc);
817 abort_send(agent, mad_recv_wc, IB_MGMT_RMPP_STATUS_BADT);
818 nack_recv(agent, mad_recv_wc, IB_MGMT_RMPP_STATUS_BADT);
828 struct ib_mad_agent_private *agent = mad_send_wr->mad_agent_priv;
838 spin_lock_irqsave(&agent->lock, flags);
839 list_for_each_entry(rmpp_recv, &agent->rmpp_list, list) {
854 spin_unlock_irqrestore(&agent->lock, flags);