Lines Matching refs:srb
462 struct scsi_cmnd* srb)
465 int result = usb_stor_bulk_transfer_sglist(us, pipe, scsi_sglist(srb),
466 scsi_sg_count(srb), scsi_bufflen(srb),
469 scsi_set_resid(srb, scsi_bufflen(srb) - partial);
519 static void last_sector_hacks(struct us_data *us, struct scsi_cmnd *srb)
543 if (srb->cmnd[0] != READ_10 && srb->cmnd[0] != WRITE_10)
547 sector = (srb->cmnd[2] << 24) | (srb->cmnd[3] << 16) |
548 (srb->cmnd[4] << 8) | (srb->cmnd[5]);
549 disk = srb->request->rq_disk;
558 if (srb->result == SAM_STAT_GOOD && scsi_get_resid(srb) == 0) {
578 srb->result = SAM_STAT_CHECK_CONDITION;
579 memcpy(srb->sense_buffer, record_not_found,
589 if (srb->cmnd[0] != TEST_UNIT_READY)
599 void usb_stor_invoke_transport(struct scsi_cmnd *srb, struct us_data *us)
605 scsi_set_resid(srb, 0);
606 result = us->transport(srb, us);
614 srb->result = DID_ABORT << 16;
621 srb->result = DID_ERROR << 16;
627 srb->result = SAM_STAT_CHECK_CONDITION;
628 last_sector_hacks(us, srb);
632 srb->result = SAM_STAT_GOOD;
649 srb->sc_data_direction != DMA_FROM_DEVICE) {
656 srb->cmnd[0] == SYNCHRONIZE_CACHE) {
677 if (unlikely((srb->cmnd[0] == ATA_16 || srb->cmnd[0] == ATA_12) &&
681 !(srb->cmnd[2] & 0x20))) {
690 if ((scsi_get_resid(srb) > 0) &&
691 !((srb->cmnd[0] == REQUEST_SENSE) ||
692 (srb->cmnd[0] == INQUIRY) ||
693 (srb->cmnd[0] == MODE_SENSE) ||
694 (srb->cmnd[0] == LOG_SENSE) ||
695 (srb->cmnd[0] == MODE_SENSE_10))) {
714 scsi_eh_prep_cmnd(srb, &ses, NULL, 0, sense_size);
719 srb->cmd_len = 6;
721 srb->cmd_len = 12;
724 scsi_set_resid(srb, 0);
725 temp_result = us->transport(us->srb, us);
728 scsi_eh_restore_cmnd(srb, &ses);
732 srb->result = DID_ABORT << 16;
766 srb->result = DID_ERROR << 16;
777 if (srb->sense_buffer[7] > (US_SENSE_SIZE - 8) &&
780 (srb->sense_buffer[0] & 0x7C) == 0x70) {
790 srb->sense_buffer[7] + 8);
791 srb->sense_buffer[7] = (US_SENSE_SIZE - 8);
794 scsi_normalize_sense(srb->sense_buffer, SCSI_SENSE_BUFFERSIZE,
807 srb->result = SAM_STAT_CHECK_CONDITION;
809 scdd = scsi_sense_desc_find(srb->sense_buffer,
811 fm_ili = (scdd ? scdd[3] : srb->sense_buffer[2]) & 0xA0;
826 srb->result = SAM_STAT_GOOD;
827 srb->sense_buffer[0] = 0x0;
836 else if (srb->cmnd[0] == ATA_16 ||
837 srb->cmnd[0] == ATA_12) {
847 srb->result = DID_ERROR << 16;
849 srb->sense_buffer[1] = HARDWARE_ERROR;
851 srb->sense_buffer[2] = HARDWARE_ERROR;
865 srb->cmnd[0] == READ_10)) {
866 if (srb->result == SAM_STAT_GOOD) {
880 srb->result = DID_IMM_RETRY << 16;
881 srb->sense_buffer[0] = 0;
886 if ((srb->result == SAM_STAT_GOOD || srb->sense_buffer[2] == 0) &&
887 scsi_bufflen(srb) - scsi_get_resid(srb) < srb->underflow)
888 srb->result = DID_ERROR << 16;
890 last_sector_hacks(us, srb);
924 last_sector_hacks(us, srb);
952 int usb_stor_CB_transport(struct scsi_cmnd *srb, struct us_data *us)
954 unsigned int transfer_length = scsi_bufflen(srb);
964 memcpy(us->iobuf, srb->cmnd, srb->cmd_len);
968 us->ifnum, us->iobuf, srb->cmd_len);
987 pipe = srb->sc_data_direction == DMA_FROM_DEVICE ?
989 result = usb_stor_bulk_srb(us, pipe, srb);
1023 if (srb->cmnd[0] == REQUEST_SENSE ||
1024 srb->cmnd[0] == INQUIRY)
1110 int usb_stor_Bulk_transport(struct scsi_cmnd *srb, struct us_data *us)
1114 unsigned int transfer_length = scsi_bufflen(srb);
1130 bcb->Flags = srb->sc_data_direction == DMA_FROM_DEVICE ?
1133 bcb->Lun = srb->device->lun;
1135 bcb->Lun |= srb->device->id << 4;
1136 bcb->Length = srb->cmd_len;
1140 memcpy(bcb->CDB, srb->cmnd, bcb->Length);
1166 unsigned int pipe = srb->sc_data_direction == DMA_FROM_DEVICE ?
1168 result = usb_stor_bulk_srb(us, pipe, srb);
1190 srb->sc_data_direction == DMA_FROM_DEVICE &&
1191 transfer_length - scsi_get_resid(srb) ==
1197 US_BULK_CS_WRAP_LEN, srb, &sg,
1203 scsi_set_resid(srb, transfer_length);
1285 scsi_get_resid(srb) == 0 &&
1286 ((srb->cmnd[0] == INQUIRY &&
1288 (srb->cmnd[0] == READ_CAPACITY &&
1294 scsi_set_resid(srb, max(scsi_get_resid(srb), residue));
1303 memcpy(srb->sense_buffer,