int mts_scsi_queuecommand( Scsi_Cmnd *srb, mts_scsi_cmnd_callback callback ){	struct mts_desc* desc = (struct mts_desc*)(srb->device->host->hostdata[0]);	int err = 0;	int res;	MTS_DEBUG_GOT_HERE();	mts_show_command(srb);	mts_debug_dump(desc);	if ( srb->device->lun || srb->device->id || srb->device->channel ) {		MTS_DEBUG("Command to LUN=%d ID=%d CHANNEL=%d from SCSI layer\n",(int)srb->device->lun,(int)srb->device->id, (int)srb->device->channel );		MTS_DEBUG("this device doesn't exist\n");		srb->result = DID_BAD_TARGET << 16;		if(likely(callback != NULL))			callback(srb);		goto out;	}		usb_fill_bulk_urb(desc->urb,		      desc->usb_dev,		      usb_sndbulkpipe(desc->usb_dev,desc->ep_out),		      srb->cmnd,		      srb->cmd_len,		      mts_command_done,		      &desc->context		      );	mts_build_transfer_context( srb, desc );	desc->context.final_callback = callback;		/* here we need ATOMIC as we are called with the iolock */	res=usb_submit_urb(desc->urb, GFP_ATOMIC);	if(unlikely(res)){		MTS_ERROR("error %d submitting URB\n",(int)res);		srb->result = DID_ERROR << 16;		if(likely(callback != NULL))			callback(srb);	}out:	return err;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/9142d59a451731d23539d218c962418acc93283c/microtek.c/buggy/drivers/usb/image/microtek.c