cm_dev
if (!cm_dev->going_down)
read_lock(&cm_id_priv->av.port->cm_dev->mad_agent_lock);
read_unlock(&cm_id_priv->av.port->cm_dev->mad_agent_lock);
cm_ack_timeout(cm_id_priv->av.port->cm_dev->ack_delay,
cm_ack_timeout(cm_id_priv->av.port->cm_dev->ack_delay,
struct cm_device *cm_dev;
struct ib_device *ib_dev = work->port->cm_dev->ib_device;
struct ib_device *dev = work->port->cm_dev->ib_device;
cm_alloc_id_priv(work->port->cm_dev->ib_device, NULL, NULL);
work->port->cm_dev->ib_device, work->port->port_num,
err = rdma_query_gid(work->port->cm_dev->ib_device,
cm_id_priv->av.port->cm_dev->ack_delay);
struct cm_device *cm_dev = container_of(kref, struct cm_device, kref);
rdma_for_each_port(cm_dev->ib_device, i)
kfree(cm_dev->port[i - 1]);
kfree(cm_dev);
static void cm_device_put(struct cm_device *cm_dev)
kref_put(&cm_dev->kref, cm_dev_release);
read_lock(&cm_id_priv->av.port->cm_dev->mad_agent_lock);
read_unlock(&cm_id_priv->av.port->cm_dev->mad_agent_lock);
if (rdma_protocol_roce(work->port->cm_dev->ib_device,
cm_path_set_rec_type(work->port->cm_dev->ib_device,
ret = ib_init_ah_attr_from_wc(work->port->cm_dev->ib_device,
if (rdma_protocol_roce(work->port->cm_dev->ib_device,
cm_alloc_id_priv(work->port->cm_dev->ib_device, NULL, NULL);
struct cm_device *cm_dev;
cm_dev = ib_get_client_data(cm_id->device, &cm_client);
if (!cm_dev)
if (!cm_dev->going_down) {
if (!port->cm_dev->going_down)
struct cm_device *cm_dev = ib_get_client_data(ibdev, &cm_client);
if (WARN_ON(!cm_dev))
&cm_dev->port[port_num - 1]
struct cm_device *cm_dev;
cm_dev = kzalloc_flex(*cm_dev, port, ib_device->phys_port_cnt);
if (!cm_dev)
kref_init(&cm_dev->kref);
rwlock_init(&cm_dev->mad_agent_lock);
cm_dev->ib_device = ib_device;
cm_dev->ack_delay = ib_device->attrs.local_ca_ack_delay;
cm_dev->going_down = 0;
ib_set_client_data(ib_device, &cm_client, cm_dev);
cm_dev->port[i-1] = port;
port->cm_dev = cm_dev;
list_add_tail(&cm_dev->list, &cm.device_list);
port = cm_dev->port[i-1];
cm_device_put(cm_dev);
struct cm_device *cm_dev = client_data;
list_del(&cm_dev->list);
cm_dev->going_down = 1;
port = cm_dev->port[i-1];
write_lock(&cm_dev->mad_agent_lock);
write_unlock(&cm_dev->mad_agent_lock);
cm_device_put(cm_dev);
cm_device_put(old_port->cm_dev);
kref_get(&port->cm_dev->kref);
return ib_init_ah_attr_from_wc(port->cm_dev->ib_device,
struct cm_device *cm_dev;
list_for_each_entry(cm_dev, &cm.device_list, list) {
if (cm_dev->ib_device == attr->device) {
port = cm_dev->port[attr->port_num - 1];
list_for_each_entry(cm_dev, &cm.device_list, list) {
attr = rdma_find_gid(cm_dev->ib_device,
port = cm_dev->port[attr->port_num - 1];
struct cm_device *cm_dev;
cm_dev = port->cm_dev;
ret = ib_find_cached_pkey(cm_dev->ib_device, port->port_num,
ret = ib_init_ah_attr_from_path(cm_dev->ib_device, port->port_num, path,
struct cm_device *cm_dev;
cm_dev = ib_get_client_data(cm_id_priv->id.device, &cm_client);
if (!cm_dev)
struct cm_dev *cm;
struct cm_dev *cm;
struct cm_dev *cm;
struct cm_dev *cm;
struct cm_dev *cm;
struct cm_dev *cmdev; /* associated CM device object */
struct cm_dev *cm;
struct cm_dev *cm;
struct cm_dev *cmdev;
struct cm_dev *cm;
struct cm_dev *cm;
static int riocm_post_send(struct cm_dev *cm, struct rio_dev *rdev,
static void *riocm_rx_get_msg(struct cm_dev *cm)
static void riocm_rx_fill(struct cm_dev *cm, int nent)
static void riocm_rx_free(struct cm_dev *cm)
static int riocm_req_handler(struct cm_dev *cm, void *req_data)
static void rio_cm_handler(struct cm_dev *cm, void *data)
static int rio_rx_data_handler(struct cm_dev *cm, void *buf)
struct cm_dev *cm = container_of(work, struct cm_dev, rx_work);
struct cm_dev *cm = dev_id;
static void rio_txcq_handler(struct cm_dev *cm, int slot)
struct cm_dev *cm = dev_id;
static int riocm_queue_req(struct cm_dev *cm, struct rio_dev *rdev,
static int riocm_post_send(struct cm_dev *cm, struct rio_dev *rdev,
static int riocm_ch_connect(u16 loc_ch, struct cm_dev *cm,