SETUP_RELATED_ATTRIBUTE(max_width, width); 
spi_attach_transport(struct spi_function_template *ft){	struct spi_internal *i = kmalloc(sizeof(struct spi_internal),					 GFP_KERNEL);	int count = 0;	if (unlikely(!i))		return NULL;	memset(i, 0, sizeof(struct spi_internal));	i->t.target_attrs.ac.class = &spi_transport_class.class;	i->t.target_attrs.ac.attrs = &i->attrs[0];	i->t.target_attrs.ac.match = spi_target_match;	transport_container_register(&i->t.target_attrs);	i->t.target_size = sizeof(struct spi_transport_attrs);	i->t.host_attrs.ac.class = &spi_host_class.class;	i->t.host_attrs.ac.attrs = &i->host_attrs[0];	i->t.host_attrs.ac.match = spi_host_match;	transport_container_register(&i->t.host_attrs);	i->t.host_size = sizeof(struct spi_host_attrs);	i->f = ft;	SETUP_ATTRIBUTE(period);	SETUP_ATTRIBUTE(offset);	SETUP_ATTRIBUTE(width);	SETUP_ATTRIBUTE(iu);	SETUP_ATTRIBUTE(dt);	SETUP_ATTRIBUTE(qas);	SETUP_ATTRIBUTE(wr_flow);	SETUP_ATTRIBUTE(rd_strm);	SETUP_ATTRIBUTE(rti);	SETUP_ATTRIBUTE(pcomp_en);	/* if you add an attribute but forget to increase SPI_NUM_ATTRS	 * this bug will trigger */	BUG_ON(count > SPI_NUM_ATTRS);	i->attrs[count++] = &class_device_attr_revalidate;	i->attrs[count] = NULL;	count = 0;	SETUP_HOST_ATTRIBUTE(signalling);	BUG_ON(count > SPI_HOST_ATTRS);	i->host_attrs[count] = NULL;	return &i->t;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/62a8612972eaea804e1e42c63ee403cd4e14cc35/scsi_transport_spi.c/clean/drivers/scsi/scsi_transport_spi.c