scsi_result = kmalloc(252, GFP_ATOMIC | (scmd->device->host->hostt->unchecked_isa_dma) ? __GFP_DMA : 0); 
scsi_result = kmalloc(252, GFP_ATOMIC | ((scmd->device->host->hostt->unchecked_isa_dma) ? __GFP_DMA : 0)); 
static int scsi_request_sense(struct scsi_cmnd *scmd){	static unsigned char generic_sense[6] =	{REQUEST_SENSE, 0, 0, 0, 252, 0};	unsigned char *scsi_result;	int saved_result;	int rtn;	memcpy(scmd->cmnd, generic_sense, sizeof(generic_sense));	scsi_result = kmalloc(252, GFP_ATOMIC | (scmd->device->host->hostt->unchecked_isa_dma) ? __GFP_DMA : 0);	if (unlikely(!scsi_result)) {		printk(KERN_ERR "%s: cannot allocate scsi_result.\n",		       __FUNCTION__);		return FAILED;	}	/*	 * zero the sense buffer.  some host adapters automatically always	 * request sense, so it is not a good idea that	 * scmd->request_buffer and scmd->sense_buffer point to the same	 * address (db).  0 is not a valid sense code. 	 */	memset(scmd->sense_buffer, 0, sizeof(scmd->sense_buffer));	memset(scsi_result, 0, 252);	saved_result = scmd->result;	scmd->request_buffer = scsi_result;	scmd->request_bufflen = 252;	scmd->use_sg = 0;	scmd->cmd_len = COMMAND_SIZE(scmd->cmnd[0]);	scmd->sc_data_direction = DMA_FROM_DEVICE;	scmd->underflow = 0;	rtn = scsi_send_eh_cmnd(scmd, SENSE_TIMEOUT);	/* last chance to have valid sense data */	if(!SCSI_SENSE_VALID(scmd)) {		memcpy(scmd->sense_buffer, scmd->request_buffer,		       sizeof(scmd->sense_buffer));	}	kfree(scsi_result);	/*	 * when we eventually call scsi_finish, we really wish to complete	 * the original request, so let's restore the original data. (db)	 */	scsi_setup_cmd_retry(scmd);	scmd->result = saved_result;	return rtn;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/bc86120a85ebf553180946e8854d1993f074e9f5/scsi_error.c/buggy/drivers/scsi/scsi_error.c