Lines Matching refs:dibs
29 static u16 dibs_lo_get_fabric_id(struct dibs_dev *dibs) in dibs_lo_get_fabric_id() argument
34 static int dibs_lo_query_rgid(struct dibs_dev *dibs, const uuid_t *rgid, in dibs_lo_query_rgid() argument
38 if (!uuid_equal(rgid, &dibs->gid)) in dibs_lo_query_rgid()
48 static int dibs_lo_register_dmb(struct dibs_dev *dibs, struct dibs_dmb *dmb, in dibs_lo_register_dmb() argument
57 ldev = dibs->drv_priv; in dibs_lo_register_dmb()
108 spin_lock_irqsave(&dibs->lock, flags); in dibs_lo_register_dmb()
109 dibs->dmb_clientid_arr[sba_idx] = client->id; in dibs_lo_register_dmb()
110 spin_unlock_irqrestore(&dibs->lock, flags); in dibs_lo_register_dmb()
137 static int dibs_lo_unregister_dmb(struct dibs_dev *dibs, struct dibs_dmb *dmb) in dibs_lo_unregister_dmb() argument
143 ldev = dibs->drv_priv; in dibs_lo_unregister_dmb()
158 spin_lock_irqsave(&dibs->lock, flags); in dibs_lo_unregister_dmb()
159 dibs->dmb_clientid_arr[dmb_node->sba_idx] = NO_DIBS_CLIENT; in dibs_lo_unregister_dmb()
160 spin_unlock_irqrestore(&dibs->lock, flags); in dibs_lo_unregister_dmb()
167 static int dibs_lo_support_dmb_nocopy(struct dibs_dev *dibs) in dibs_lo_support_dmb_nocopy() argument
172 static int dibs_lo_attach_dmb(struct dibs_dev *dibs, struct dibs_dmb *dmb) in dibs_lo_attach_dmb() argument
177 ldev = dibs->drv_priv; in dibs_lo_attach_dmb()
208 static int dibs_lo_detach_dmb(struct dibs_dev *dibs, u64 token) in dibs_lo_detach_dmb() argument
213 ldev = dibs->drv_priv; in dibs_lo_detach_dmb()
234 static int dibs_lo_move_data(struct dibs_dev *dibs, u64 dmb_tok, in dibs_lo_move_data() argument
244 ldev = dibs->drv_priv; in dibs_lo_move_data()
264 spin_lock(&dibs->lock); in dibs_lo_move_data()
265 client_id = dibs->dmb_clientid_arr[sba_idx]; in dibs_lo_move_data()
267 if (likely(client_id != NO_DIBS_CLIENT && dibs->subs[client_id])) in dibs_lo_move_data()
268 dibs->subs[client_id]->ops->handle_irq(dibs, sba_idx, s_mask); in dibs_lo_move_data()
269 spin_unlock(&dibs->lock); in dibs_lo_move_data()
303 struct dibs_dev *dibs; in dibs_lo_dev_probe() local
310 dibs = dibs_dev_alloc(); in dibs_lo_dev_probe()
311 if (!dibs) { in dibs_lo_dev_probe()
316 ldev->dibs = dibs; in dibs_lo_dev_probe()
317 dibs->drv_priv = ldev; in dibs_lo_dev_probe()
319 uuid_gen(&dibs->gid); in dibs_lo_dev_probe()
320 dibs->ops = &dibs_lo_ops; in dibs_lo_dev_probe()
322 dibs->dev.parent = NULL; in dibs_lo_dev_probe()
323 dev_set_name(&dibs->dev, "%s", dibs_lo_dev_name); in dibs_lo_dev_probe()
325 ret = dibs_dev_add(dibs); in dibs_lo_dev_probe()
332 kfree(dibs->dmb_clientid_arr); in dibs_lo_dev_probe()
334 put_device(&dibs->dev); in dibs_lo_dev_probe()
345 dibs_dev_del(lo_dev->dibs); in dibs_lo_dev_remove()
348 put_device(&lo_dev->dibs->dev); in dibs_lo_dev_remove()