smcd              196 drivers/s390/net/ism.h 	struct smcd_dev *smcd;
smcd              194 drivers/s390/net/ism_drv.c 	ism->smcd->local_gid = cmd.response.gid;
smcd              199 drivers/s390/net/ism_drv.c static int ism_query_rgid(struct smcd_dev *smcd, u64 rgid, u32 vid_valid,
smcd              202 drivers/s390/net/ism_drv.c 	struct ism_dev *ism = smcd->priv;
smcd              251 drivers/s390/net/ism_drv.c static int ism_register_dmb(struct smcd_dev *smcd, struct smcd_dmb *dmb)
smcd              253 drivers/s390/net/ism_drv.c 	struct ism_dev *ism = smcd->priv;
smcd              282 drivers/s390/net/ism_drv.c static int ism_unregister_dmb(struct smcd_dev *smcd, struct smcd_dmb *dmb)
smcd              284 drivers/s390/net/ism_drv.c 	struct ism_dev *ism = smcd->priv;
smcd              303 drivers/s390/net/ism_drv.c static int ism_add_vlan_id(struct smcd_dev *smcd, u64 vlan_id)
smcd              305 drivers/s390/net/ism_drv.c 	struct ism_dev *ism = smcd->priv;
smcd              317 drivers/s390/net/ism_drv.c static int ism_del_vlan_id(struct smcd_dev *smcd, u64 vlan_id)
smcd              319 drivers/s390/net/ism_drv.c 	struct ism_dev *ism = smcd->priv;
smcd              331 drivers/s390/net/ism_drv.c static int ism_set_vlan_required(struct smcd_dev *smcd)
smcd              333 drivers/s390/net/ism_drv.c 	return ism_cmd_simple(smcd->priv, ISM_SET_VLAN);
smcd              336 drivers/s390/net/ism_drv.c static int ism_reset_vlan_required(struct smcd_dev *smcd)
smcd              338 drivers/s390/net/ism_drv.c 	return ism_cmd_simple(smcd->priv, ISM_RESET_VLAN);
smcd              341 drivers/s390/net/ism_drv.c static int ism_signal_ieq(struct smcd_dev *smcd, u64 rgid, u32 trigger_irq,
smcd              344 drivers/s390/net/ism_drv.c 	struct ism_dev *ism = smcd->priv;
smcd              365 drivers/s390/net/ism_drv.c static int ism_move(struct smcd_dev *smcd, u64 dmb_tok, unsigned int idx,
smcd              368 drivers/s390/net/ism_drv.c 	struct ism_dev *ism = smcd->priv;
smcd              400 drivers/s390/net/ism_drv.c 		smcd_handle_event(ism->smcd, entry);
smcd              424 drivers/s390/net/ism_drv.c 		smcd_handle_irq(ism->smcd, bit + ISM_DMB_BIT_OFFSET);
smcd              474 drivers/s390/net/ism_drv.c 	ret = smcd_register_dev(ism->smcd);
smcd              522 drivers/s390/net/ism_drv.c 	ism->smcd = smcd_alloc_dev(&pdev->dev, dev_name(&pdev->dev), &ism_ops,
smcd              524 drivers/s390/net/ism_drv.c 	if (!ism->smcd) {
smcd              529 drivers/s390/net/ism_drv.c 	ism->smcd->priv = ism;
smcd              537 drivers/s390/net/ism_drv.c 	smcd_free_dev(ism->smcd);
smcd              552 drivers/s390/net/ism_drv.c 	smcd_unregister_dev(ism->smcd);
smcd              565 drivers/s390/net/ism_drv.c 	smcd_free_dev(ism->smcd);
smcd               82 include/net/smc.h int smcd_register_dev(struct smcd_dev *smcd);
smcd               83 include/net/smc.h void smcd_unregister_dev(struct smcd_dev *smcd);
smcd               84 include/net/smc.h void smcd_free_dev(struct smcd_dev *smcd);
smcd             1166 net/smc/af_smc.c 			    new_smc->conn.lgr->smcd)) {
smcd              489 net/smc/smc_clc.c 		cclc.gid = conn->lgr->smcd->local_gid;
smcd              561 net/smc/smc_clc.c 		aclc.gid = conn->lgr->smcd->local_gid;
smcd              236 net/smc/smc_core.c 		lgr->smcd = ini->ism_dev;
smcd              391 net/smc/smc_core.c 		smc_ism_unregister_dmb(lgr->smcd, buf_desc);
smcd              439 net/smc/smc_core.c 		smc_ism_put_vlan(lgr->smcd, lgr->vlan_id);
smcd              440 net/smc/smc_core.c 		put_device(&lgr->smcd->dev);
smcd              524 net/smc/smc_core.c 		if (lgr->is_smcd && lgr->smcd == dev &&
smcd              608 net/smc/smc_core.c 	return lgr->peer_gid == peer_gid && lgr->smcd == smcismdev;
smcd              226 net/smc/smc_core.h 			struct smcd_dev		*smcd;
smcd              176 net/smc/smc_diag.c 			.my_gid = conn->lgr->smcd->local_gid,
smcd               24 net/smc/smc_ism.c int smc_ism_cantalk(u64 peer_gid, unsigned short vlan_id, struct smcd_dev *smcd)
smcd               26 net/smc/smc_ism.c 	return smcd->ops->query_remote_gid(smcd, peer_gid, vlan_id ? 1 : 0,
smcd               30 net/smc/smc_ism.c int smc_ism_write(struct smcd_dev *smcd, const struct smc_ism_position *pos,
smcd               35 net/smc/smc_ism.c 	rc = smcd->ops->move_data(smcd, pos->token, pos->index, pos->signal,
smcd               46 net/smc/smc_ism.c 	spin_lock_irqsave(&conn->lgr->smcd->lock, flags);
smcd               47 net/smc/smc_ism.c 	conn->lgr->smcd->conn[conn->rmb_desc->sba_idx] = conn;
smcd               48 net/smc/smc_ism.c 	spin_unlock_irqrestore(&conn->lgr->smcd->lock, flags);
smcd               59 net/smc/smc_ism.c 	spin_lock_irqsave(&conn->lgr->smcd->lock, flags);
smcd               60 net/smc/smc_ism.c 	conn->lgr->smcd->conn[conn->rmb_desc->sba_idx] = NULL;
smcd               61 net/smc/smc_ism.c 	spin_unlock_irqrestore(&conn->lgr->smcd->lock, flags);
smcd               68 net/smc/smc_ism.c int smc_ism_get_vlan(struct smcd_dev *smcd, unsigned short vlanid)
smcd               85 net/smc/smc_ism.c 	spin_lock_irqsave(&smcd->lock, flags);
smcd               86 net/smc/smc_ism.c 	list_for_each_entry(vlan, &smcd->vlan, list) {
smcd               97 net/smc/smc_ism.c 	if (smcd->ops->add_vlan_id(smcd, vlanid)) {
smcd              102 net/smc/smc_ism.c 	list_add_tail(&new_vlan->list, &smcd->vlan);
smcd              104 net/smc/smc_ism.c 	spin_unlock_irqrestore(&smcd->lock, flags);
smcd              112 net/smc/smc_ism.c int smc_ism_put_vlan(struct smcd_dev *smcd, unsigned short vlanid)
smcd              122 net/smc/smc_ism.c 	spin_lock_irqsave(&smcd->lock, flags);
smcd              123 net/smc/smc_ism.c 	list_for_each_entry(vlan, &smcd->vlan, list) {
smcd              137 net/smc/smc_ism.c 	if (smcd->ops->del_vlan_id(smcd, vlanid))
smcd              142 net/smc/smc_ism.c 	spin_unlock_irqrestore(&smcd->lock, flags);
smcd              146 net/smc/smc_ism.c int smc_ism_unregister_dmb(struct smcd_dev *smcd, struct smc_buf_desc *dmb_desc)
smcd              156 net/smc/smc_ism.c 	return smcd->ops->unregister_dmb(smcd, &dmb);
smcd              170 net/smc/smc_ism.c 	rc = lgr->smcd->ops->register_dmb(lgr->smcd, &dmb);
smcd              183 net/smc/smc_ism.c 	struct smcd_dev *smcd;
smcd              209 net/smc/smc_ism.c 		smc_smcd_terminate(wrk->smcd, wrk->event.tok, ev_info.vlan_id);
smcd              214 net/smc/smc_ism.c 			wrk->smcd->ops->signal_event(wrk->smcd,
smcd              232 net/smc/smc_ism.c 	rc = lgr->smcd->ops->signal_event(lgr->smcd, lgr->peer_gid,
smcd              247 net/smc/smc_ism.c 		smc_smcd_terminate(wrk->smcd, wrk->event.tok, VLAN_VID_MASK);
smcd              260 net/smc/smc_ism.c 	struct smcd_dev *smcd = container_of(dev, struct smcd_dev, dev);
smcd              262 net/smc/smc_ism.c 	kfree(smcd->conn);
smcd              263 net/smc/smc_ism.c 	kfree(smcd);
smcd              269 net/smc/smc_ism.c 	struct smcd_dev *smcd;
smcd              271 net/smc/smc_ism.c 	smcd = kzalloc(sizeof(*smcd), GFP_KERNEL);
smcd              272 net/smc/smc_ism.c 	if (!smcd)
smcd              274 net/smc/smc_ism.c 	smcd->conn = kcalloc(max_dmbs, sizeof(struct smc_connection *),
smcd              276 net/smc/smc_ism.c 	if (!smcd->conn) {
smcd              277 net/smc/smc_ism.c 		kfree(smcd);
smcd              281 net/smc/smc_ism.c 	smcd->dev.parent = parent;
smcd              282 net/smc/smc_ism.c 	smcd->dev.release = smcd_release;
smcd              283 net/smc/smc_ism.c 	device_initialize(&smcd->dev);
smcd              284 net/smc/smc_ism.c 	dev_set_name(&smcd->dev, name);
smcd              285 net/smc/smc_ism.c 	smcd->ops = ops;
smcd              286 net/smc/smc_ism.c 	smc_pnetid_by_dev_port(parent, 0, smcd->pnetid);
smcd              288 net/smc/smc_ism.c 	spin_lock_init(&smcd->lock);
smcd              289 net/smc/smc_ism.c 	INIT_LIST_HEAD(&smcd->vlan);
smcd              290 net/smc/smc_ism.c 	smcd->event_wq = alloc_ordered_workqueue("ism_evt_wq-%s)",
smcd              292 net/smc/smc_ism.c 	if (!smcd->event_wq) {
smcd              293 net/smc/smc_ism.c 		kfree(smcd->conn);
smcd              294 net/smc/smc_ism.c 		kfree(smcd);
smcd              297 net/smc/smc_ism.c 	return smcd;
smcd              301 net/smc/smc_ism.c int smcd_register_dev(struct smcd_dev *smcd)
smcd              304 net/smc/smc_ism.c 	list_add_tail(&smcd->list, &smcd_dev_list.list);
smcd              307 net/smc/smc_ism.c 	return device_add(&smcd->dev);
smcd              311 net/smc/smc_ism.c void smcd_unregister_dev(struct smcd_dev *smcd)
smcd              314 net/smc/smc_ism.c 	list_del(&smcd->list);
smcd              316 net/smc/smc_ism.c 	flush_workqueue(smcd->event_wq);
smcd              317 net/smc/smc_ism.c 	destroy_workqueue(smcd->event_wq);
smcd              318 net/smc/smc_ism.c 	smc_smcd_terminate(smcd, 0, VLAN_VID_MASK);
smcd              320 net/smc/smc_ism.c 	device_del(&smcd->dev);
smcd              324 net/smc/smc_ism.c void smcd_free_dev(struct smcd_dev *smcd)
smcd              326 net/smc/smc_ism.c 	put_device(&smcd->dev);
smcd              341 net/smc/smc_ism.c void smcd_handle_event(struct smcd_dev *smcd, struct smcd_event *event)
smcd              350 net/smc/smc_ism.c 	wrk->smcd = smcd;
smcd              352 net/smc/smc_ism.c 	queue_work(smcd->event_wq, &wrk->work);
smcd              363 net/smc/smc_ism.c void smcd_handle_irq(struct smcd_dev *smcd, unsigned int dmbno)
smcd              368 net/smc/smc_ism.c 	spin_lock_irqsave(&smcd->lock, flags);
smcd              369 net/smc/smc_ism.c 	conn = smcd->conn[dmbno];
smcd              372 net/smc/smc_ism.c 	spin_unlock_irqrestore(&smcd->lock, flags);
smcd              260 net/smc/smc_tx.c 	rc = smc_ism_write(conn->lgr->smcd, &pos, data, len);