if ((len & 1) && (tp->head.wval & EWS)) { len++; cp->odd_byte_adjustment++; }  
static int sym_scatter(struct sym_hcb *np, struct sym_ccb *cp, struct scsi_cmnd *cmd){	int segment;	int use_sg = (int) cmd->use_sg;	cp->data_len = 0;	if (!use_sg)		segment = sym_scatter_no_sglist(np, cp, cmd);	else if ((use_sg = map_scsi_sg_data(np, cmd)) > 0) {		struct scatterlist *scatter = (struct scatterlist *)cmd->buffer;		struct sym_tblmove *data;		if (use_sg > SYM_CONF_MAX_SG) {			unmap_scsi_data(np, cmd);			return -1;		}		data = &cp->phys.data[SYM_CONF_MAX_SG - use_sg];		for (segment = 0; segment < use_sg; segment++) {			dma_addr_t baddr = sg_dma_address(&scatter[segment]);			unsigned int len = sg_dma_len(&scatter[segment]);			sym_build_sge(np, &data[segment], baddr, len);			cp->data_len += len;		}	} else {		segment = -2;	}	return segment;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/53222b906903fd861dc24ebccfa07ee125941313/sym_glue.c/clean/drivers/scsi/sym53c8xx_2/sym_glue.c