Lines Matching refs:smcd

42 static int smc_lo_query_rgid(struct smcd_dev *smcd, struct smcd_gid *rgid,  in smc_lo_query_rgid()  argument
45 struct smc_lo_dev *ldev = smcd->priv; in smc_lo_query_rgid()
54 static int smc_lo_register_dmb(struct smcd_dev *smcd, struct smcd_dmb *dmb, in smc_lo_register_dmb() argument
58 struct smc_lo_dev *ldev = smcd->priv; in smc_lo_register_dmb()
132 static int smc_lo_unregister_dmb(struct smcd_dev *smcd, struct smcd_dmb *dmb) in smc_lo_unregister_dmb() argument
135 struct smc_lo_dev *ldev = smcd->priv; in smc_lo_unregister_dmb()
156 static int smc_lo_support_dmb_nocopy(struct smcd_dev *smcd) in smc_lo_support_dmb_nocopy() argument
161 static int smc_lo_attach_dmb(struct smcd_dev *smcd, struct smcd_dmb *dmb) in smc_lo_attach_dmb() argument
164 struct smc_lo_dev *ldev = smcd->priv; in smc_lo_attach_dmb()
195 static int smc_lo_detach_dmb(struct smcd_dev *smcd, u64 token) in smc_lo_detach_dmb() argument
198 struct smc_lo_dev *ldev = smcd->priv; in smc_lo_detach_dmb()
219 static int smc_lo_move_data(struct smcd_dev *smcd, u64 dmb_tok, in smc_lo_move_data() argument
224 struct smc_lo_dev *ldev = smcd->priv; in smc_lo_move_data()
247 conn = smcd->conn[rmb_node->sba_idx]; in smc_lo_move_data()
259 static void smc_lo_get_local_gid(struct smcd_dev *smcd, in smc_lo_get_local_gid() argument
262 struct smc_lo_dev *ldev = smcd->priv; in smc_lo_get_local_gid()
268 static u16 smc_lo_get_chid(struct smcd_dev *smcd) in smc_lo_get_chid() argument
270 return ((struct smc_lo_dev *)smcd->priv)->chid; in smc_lo_get_chid()
273 static struct device *smc_lo_get_dev(struct smcd_dev *smcd) in smc_lo_get_dev() argument
275 return &((struct smc_lo_dev *)smcd->priv)->dev; in smc_lo_get_dev()
300 struct smcd_dev *smcd; in smcd_lo_alloc_dev() local
302 smcd = kzalloc(sizeof(*smcd), GFP_KERNEL); in smcd_lo_alloc_dev()
303 if (!smcd) in smcd_lo_alloc_dev()
306 smcd->conn = kcalloc(max_dmbs, sizeof(struct smc_connection *), in smcd_lo_alloc_dev()
308 if (!smcd->conn) in smcd_lo_alloc_dev()
311 smcd->ops = ops; in smcd_lo_alloc_dev()
313 spin_lock_init(&smcd->lock); in smcd_lo_alloc_dev()
314 spin_lock_init(&smcd->lgr_lock); in smcd_lo_alloc_dev()
315 INIT_LIST_HEAD(&smcd->vlan); in smcd_lo_alloc_dev()
316 INIT_LIST_HEAD(&smcd->lgr_list); in smcd_lo_alloc_dev()
317 init_waitqueue_head(&smcd->lgrs_deleted); in smcd_lo_alloc_dev()
318 return smcd; in smcd_lo_alloc_dev()
321 kfree(smcd); in smcd_lo_alloc_dev()
327 struct smcd_dev *smcd; in smcd_lo_register_dev() local
329 smcd = smcd_lo_alloc_dev(&lo_ops, SMC_LO_MAX_DMBS); in smcd_lo_register_dev()
330 if (!smcd) in smcd_lo_register_dev()
332 ldev->smcd = smcd; in smcd_lo_register_dev()
333 smcd->priv = ldev; in smcd_lo_register_dev()
336 list_add(&smcd->list, &smcd_dev_list.list); in smcd_lo_register_dev()
345 struct smcd_dev *smcd = ldev->smcd; in smcd_lo_unregister_dev() local
349 smcd->going_away = 1; in smcd_lo_unregister_dev()
350 smc_smcd_terminate_all(smcd); in smcd_lo_unregister_dev()
352 list_del_init(&smcd->list); in smcd_lo_unregister_dev()
354 kfree(smcd->conn); in smcd_lo_unregister_dev()
355 kfree(smcd); in smcd_lo_unregister_dev()