Lines Matching refs:SCpnt

82 static int sr_init_command(struct scsi_cmnd *SCpnt);
315 static int sr_done(struct scsi_cmnd *SCpnt)
317 int result = SCpnt->result;
318 int this_count = scsi_bufflen(SCpnt);
322 struct scsi_cd *cd = scsi_cd(SCpnt->request->rq_disk);
325 scmd_printk(KERN_INFO, SCpnt, "done: %x\n", result);
335 (SCpnt->sense_buffer[0] & 0x7f) == 0x70) { /* Sense current */
336 switch (SCpnt->sense_buffer[2]) {
340 if (!(SCpnt->sense_buffer[0] & 0x90))
342 error_sector = (SCpnt->sense_buffer[3] << 24) |
343 (SCpnt->sense_buffer[4] << 16) |
344 (SCpnt->sense_buffer[5] << 8) |
345 SCpnt->sense_buffer[6];
346 if (SCpnt->request->bio != NULL)
348 bio_sectors(SCpnt->request->bio);
355 blk_rq_pos(SCpnt->request)) << 9;
383 static int sr_init_command(struct scsi_cmnd *SCpnt)
387 struct request *rq = SCpnt->request;
390 ret = scsi_init_io(SCpnt, GFP_ATOMIC);
393 SCpnt = rq->special;
400 SCSI_LOG_HLQUEUE(1, scmd_printk(KERN_INFO, SCpnt,
404 SCSI_LOG_HLQUEUE(2, scmd_printk(KERN_INFO, SCpnt,
406 SCSI_LOG_HLQUEUE(2, scmd_printk(KERN_INFO, SCpnt,
407 "Retry with 0x%p\n", SCpnt));
428 scmd_printk(KERN_INFO, SCpnt,
433 scmd_printk(KERN_ERR, SCpnt, "bad sector size %d\n", s_size);
440 SCpnt->cmnd[0] = WRITE_10;
443 SCpnt->cmnd[0] = READ_10;
451 int i, size = 0, sg_count = scsi_sg_count(SCpnt);
453 scsi_for_each_sg(SCpnt, sg, sg_count, i)
456 if (size != scsi_bufflen(SCpnt)) {
457 scmd_printk(KERN_ERR, SCpnt,
459 size, scsi_bufflen(SCpnt));
460 if (scsi_bufflen(SCpnt) > size)
461 SCpnt->sdb.length = size;
469 (scsi_bufflen(SCpnt) % s_size)) {
470 scmd_printk(KERN_NOTICE, SCpnt, "unaligned transfer\n");
474 this_count = (scsi_bufflen(SCpnt) >> 9) / (s_size >> 9);
477 SCSI_LOG_HLQUEUE(2, scmd_printk(KERN_INFO, SCpnt,
483 SCpnt->cmnd[1] = 0;
488 SCpnt->sdb.length = this_count * s_size;
491 SCpnt->cmnd[2] = (unsigned char) (block >> 24) & 0xff;
492 SCpnt->cmnd[3] = (unsigned char) (block >> 16) & 0xff;
493 SCpnt->cmnd[4] = (unsigned char) (block >> 8) & 0xff;
494 SCpnt->cmnd[5] = (unsigned char) block & 0xff;
495 SCpnt->cmnd[6] = SCpnt->cmnd[9] = 0;
496 SCpnt->cmnd[7] = (unsigned char) (this_count >> 8) & 0xff;
497 SCpnt->cmnd[8] = (unsigned char) this_count & 0xff;
504 SCpnt->transfersize = cd->device->sector_size;
505 SCpnt->underflow = this_count << 9;
506 SCpnt->allowed = MAX_RETRIES;