• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/infiniband/hw/ehca/

Lines Matching refs:shca

88 static void print_error_data(struct ehca_shca *shca, void *data,
103 ehca_err(&shca->ib_device,
112 ehca_err(&shca->ib_device,
118 ehca_err(&shca->ib_device,
120 type, shca->ib_device.name);
124 ehca_err(&shca->ib_device, "Error data is available: %llx.", resource);
125 ehca_err(&shca->ib_device, "EHCA ----- error data begin "
128 ehca_err(&shca->ib_device, "EHCA ----- error data end "
134 int ehca_error_data(struct ehca_shca *shca, void *data,
144 ehca_err(&shca->ib_device, "Cannot allocate rblock memory.");
150 ret = hipz_h_error_data(shca->ipz_hca_handle,
156 ehca_err(&shca->ib_device,
166 print_error_data(shca, data, rblock, length);
168 ehca_err(&shca->ib_device,
178 static void dispatch_qp_event(struct ehca_shca *shca, struct ehca_qp *qp,
187 event.device = &shca->ib_device;
205 static void qp_event_callback(struct ehca_shca *shca, u64 eqe,
221 ehca_error_data(shca, qp, qp->ipz_qp_handle.handle);
223 dispatch_qp_event(shca, qp, fatal && qp->ext_type == EQPT_SRQ ?
232 dispatch_qp_event(shca, qp, IB_EVENT_QP_LAST_WQE_REACHED);
239 static void cq_event_callback(struct ehca_shca *shca,
254 ehca_error_data(shca, cq, cq->ipz_cq_handle.handle);
262 static void parse_identifier(struct ehca_shca *shca, u64 eqe)
268 qp_event_callback(shca, eqe, IB_EVENT_PATH_MIG, 0);
271 qp_event_callback(shca, eqe, IB_EVENT_COMM_EST, 0);
274 qp_event_callback(shca, eqe, IB_EVENT_SQ_DRAINED, 0);
278 qp_event_callback(shca, eqe, IB_EVENT_QP_FATAL, 1);
282 cq_event_callback(shca, eqe);
285 ehca_err(&shca->ib_device, "MRMWPTE error.");
288 ehca_err(&shca->ib_device, "Port event.");
291 ehca_err(&shca->ib_device, "MR access error.");
294 ehca_err(&shca->ib_device, "EQ error.");
297 ehca_err(&shca->ib_device, "P/Q_Key mismatch.");
300 ehca_err(&shca->ib_device, "Sampling complete.");
303 ehca_err(&shca->ib_device, "Unaffiliated access error.");
306 ehca_err(&shca->ib_device, "Path migrating.");
309 ehca_err(&shca->ib_device, "Interface trace stopped.");
312 ehca_info(&shca->ib_device, "First error capture available");
315 qp_event_callback(shca, eqe, IB_EVENT_SRQ_LIMIT_REACHED, 0);
318 ehca_err(&shca->ib_device, "Unknown identifier: %x on %s.",
319 identifier, shca->ib_device.name);
326 static void dispatch_port_event(struct ehca_shca *shca, int port_num,
331 ehca_info(&shca->ib_device, "port %d %s.", port_num, msg);
332 event.device = &shca->ib_device;
338 static void notify_port_conf_change(struct ehca_shca *shca, int port_num)
341 struct ehca_sma_attr *old_attr = &shca->sport[port_num - 1].saved_attr;
343 ehca_query_sma_attr(shca, port_num, &new_attr);
347 dispatch_port_event(shca, port_num, IB_EVENT_SM_CHANGE,
352 dispatch_port_event(shca, port_num, IB_EVENT_LID_CHANGE,
358 dispatch_port_event(shca, port_num, IB_EVENT_PKEY_CHANGE,
384 static void parse_ec(struct ehca_shca *shca, u64 eqe)
389 struct ehca_sport *sport = &shca->sport[port - 1];
403 dispatch_port_event(shca, port, IB_EVENT_PORT_ACTIVE,
405 ehca_query_sma_attr(shca, port, &sport->saved_attr);
408 dispatch_port_event(shca, port, IB_EVENT_PORT_ERR,
418 ehca_warn(&shca->ib_device, "disruptive port "
422 dispatch_port_event(shca, port, IB_EVENT_PORT_ERR,
426 dispatch_port_event(shca, port, IB_EVENT_PORT_ACTIVE,
428 ehca_query_sma_attr(shca, port,
431 notify_port_conf_change(shca, port);
434 ehca_err(&shca->ib_device, "Adapter malfunction.");
437 ehca_err(&shca->ib_device, "Traced stopped.");
442 dispatch_port_event(shca, port,
446 ehca_warn(&shca->ib_device, "Unknown util async "
450 ehca_err(&shca->ib_device, "Unknown event code: %x on %s.",
451 ec, shca->ib_device.name);
471 struct ehca_shca *shca = (struct ehca_shca*)dev_id;
473 tasklet_hi_schedule(&shca->neq.interrupt_task);
480 struct ehca_shca *shca = (struct ehca_shca*)data;
484 eqe = ehca_poll_eq(shca, &shca->neq);
488 parse_ec(shca, eqe->entry);
490 eqe = ehca_poll_eq(shca, &shca->neq);
493 ret = hipz_h_reset_event(shca->ipz_hca_handle,
494 shca->neq.ipz_eq_handle, 0xFFFFFFFFFFFFFFFFL);
497 ehca_err(&shca->ib_device, "Can't clear notification events.");
504 struct ehca_shca *shca = (struct ehca_shca*)dev_id;
506 tasklet_hi_schedule(&shca->eq.interrupt_task);
512 static inline void process_eqe(struct ehca_shca *shca, struct ehca_eqe *eqe)
519 ehca_dbg(&shca->ib_device, "eqe_value=%llx", eqe_value);
521 ehca_dbg(&shca->ib_device, "Got completion event");
529 ehca_err(&shca->ib_device,
543 ehca_dbg(&shca->ib_device, "Got non completion event");
544 parse_identifier(shca, eqe_value);
548 void ehca_process_eq(struct ehca_shca *shca, int is_irq)
550 struct ehca_eq *eq = &shca->eq;
563 shca->ipz_hca_handle, eq->ist);
568 ehca_dbg(&shca->ib_device, "int_state=%x query_cnt=%x",
576 eqe_cache[eqe_cnt].eqe = ehca_poll_eq(shca, eq);
588 ehca_err(&shca->ib_device,
599 ehca_dbg(&shca->ib_device,
605 ehca_err(&shca->ib_device,
607 ehca_dbg(&shca->ib_device, "deadman found %x eqe", eqe_cnt);
610 ehca_dbg(&shca->ib_device, "too many eqes for one irq event");
618 eq_empty = (!ipz_eqit_eq_peek_valid(&shca->eq.ipz_queue));
632 ehca_dbg(&shca->ib_device, "Got non completion event");
633 parse_identifier(shca, eq->eqe_cache[i].eqe->entry);
640 eqe = ehca_poll_eq(shca, &shca->eq);
643 process_eqe(shca, eqe);