ZFCP_DEFINE_ADAPTER_ATTR(in_recovery, "%d\n", atomic_test_mask
                         (ZFCP_STATUS_COMMON_ERP_INUSE, &adapter->status));
 
-/**
- * zfcp_sysfs_port_add_store - add a port to sysfs tree
- * @dev: pointer to belonging device
- * @buf: pointer to input buffer
- * @count: number of bytes in buffer
- *
- * Store function of the "port_add" attribute of an adapter.
- */
-static ssize_t
-zfcp_sysfs_port_add_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
-{
-       wwn_t wwpn;
-       char *endp;
-       struct zfcp_adapter *adapter;
-       struct zfcp_port *port;
-       int retval = -EINVAL;
-
-       down(&zfcp_data.config_sema);
-
-       adapter = dev_get_drvdata(dev);
-       if (atomic_test_mask(ZFCP_STATUS_COMMON_REMOVE, &adapter->status)) {
-               retval = -EBUSY;
-               goto out;
-       }
-
-       wwpn = simple_strtoull(buf, &endp, 0);
-       if ((endp + 1) < (buf + count))
-               goto out;
-
-       port = zfcp_port_enqueue(adapter, wwpn, 0, 0);
-       if (!port)
-               goto out;
-
-       retval = 0;
-
-       zfcp_erp_port_reopen(port, 0, 91, NULL);
-       zfcp_erp_wait(port->adapter);
-       zfcp_port_put(port);
- out:
-       up(&zfcp_data.config_sema);
-       return retval ? retval : (ssize_t) count;
-}
-
-static DEVICE_ATTR(port_add, S_IWUSR, NULL, zfcp_sysfs_port_add_store);
-
 /**
  * zfcp_sysfs_port_rescan - trigger manual port rescan
  * @dev: pointer to belonging device
        &dev_attr_failed.attr,
        &dev_attr_in_recovery.attr,
        &dev_attr_port_remove.attr,
-       &dev_attr_port_add.attr,
        &dev_attr_port_rescan.attr,
        &dev_attr_peer_wwnn.attr,
        &dev_attr_peer_wwpn.attr,