zfcp_set_fc_host_attrs(adapter); 
zfcp_fsf_exchange_config_evaluate(struct zfcp_fsf_req *fsf_req, int xchg_ok){	struct fsf_qtcb_bottom_config *bottom;	struct zfcp_adapter *adapter = fsf_req->adapter;	bottom = &fsf_req->qtcb->bottom.config;	ZFCP_LOG_DEBUG("low/high QTCB version 0x%x/0x%x of FSF\n",		       bottom->low_qtcb_version, bottom->high_qtcb_version);	adapter->fsf_lic_version = bottom->lic_version;	adapter->supported_features = bottom->supported_features;	adapter->peer_wwpn = 0;	adapter->peer_wwnn = 0;	adapter->peer_d_id = 0;	if (xchg_ok) {		adapter->wwnn = bottom->nport_serv_param.wwnn;		adapter->wwpn = bottom->nport_serv_param.wwpn;		adapter->s_id = bottom->s_id & ZFCP_DID_MASK;		adapter->fc_topology = bottom->fc_topology;		adapter->fc_link_speed = bottom->fc_link_speed;		adapter->hydra_version = bottom->adapter_type;	} else {		adapter->wwnn = 0;		adapter->wwpn = 0;		adapter->s_id = 0;		adapter->fc_topology = 0;		adapter->fc_link_speed = 0;		adapter->hydra_version = 0;	}	if (adapter->fc_topology == FSF_TOPO_P2P) {		adapter->peer_d_id = bottom->peer_d_id & ZFCP_DID_MASK;		adapter->peer_wwpn = bottom->plogi_payload.wwpn;		adapter->peer_wwnn = bottom->plogi_payload.wwnn;	}	if(adapter->supported_features & FSF_FEATURE_HBAAPI_MANAGEMENT){		adapter->hardware_version = bottom->hardware_version;		memcpy(adapter->serial_number, bottom->serial_number, 17);		EBCASC(adapter->serial_number, sizeof(adapter->serial_number));	}	ZFCP_LOG_NORMAL("The adapter %s reported the following characteristics:\n"		      "WWNN 0x%016Lx, "		      "WWPN 0x%016Lx, "		      "S_ID 0x%08x,\n"		      "adapter version 0x%x, "		      "LIC version 0x%x, "		      "FC link speed %d Gb/s\n",		      zfcp_get_busid_by_adapter(adapter),		      adapter->wwnn,		      adapter->wwpn,		      (unsigned int) adapter->s_id,		      adapter->hydra_version,		      adapter->fsf_lic_version,		      adapter->fc_link_speed);	if (ZFCP_QTCB_VERSION < bottom->low_qtcb_version) {		ZFCP_LOG_NORMAL("error: the adapter %s "				"only supports newer control block "				"versions in comparison to this device "				"driver (try updated device driver)\n",				zfcp_get_busid_by_adapter(adapter));		debug_text_event(adapter->erp_dbf, 0, "low_qtcb_ver");		zfcp_erp_adapter_shutdown(adapter, 0);		return -EIO;	}	if (ZFCP_QTCB_VERSION > bottom->high_qtcb_version) {		ZFCP_LOG_NORMAL("error: the adapter %s "				"only supports older control block "				"versions than this device driver uses"				"(consider a microcode upgrade)\n",				zfcp_get_busid_by_adapter(adapter));		debug_text_event(adapter->erp_dbf, 0, "high_qtcb_ver");		zfcp_erp_adapter_shutdown(adapter, 0);		return -EIO;	}	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3859f6a248cbdfbe7b41663f3a2b51f48e30b281/zfcp_fsf.c/buggy/drivers/s390/scsi/zfcp_fsf.c