• Home
  • Raw
  • Download

Lines Matching refs:SCpnt

84 static blk_status_t sr_init_command(struct scsi_cmnd *SCpnt);
320 static int sr_done(struct scsi_cmnd *SCpnt) in sr_done() argument
322 int result = SCpnt->result; in sr_done()
323 int this_count = scsi_bufflen(SCpnt); in sr_done()
327 struct scsi_cd *cd = scsi_cd(SCpnt->request->rq_disk); in sr_done()
330 scmd_printk(KERN_INFO, SCpnt, "done: %x\n", result); in sr_done()
340 (SCpnt->sense_buffer[0] & 0x7f) == 0x70) { /* Sense current */ in sr_done()
341 switch (SCpnt->sense_buffer[2]) { in sr_done()
345 if (!(SCpnt->sense_buffer[0] & 0x90)) in sr_done()
347 error_sector = (SCpnt->sense_buffer[3] << 24) | in sr_done()
348 (SCpnt->sense_buffer[4] << 16) | in sr_done()
349 (SCpnt->sense_buffer[5] << 8) | in sr_done()
350 SCpnt->sense_buffer[6]; in sr_done()
351 if (SCpnt->request->bio != NULL) in sr_done()
353 bio_sectors(SCpnt->request->bio); in sr_done()
360 blk_rq_pos(SCpnt->request)) << 9; in sr_done()
388 static blk_status_t sr_init_command(struct scsi_cmnd *SCpnt) in sr_init_command() argument
392 struct request *rq = SCpnt->request; in sr_init_command()
395 ret = scsi_init_io(SCpnt); in sr_init_command()
404 SCSI_LOG_HLQUEUE(1, scmd_printk(KERN_INFO, SCpnt, in sr_init_command()
408 SCSI_LOG_HLQUEUE(2, scmd_printk(KERN_INFO, SCpnt, in sr_init_command()
410 SCSI_LOG_HLQUEUE(2, scmd_printk(KERN_INFO, SCpnt, in sr_init_command()
411 "Retry with 0x%p\n", SCpnt)); in sr_init_command()
432 scmd_printk(KERN_INFO, SCpnt, in sr_init_command()
437 scmd_printk(KERN_ERR, SCpnt, "bad sector size %d\n", s_size); in sr_init_command()
445 SCpnt->cmnd[0] = WRITE_10; in sr_init_command()
449 SCpnt->cmnd[0] = READ_10; in sr_init_command()
458 int i, size = 0, sg_count = scsi_sg_count(SCpnt); in sr_init_command()
460 scsi_for_each_sg(SCpnt, sg, sg_count, i) in sr_init_command()
463 if (size != scsi_bufflen(SCpnt)) { in sr_init_command()
464 scmd_printk(KERN_ERR, SCpnt, in sr_init_command()
466 size, scsi_bufflen(SCpnt)); in sr_init_command()
467 if (scsi_bufflen(SCpnt) > size) in sr_init_command()
468 SCpnt->sdb.length = size; in sr_init_command()
476 (scsi_bufflen(SCpnt) % s_size)) { in sr_init_command()
477 scmd_printk(KERN_NOTICE, SCpnt, "unaligned transfer\n"); in sr_init_command()
481 this_count = (scsi_bufflen(SCpnt) >> 9) / (s_size >> 9); in sr_init_command()
484 SCSI_LOG_HLQUEUE(2, scmd_printk(KERN_INFO, SCpnt, in sr_init_command()
490 SCpnt->cmnd[1] = 0; in sr_init_command()
495 SCpnt->sdb.length = this_count * s_size; in sr_init_command()
498 SCpnt->cmnd[2] = (unsigned char) (block >> 24) & 0xff; in sr_init_command()
499 SCpnt->cmnd[3] = (unsigned char) (block >> 16) & 0xff; in sr_init_command()
500 SCpnt->cmnd[4] = (unsigned char) (block >> 8) & 0xff; in sr_init_command()
501 SCpnt->cmnd[5] = (unsigned char) block & 0xff; in sr_init_command()
502 SCpnt->cmnd[6] = SCpnt->cmnd[9] = 0; in sr_init_command()
503 SCpnt->cmnd[7] = (unsigned char) (this_count >> 8) & 0xff; in sr_init_command()
504 SCpnt->cmnd[8] = (unsigned char) this_count & 0xff; in sr_init_command()
511 SCpnt->transfersize = cd->device->sector_size; in sr_init_command()
512 SCpnt->underflow = this_count << 9; in sr_init_command()
513 SCpnt->allowed = MAX_RETRIES; in sr_init_command()