debug_text_event(adapter->erp_dbf, 1, "unsol_els_rscnk:"); 
zfcp_fsf_incoming_els_rscn(struct zfcp_adapter *adapter,			   struct fsf_status_read_buffer *status_buffer){	struct fcp_rscn_head *fcp_rscn_head;	struct fcp_rscn_element *fcp_rscn_element;	struct zfcp_port *port;	u16 i;	u16 no_entries;	u32 range_mask;	unsigned long flags;	fcp_rscn_head = (struct fcp_rscn_head *) status_buffer->payload;	fcp_rscn_element = (struct fcp_rscn_element *) status_buffer->payload;	/* see FC-FS */	no_entries = (fcp_rscn_head->payload_len / 4);	zfcp_in_els_dbf_event(adapter, "##rscn", status_buffer,			      fcp_rscn_head->payload_len);	debug_text_event(adapter->erp_dbf, 1, "unsol_els_rscn:");	for (i = 1; i < no_entries; i++) {		/* skip head and start with 1st element */		fcp_rscn_element++;		switch (fcp_rscn_element->addr_format) {		case ZFCP_PORT_ADDRESS:			range_mask = ZFCP_PORTS_RANGE_PORT;			break;		case ZFCP_AREA_ADDRESS:			range_mask = ZFCP_PORTS_RANGE_AREA;			break;		case ZFCP_DOMAIN_ADDRESS:			range_mask = ZFCP_PORTS_RANGE_DOMAIN;			break;		case ZFCP_FABRIC_ADDRESS:			range_mask = ZFCP_PORTS_RANGE_FABRIC;			break;		default:			ZFCP_LOG_INFO("incoming RSCN with unknown "				      "address format\n");			continue;		}		read_lock_irqsave(&zfcp_data.config_lock, flags);		list_for_each_entry(port, &adapter->port_list_head, list) {			if (atomic_test_mask			    (ZFCP_STATUS_PORT_WKA, &port->status))				continue;			/* Do we know this port? If not skip it. */			if (!atomic_test_mask			    (ZFCP_STATUS_PORT_DID_DID, &port->status)) {				ZFCP_LOG_INFO("incoming RSCN, trying to open "					      "port 0x%016Lx\n", port->wwpn);				debug_text_event(adapter->erp_dbf, 1,						 "unsol_els_rscnu:");				zfcp_erp_port_reopen(port,						     ZFCP_STATUS_COMMON_ERP_FAILED);				continue;			}			/*			 * FIXME: race: d_id might being invalidated			 * (...DID_DID reset)			 */			if ((port->d_id & range_mask)			    == (fcp_rscn_element->nport_did & range_mask)) {				ZFCP_LOG_TRACE("reopen did 0x%08x\n",					       fcp_rscn_element->nport_did);				/*				 * Unfortunately, an RSCN does not specify the				 * type of change a target underwent. We assume				 * that it makes sense to reopen the link.				 * FIXME: Shall we try to find out more about				 * the target and link state before closing it?				 * How to accomplish this? (nameserver?)				 * Where would such code be put in?				 * (inside or outside erp)				 */				ZFCP_LOG_INFO("incoming RSCN, trying to open "					      "port 0x%016Lx\n", port->wwpn);				debug_text_event(adapter->erp_dbf, 1,						 "unsol_els_rscnk:");				zfcp_test_link(port);			}		}		read_unlock_irqrestore(&zfcp_data.config_lock, flags);	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/8a36e4532ea10471f0a8605207d071361d7be2c3/zfcp_aux.c/buggy/drivers/s390/scsi/zfcp_aux.c