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;
491 struct zfcp_port *port = container_of(dev, struct zfcp_port, dev);
493 zfcp_ccw_adapter_put(port->adapter);
494 kfree(port);
498 * zfcp_port_enqueue - enqueue port to port list of adapter
499 * @adapter: adapter where remote port is added
500 * @wwpn: WWPN of the remote port to be enqueued
501 * @status: initial status for the port
502 * @d_id: destination id of the remote port to be enqueued
503 * Returns: pointer to enqueued port on success, ERR_PTR on error
505 * All port internal structures are set up and the sysfs entry is generated.
512 struct zfcp_port *port;
517 port = zfcp_get_port_by_wwpn(adapter, wwpn);
518 if (port) {
519 put_device(&port->dev);
524 port = kzalloc(sizeof(struct zfcp_port), GFP_KERNEL);
525 if (!port)
528 rwlock_init(&port->unit_list_lock);
529 INIT_LIST_HEAD(&port->unit_list);
530 atomic_set(&port->units, 0);
532 INIT_WORK(&port->gid_pn_work, zfcp_fc_port_did_lookup);
533 INIT_WORK(&port->test_link_work, zfcp_fc_link_test_work);
534 INIT_WORK(&port->rport_work, zfcp_scsi_rport_work);
536 port->adapter = adapter;
537 port->d_id = d_id;
538 port->wwpn = wwpn;
539 port->rport_task = RPORT_NONE;
540 port->dev.parent = &adapter->ccw_device->dev;
541 port->dev.groups = zfcp_port_attr_groups;
542 port->dev.release = zfcp_port_release;
544 port->erp_action.adapter = adapter;
545 port->erp_action.port = port;
547 if (dev_set_name(&port->dev, "0x%016llx", (unsigned long long)wwpn)) {
548 kfree(port);
553 if (device_register(&port->dev)) {
554 put_device(&port->dev);
559 list_add_tail(&port->list, &adapter->port_list);
562 atomic_or(status | ZFCP_STATUS_COMMON_RUNNING, &port->status);
564 return port;