if (ft->issue_fc_host_lip) SETUP_PRIVATE_HOST_ATTRIBUTE_RW(issue_lip); 
fc_attach_transport(struct fc_function_template *ft){	struct fc_internal *i = kmalloc(sizeof(struct fc_internal),					GFP_KERNEL);	int count;	if (unlikely(!i))		return NULL;	memset(i, 0, sizeof(struct fc_internal));	i->t.target_attrs.ac.attrs = &i->starget_attrs[0];	i->t.target_attrs.ac.class = &fc_transport_class.class;	i->t.target_attrs.ac.match = fc_target_match;	i->t.target_size = sizeof(struct fc_starget_attrs);	transport_container_register(&i->t.target_attrs);	i->t.host_attrs.ac.attrs = &i->host_attrs[0];	i->t.host_attrs.ac.class = &fc_host_class.class;	i->t.host_attrs.ac.match = fc_host_match;	i->t.host_size = sizeof(struct fc_host_attrs);	if (ft->get_fc_host_stats)		i->t.host_attrs.statistics = &fc_statistics_group;	transport_container_register(&i->t.host_attrs);	i->rport_attr_cont.ac.attrs = &i->rport_attrs[0];	i->rport_attr_cont.ac.class = &fc_rport_class.class;	i->rport_attr_cont.ac.match = fc_rport_match;	transport_container_register(&i->rport_attr_cont);	i->f = ft;	/* Transport uses the shost workq for scsi scanning */	i->t.create_work_queue = 1;	i->t.target_parent = fc_target_parent;		/*	 * Setup SCSI Target Attributes.	 */	count = 0;	SETUP_STARGET_ATTRIBUTE_RD(node_name);	SETUP_STARGET_ATTRIBUTE_RD(port_name);	SETUP_STARGET_ATTRIBUTE_RD(port_id);	BUG_ON(count > FC_STARGET_NUM_ATTRS);	i->starget_attrs[count] = NULL;	/*	 * Setup SCSI Host Attributes.	 */	count=0;	SETUP_HOST_ATTRIBUTE_RD(node_name);	SETUP_HOST_ATTRIBUTE_RD(port_name);	SETUP_HOST_ATTRIBUTE_RD(supported_classes);	SETUP_HOST_ATTRIBUTE_RD(supported_fc4s);	SETUP_HOST_ATTRIBUTE_RD(symbolic_name);	SETUP_HOST_ATTRIBUTE_RD(supported_speeds);	SETUP_HOST_ATTRIBUTE_RD(maxframe_size);	SETUP_HOST_ATTRIBUTE_RD(serial_number);	SETUP_HOST_ATTRIBUTE_RD(port_id);	SETUP_HOST_ATTRIBUTE_RD(port_type);	SETUP_HOST_ATTRIBUTE_RD(port_state);	SETUP_HOST_ATTRIBUTE_RD(active_fc4s);	SETUP_HOST_ATTRIBUTE_RD(speed);	SETUP_HOST_ATTRIBUTE_RD(fabric_name);	/* Transport-managed attributes */	SETUP_PRIVATE_HOST_ATTRIBUTE_RW(tgtid_bind_type);	BUG_ON(count > FC_HOST_NUM_ATTRS);	i->host_attrs[count] = NULL;	/*	 * Setup Remote Port Attributes.	 */	count=0;	SETUP_RPORT_ATTRIBUTE_RD(maxframe_size);	SETUP_RPORT_ATTRIBUTE_RD(supported_classes);	SETUP_RPORT_ATTRIBUTE_RW(dev_loss_tmo);	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(node_name);	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(port_name);	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(port_id);	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(roles);	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(port_state);	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(scsi_target_id);	BUG_ON(count > FC_RPORT_NUM_ATTRS);	i->rport_attrs[count] = NULL;	return &i->t;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/91ca7b01ecc916632202180569a7ddbfccfc3f05/scsi_transport_fc.c/buggy/drivers/scsi/scsi_transport_fc.c