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()
254 static void smc_lo_get_local_gid(struct smcd_dev *smcd, in smc_lo_get_local_gid() argument
257 struct smc_lo_dev *ldev = smcd->priv; in smc_lo_get_local_gid()
263 static u16 smc_lo_get_chid(struct smcd_dev *smcd) in smc_lo_get_chid() argument
265 return ((struct smc_lo_dev *)smcd->priv)->chid; in smc_lo_get_chid()
268 static struct device *smc_lo_get_dev(struct smcd_dev *smcd) in smc_lo_get_dev() argument
270 return &((struct smc_lo_dev *)smcd->priv)->dev; in smc_lo_get_dev()
294 struct smcd_dev *smcd; in smcd_lo_alloc_dev() local
296 smcd = kzalloc(sizeof(*smcd), GFP_KERNEL); in smcd_lo_alloc_dev()
297 if (!smcd) in smcd_lo_alloc_dev()
300 smcd->conn = kcalloc(max_dmbs, sizeof(struct smc_connection *), in smcd_lo_alloc_dev()
302 if (!smcd->conn) in smcd_lo_alloc_dev()
305 smcd->ops = ops; in smcd_lo_alloc_dev()
307 spin_lock_init(&smcd->lock); in smcd_lo_alloc_dev()
308 spin_lock_init(&smcd->lgr_lock); in smcd_lo_alloc_dev()
309 INIT_LIST_HEAD(&smcd->vlan); in smcd_lo_alloc_dev()
310 INIT_LIST_HEAD(&smcd->lgr_list); in smcd_lo_alloc_dev()
311 init_waitqueue_head(&smcd->lgrs_deleted); in smcd_lo_alloc_dev()
312 return smcd; in smcd_lo_alloc_dev()
315 kfree(smcd); in smcd_lo_alloc_dev()
321 struct smcd_dev *smcd; in smcd_lo_register_dev() local
323 smcd = smcd_lo_alloc_dev(&lo_ops, SMC_LO_MAX_DMBS); in smcd_lo_register_dev()
324 if (!smcd) in smcd_lo_register_dev()
326 ldev->smcd = smcd; in smcd_lo_register_dev()
327 smcd->priv = ldev; in smcd_lo_register_dev()
330 list_add(&smcd->list, &smcd_dev_list.list); in smcd_lo_register_dev()
339 struct smcd_dev *smcd = ldev->smcd; in smcd_lo_unregister_dev() local
343 smcd->going_away = 1; in smcd_lo_unregister_dev()
344 smc_smcd_terminate_all(smcd); in smcd_lo_unregister_dev()
346 list_del_init(&smcd->list); in smcd_lo_unregister_dev()
348 kfree(smcd->conn); in smcd_lo_unregister_dev()
349 kfree(smcd); in smcd_lo_unregister_dev()