/* Set up the actual SRP IU */ srp_cmd = &evt_struct->iu.srp.cmd; memset(srp_cmd, 0x00, sizeof(*srp_cmd)); srp_cmd->type = SRP_CMD_TYPE; memcpy(srp_cmd->cdb, cmnd->cmnd, sizeof(cmnd->cmnd)); srp_cmd->lun = ((u64) lun) << 48;  if (!map_data_for_srp_cmd(cmnd, srp_cmd, hostdata->dev)) { printk(KERN_ERR "ibmvscsi: couldn't convert cmd to srp_cmd\n"); free_event_struct(&hostdata->pool, evt_struct); return SCSI_MLQUEUE_HOST_BUSY; }  
static int ibmvscsi_queuecommand(struct scsi_cmnd *cmnd,				 void (*done) (struct scsi_cmnd *)){	struct srp_cmd *srp_cmd;	struct srp_event_struct *evt_struct;	struct ibmvscsi_host_data *hostdata =		(struct ibmvscsi_host_data *)&cmnd->device->host->hostdata;	u16 lun = lun_from_dev(cmnd->device);	evt_struct = get_event_struct(&hostdata->pool);	if (!evt_struct)		return SCSI_MLQUEUE_HOST_BUSY;	init_event_struct(evt_struct,			  handle_cmd_rsp,			  VIOSRP_SRP_FORMAT,			  cmnd->timeout_per_command/HZ);	evt_struct->cmnd = cmnd;	evt_struct->cmnd_done = done;	/* Set up the actual SRP IU */	srp_cmd = &evt_struct->iu.srp.cmd;	memset(srp_cmd, 0x00, sizeof(*srp_cmd));	srp_cmd->type = SRP_CMD_TYPE;	memcpy(srp_cmd->cdb, cmnd->cmnd, sizeof(cmnd->cmnd));	srp_cmd->lun = ((u64) lun) << 48;	if (!map_data_for_srp_cmd(cmnd, srp_cmd, hostdata->dev)) {		printk(KERN_ERR "ibmvscsi: couldn't convert cmd to srp_cmd\n");		free_event_struct(&hostdata->pool, evt_struct);		return SCSI_MLQUEUE_HOST_BUSY;	}	/* Fix up dma address of the buffer itself */	if ((srp_cmd->data_out_format == SRP_INDIRECT_BUFFER) ||	    (srp_cmd->data_in_format == SRP_INDIRECT_BUFFER)) {		struct indirect_descriptor *indirect =		    (struct indirect_descriptor *)srp_cmd->additional_data;		indirect->head.virtual_address = evt_struct->crq.IU_data_ptr +		    offsetof(struct srp_cmd, additional_data) +		    offsetof(struct indirect_descriptor, list);	}	return ibmvscsi_send_srp_event(evt_struct, hostdata);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4dddbc26c3895ecdab1f4b16435685b47f96f599/ibmvscsi.c/buggy/drivers/scsi/ibmvscsi/ibmvscsi.c