Lines Matching refs:SCpnt
86 static blk_status_t sr_init_command(struct scsi_cmnd *SCpnt);
324 static int sr_done(struct scsi_cmnd *SCpnt)
326 int result = SCpnt->result;
327 int this_count = scsi_bufflen(SCpnt);
331 struct scsi_cd *cd = scsi_cd(SCpnt->request->rq_disk);
334 scmd_printk(KERN_INFO, SCpnt, "done: %x\n", result);
344 (SCpnt->sense_buffer[0] & 0x7f) == 0x70) { /* Sense current */
345 switch (SCpnt->sense_buffer[2]) {
349 if (!(SCpnt->sense_buffer[0] & 0x90))
352 get_unaligned_be32(&SCpnt->sense_buffer[3]);
353 if (SCpnt->request->bio != NULL)
355 bio_sectors(SCpnt->request->bio);
362 blk_rq_pos(SCpnt->request)) << 9;
390 static blk_status_t sr_init_command(struct scsi_cmnd *SCpnt)
394 struct request *rq = SCpnt->request;
397 ret = scsi_alloc_sgtables(SCpnt);
402 SCSI_LOG_HLQUEUE(1, scmd_printk(KERN_INFO, SCpnt,
406 SCSI_LOG_HLQUEUE(2, scmd_printk(KERN_INFO, SCpnt,
408 SCSI_LOG_HLQUEUE(2, scmd_printk(KERN_INFO, SCpnt,
409 "Retry with 0x%p\n", SCpnt));
430 scmd_printk(KERN_INFO, SCpnt,
435 scmd_printk(KERN_ERR, SCpnt, "bad sector size %d\n", s_size);
443 SCpnt->cmnd[0] = WRITE_10;
447 SCpnt->cmnd[0] = READ_10;
456 int i, size = 0, sg_count = scsi_sg_count(SCpnt);
458 scsi_for_each_sg(SCpnt, sg, sg_count, i)
461 if (size != scsi_bufflen(SCpnt)) {
462 scmd_printk(KERN_ERR, SCpnt,
464 size, scsi_bufflen(SCpnt));
465 if (scsi_bufflen(SCpnt) > size)
466 SCpnt->sdb.length = size;
474 (scsi_bufflen(SCpnt) % s_size)) {
475 scmd_printk(KERN_NOTICE, SCpnt, "unaligned transfer\n");
479 this_count = (scsi_bufflen(SCpnt) >> 9) / (s_size >> 9);
482 SCSI_LOG_HLQUEUE(2, scmd_printk(KERN_INFO, SCpnt,
488 SCpnt->cmnd[1] = 0;
493 SCpnt->sdb.length = this_count * s_size;
496 put_unaligned_be32(block, &SCpnt->cmnd[2]);
497 SCpnt->cmnd[6] = SCpnt->cmnd[9] = 0;
498 put_unaligned_be16(this_count, &SCpnt->cmnd[7]);
505 SCpnt->transfersize = cd->device->sector_size;
506 SCpnt->underflow = this_count << 9;
507 SCpnt->allowed = MAX_RETRIES;
508 SCpnt->cmd_len = 10;
515 scsi_free_sgtables(SCpnt);