|
44 | 44 | static int skd_dbg_level;
|
45 | 45 | static int skd_isr_comp_limit = 4;
|
46 | 46 |
|
47 |
| -enum { |
48 |
| - SKD_FLUSH_INITIALIZER, |
49 |
| - SKD_FLUSH_ZERO_SIZE_FIRST, |
50 |
| - SKD_FLUSH_DATA_SECOND, |
51 |
| -}; |
52 |
| - |
53 | 47 | #define SKD_ASSERT(expr) \
|
54 | 48 | do { \
|
55 | 49 | if (unlikely(!(expr))) { \
|
@@ -497,31 +491,15 @@ static void skd_process_request(struct request *req, bool last)
|
497 | 491 | struct skd_request_context *const skreq = blk_mq_rq_to_pdu(req);
|
498 | 492 | struct skd_scsi_request *scsi_req;
|
499 | 493 | unsigned long flags;
|
500 |
| - unsigned long io_flags; |
501 |
| - u32 lba; |
502 |
| - u32 count; |
503 |
| - int data_dir; |
504 |
| - __be64 be_dmaa; |
505 |
| - int flush, fua; |
| 494 | + const u32 lba = blk_rq_pos(req); |
| 495 | + const u32 count = blk_rq_sectors(req); |
| 496 | + const int data_dir = rq_data_dir(req); |
506 | 497 |
|
507 | 498 | WARN_ONCE(tag >= skd_max_queue_depth, "%#x > %#x (nr_requests = %lu)\n",
|
508 | 499 | tag, skd_max_queue_depth, q->nr_requests);
|
509 | 500 |
|
510 | 501 | SKD_ASSERT(skreq->state == SKD_REQ_STATE_IDLE);
|
511 | 502 |
|
512 |
| - flush = fua = 0; |
513 |
| - |
514 |
| - lba = (u32)blk_rq_pos(req); |
515 |
| - count = blk_rq_sectors(req); |
516 |
| - data_dir = rq_data_dir(req); |
517 |
| - io_flags = req->cmd_flags; |
518 |
| - |
519 |
| - if (req_op(req) == REQ_OP_FLUSH) |
520 |
| - flush++; |
521 |
| - |
522 |
| - if (io_flags & REQ_FUA) |
523 |
| - fua++; |
524 |
| - |
525 | 503 | dev_dbg(&skdev->pdev->dev,
|
526 | 504 | "new req=%p lba=%u(0x%x) count=%u(0x%x) dir=%d\n", req, lba,
|
527 | 505 | lba, count, count, data_dir);
|
@@ -568,19 +546,18 @@ static void skd_process_request(struct request *req, bool last)
|
568 | 546 | scsi_req = &skmsg->msg_buf->scsi[fmh->num_protocol_cmds_coalesced];
|
569 | 547 | memset(scsi_req, 0, sizeof(*scsi_req));
|
570 | 548 |
|
571 |
| - be_dmaa = cpu_to_be64(skreq->sksg_dma_address); |
572 |
| - |
573 | 549 | scsi_req->hdr.tag = skreq->id;
|
574 |
| - scsi_req->hdr.sg_list_dma_address = be_dmaa; |
| 550 | + scsi_req->hdr.sg_list_dma_address = |
| 551 | + cpu_to_be64(skreq->sksg_dma_address); |
575 | 552 |
|
576 |
| - if (flush == SKD_FLUSH_ZERO_SIZE_FIRST) { |
| 553 | + if (req_op(req) == REQ_OP_FLUSH) { |
577 | 554 | skd_prep_zerosize_flush_cdb(scsi_req, skreq);
|
578 | 555 | SKD_ASSERT(skreq->flush_cmd == 1);
|
579 | 556 | } else {
|
580 | 557 | skd_prep_rw_cdb(scsi_req, data_dir, lba, count);
|
581 | 558 | }
|
582 | 559 |
|
583 |
| - if (fua) |
| 560 | + if (req->cmd_flags & REQ_FUA) |
584 | 561 | scsi_req->cdb[1] |= SKD_FUA_NV;
|
585 | 562 |
|
586 | 563 | scsi_req->hdr.sg_list_len_bytes = cpu_to_be32(skreq->sg_byte_count);
|
|
0 commit comments