Lines Matching refs:port
17 * Heiko Carstens (kernel 2.6 port of the driver)
62 struct zfcp_port *port;
75 port = zfcp_get_port_by_wwpn(adapter, wwpn);
76 if (!port)
78 flush_work(&port->rport_work);
80 zfcp_unit_add(port, lun);
81 put_device(&port->dev);
183 * zfcp_get_port_by_wwpn - find port in port list of adapter by wwpn
184 * @adapter: pointer to adapter to search for port
193 struct zfcp_port *port;
196 list_for_each_entry(port, &adapter->port_list, list)
197 if (port->wwpn == wwpn) {
198 if (!get_device(&port->dev))
199 port = NULL;
201 return port;
470 struct zfcp_port *port = container_of(dev, struct zfcp_port, dev);
472 zfcp_ccw_adapter_put(port->adapter);
473 kfree(port);
477 * zfcp_port_enqueue - enqueue port to port list of adapter
478 * @adapter: adapter where remote port is added
479 * @wwpn: WWPN of the remote port to be enqueued
480 * @status: initial status for the port
481 * @d_id: destination id of the remote port to be enqueued
482 * Returns: pointer to enqueued port on success, ERR_PTR on error
484 * All port internal structures are set up and the sysfs entry is generated.
491 struct zfcp_port *port;
496 port = zfcp_get_port_by_wwpn(adapter, wwpn);
497 if (port) {
498 put_device(&port->dev);
503 port = kzalloc(sizeof(struct zfcp_port), GFP_KERNEL);
504 if (!port)
507 rwlock_init(&port->unit_list_lock);
508 INIT_LIST_HEAD(&port->unit_list);
509 atomic_set(&port->units, 0);
511 INIT_WORK(&port->gid_pn_work, zfcp_fc_port_did_lookup);
512 INIT_WORK(&port->test_link_work, zfcp_fc_link_test_work);
513 INIT_WORK(&port->rport_work, zfcp_scsi_rport_work);
515 port->adapter = adapter;
516 port->d_id = d_id;
517 port->wwpn = wwpn;
518 port->rport_task = RPORT_NONE;
519 port->dev.parent = &adapter->ccw_device->dev;
520 port->dev.groups = zfcp_port_attr_groups;
521 port->dev.release = zfcp_port_release;
523 port->erp_action.adapter = adapter;
524 port->erp_action.port = port;
526 if (dev_set_name(&port->dev, "0x%016llx", (unsigned long long)wwpn)) {
527 kfree(port);
532 if (device_register(&port->dev)) {
533 put_device(&port->dev);
538 list_add_tail(&port->list, &adapter->port_list);
541 atomic_or(status | ZFCP_STATUS_COMMON_RUNNING, &port->status);
543 return port;