ib_event
struct ib_event event;
struct ib_event ibevent = {};
struct ib_event ib_event;
ib_event.device = &srq->rdev->ibdev;
ib_event.element.srq = &srq->ibsrq;
ib_event.event = IB_EVENT_SRQ_LIMIT_REACHED;
ib_event.event = IB_EVENT_SRQ_ERR;
(*srq->ibsrq.event_handler)(&ib_event,
struct ib_event ib_event;
ib_event.device = ibdev;
ib_event.element.qp = qp;
ib_event.event = event;
qp->event_handler(&ib_event, qp->qp_context);
ib_event.element.port_num = port_num;
ib_event.event = event;
ib_dispatch_event(&ib_event);
struct ib_event event = {0};
enum ib_event_type ib_event)
struct ib_event event;
event.event = ib_event;
if (ib_event == IB_EVENT_CQ_ERR)
struct ib_event ibevent;
struct ib_event ibevent;
struct ib_event event;
iser_cq_event_callback(struct ib_event *cause, void *context)
iser_qp_event_callback(struct ib_event *cause, void *context)
struct ib_event *event)
struct ib_event event;
struct ib_event event;
static void pv_qp_event_handler(struct ib_event *event, void *qp_context)
struct ib_event ibev;
struct ib_event ibev;
struct ib_event event;
struct ib_event event;
struct ib_event event;
struct ib_event ibev = {0};
struct ib_event ibev;
struct ib_event event;
struct ib_event event;
struct ib_event event;
struct ib_event event;
struct ib_event event;
struct ib_event record;
struct ib_event event;
struct ib_event event;
struct ib_event event;
struct ib_event ibev;
struct ib_event event;
enum ib_event_type ib_event,
struct ib_event event;
event.event = ib_event;
struct ib_event *event)
struct ib_event event;
struct ib_cm_event *ib_event,
ib_event->private_data, service_id);
hdr = ib_event->private_data;
struct ib_cm_event *ib_event,
if (ib_event->event == IB_CM_REQ_RECEIVED)
ib_event->param.req_rcvd.primary_path);
else if (ib_event->event == IB_CM_SIDR_REQ_RECEIVED)
return cma_save_ip_info(src_addr, dst_addr, ib_event, service_id);
static int cma_save_req_info(const struct ib_cm_event *ib_event,
&ib_event->param.req_rcvd;
&ib_event->param.sidr_req_rcvd;
switch (ib_event->event) {
const struct ib_cm_event *ib_event)
if (ib_event->event == IB_CM_REQ_RECEIVED) {
ib_event->param.req_rcvd.ppath_sgid_index, &sgid, &sgid_attr);
} else if (ib_event->event == IB_CM_SIDR_REQ_RECEIVED) {
ib_event->param.sidr_req_rcvd.sgid_index, &sgid, &sgid_attr);
static if_t cma_get_net_dev(struct ib_cm_event *ib_event,
err = cma_save_ip_info(listen_addr, src_addr, ib_event,
ib_event);
const struct ib_cm_event *ib_event,
if (cma_match_private_data(id_priv, ib_event->private_data)) {
struct ib_cm_event *ib_event,
err = cma_save_req_info(ib_event, &req);
*net_dev = cma_get_net_dev(ib_event, &req);
id_priv = cma_find_listener(bind_list, cm_id, ib_event, &req, *net_dev);
static int cma_ib_handler(struct ib_cm_id *cm_id, struct ib_cm_event *ib_event)
if ((ib_event->event != IB_CM_TIMEWAIT_EXIT &&
(ib_event->event == IB_CM_TIMEWAIT_EXIT &&
switch (ib_event->event) {
event.status = sdp_verify_rep(ib_event->private_data);
cma_set_rep_event_data(&event, &ib_event->param.rep_rcvd,
ib_event->private_data);
event.status = ib_event->param.rej_rcvd.reason;
event.param.conn.private_data = ib_event->private_data;
ib_event->event);
struct ib_cm_event *ib_event,
ib_event->param.req_rcvd.primary_path->service_id;
listen_id->ps, ib_event->param.req_rcvd.qp_type);
listen_id, ib_event, ss_family, service_id))
rt->num_paths = ib_event->param.req_rcvd.alternate_path ? 2 : 1;
rt->path_rec[0] = *ib_event->param.req_rcvd.primary_path;
rt->path_rec[1] = *ib_event->param.req_rcvd.alternate_path;
struct ib_cm_event *ib_event,
listen_id, ib_event, ss_family,
ib_event->param.sidr_req_rcvd.service_id))
static int cma_check_req_qp_type(struct rdma_cm_id *id, struct ib_cm_event *ib_event)
return (((ib_event->event == IB_CM_REQ_RECEIVED) &&
(ib_event->param.req_rcvd.qp_type == id->qp_type)) ||
((ib_event->event == IB_CM_SIDR_REQ_RECEIVED) &&
static int cma_req_handler(struct ib_cm_id *cm_id, struct ib_cm_event *ib_event)
listen_id = cma_id_from_event(cm_id, ib_event, &net_dev);
if (!cma_check_req_qp_type(&listen_id->id, ib_event)) {
if (ib_event->event == IB_CM_SIDR_REQ_RECEIVED) {
conn_id = cma_new_udp_id(&listen_id->id, ib_event, net_dev);
event.param.ud.private_data = (char *)ib_event->private_data + offset;
conn_id = cma_new_conn_id(&listen_id->id, ib_event, net_dev);
cma_set_req_event_data(&event, &ib_event->param.req_rcvd,
ib_event->private_data, offset);
struct ib_cm_event *ib_event)
struct ib_cm_sidr_rep_event_param *rep = &ib_event->param.sidr_rep_rcvd;
switch (ib_event->event) {
event.param.ud.private_data = ib_event->private_data;
event.status = ib_event->param.sidr_rep_rcvd.status;
ib_event->event);
void ib_dispatch_event(struct ib_event *event)
static void qp_event_handler(struct ib_event *event, void *qp_context)
struct ib_event *event)
static void ib_sa_event(struct ib_event_handler *handler, struct ib_event *event)
struct ib_event *event)
void ib_uverbs_cq_event_handler(struct ib_event *event, void *context_ptr)
void ib_uverbs_qp_event_handler(struct ib_event *event, void *context_ptr)
void ib_uverbs_wq_event_handler(struct ib_event *event, void *context_ptr)
void ib_uverbs_srq_event_handler(struct ib_event *event, void *context_ptr)
struct ib_event *event)
void (*event_handler)(struct ib_event *, void *),
static void __ib_shared_qp_event_handler(struct ib_event *event, void *context)
void (*event_handler)(struct ib_event *, void *),
void ib_uverbs_cq_event_handler(struct ib_event *event, void *context_ptr);
void ib_uverbs_qp_event_handler(struct ib_event *event, void *context_ptr);
void ib_uverbs_wq_event_handler(struct ib_event *event, void *context_ptr);
void ib_uverbs_srq_event_handler(struct ib_event *event, void *context_ptr);
struct ib_event *record);
static void ipoib_cm_rx_event_handler(struct ib_event *event, void *ctx)
struct ib_event *record)
sdp_qp_event_handler(struct ib_event *event, void *data)
sdp_rx_cq_event_handler(struct ib_event *event, void *data)
sdp_tx_cq_event_handler(struct ib_event *event, void *data)
void (*event_handler)(struct ib_event *, void *);
void (*event_handler)(struct ib_event *, void *);
void (*event_handler)(struct ib_event *, void *);
void (*event_handler)(struct ib_event *, void *);
void (*event_handler)(struct ib_event *, void *);
void (*event_handler)(struct ib_event *, void *);
void (*event_handler)(struct ib_event *, void *);
void ib_dispatch_event(struct ib_event *event);
void (*event_handler)(struct ib_event *, void *),
void (*handler)(struct ib_event_handler *, struct ib_event *);
void (*event_handler)(struct ib_event *, void *);