Skip to content

Commit b1824ee

Browse files
KAGA-KOKOaxboe
authored andcommitted
skd: Simplify the code for handling data direction
Use DMA_FROM_DEVICE and DMA_TO_DEVICE directly instead of introducing driver-private constants with the same numerical value. Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Hannes Reinecke <hare@suse.de> Cc: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
1 parent 0b2e0c0 commit b1824ee

File tree

1 file changed

+9
-16
lines changed

1 file changed

+9
-16
lines changed

drivers/block/skd_main.c

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ struct skd_request_context {
212212
u8 flush_cmd;
213213

214214
u32 timeout_stamp;
215-
u8 sg_data_dir;
215+
enum dma_data_direction data_dir;
216216
struct scatterlist *sg;
217217
u32 n_sg;
218218
u32 sg_byte_count;
@@ -225,8 +225,6 @@ struct skd_request_context {
225225
struct fit_comp_error_info err_info;
226226

227227
};
228-
#define SKD_DATA_DIR_HOST_TO_CARD 1
229-
#define SKD_DATA_DIR_CARD_TO_HOST 2
230228

231229
struct skd_special_context {
232230
struct skd_request_context req;
@@ -615,8 +613,8 @@ static void skd_request_fn(struct request_queue *q)
615613
skreq->req = req;
616614
skreq->fitmsg_id = 0;
617615

618-
skreq->sg_data_dir = data_dir == READ ?
619-
SKD_DATA_DIR_CARD_TO_HOST : SKD_DATA_DIR_HOST_TO_CARD;
616+
skreq->data_dir = data_dir == READ ? DMA_FROM_DEVICE :
617+
DMA_TO_DEVICE;
620618

621619
if (req->bio && !skd_preop_sg_list(skdev, skreq)) {
622620
dev_dbg(&skdev->pdev->dev, "error Out\n");
@@ -742,16 +740,14 @@ static bool skd_preop_sg_list(struct skd_device *skdev,
742740
struct skd_request_context *skreq)
743741
{
744742
struct request *req = skreq->req;
745-
int writing = skreq->sg_data_dir == SKD_DATA_DIR_HOST_TO_CARD;
746-
int pci_dir = writing ? PCI_DMA_TODEVICE : PCI_DMA_FROMDEVICE;
747743
struct scatterlist *sg = &skreq->sg[0];
748744
int n_sg;
749745
int i;
750746

751747
skreq->sg_byte_count = 0;
752748

753-
/* SKD_ASSERT(skreq->sg_data_dir == SKD_DATA_DIR_HOST_TO_CARD ||
754-
skreq->sg_data_dir == SKD_DATA_DIR_CARD_TO_HOST); */
749+
WARN_ON_ONCE(skreq->data_dir != DMA_TO_DEVICE &&
750+
skreq->data_dir != DMA_FROM_DEVICE);
755751

756752
n_sg = blk_rq_map_sg(skdev->queue, req, sg);
757753
if (n_sg <= 0)
@@ -761,7 +757,7 @@ static bool skd_preop_sg_list(struct skd_device *skdev,
761757
* Map scatterlist to PCI bus addresses.
762758
* Note PCI might change the number of entries.
763759
*/
764-
n_sg = pci_map_sg(skdev->pdev, sg, n_sg, pci_dir);
760+
n_sg = pci_map_sg(skdev->pdev, sg, n_sg, skreq->data_dir);
765761
if (n_sg <= 0)
766762
return false;
767763

@@ -804,17 +800,14 @@ static bool skd_preop_sg_list(struct skd_device *skdev,
804800
static void skd_postop_sg_list(struct skd_device *skdev,
805801
struct skd_request_context *skreq)
806802
{
807-
int writing = skreq->sg_data_dir == SKD_DATA_DIR_HOST_TO_CARD;
808-
int pci_dir = writing ? PCI_DMA_TODEVICE : PCI_DMA_FROMDEVICE;
809-
810803
/*
811804
* restore the next ptr for next IO request so we
812805
* don't have to set it every time.
813806
*/
814807
skreq->sksg_list[skreq->n_sg - 1].next_desc_ptr =
815808
skreq->sksg_dma_address +
816809
((skreq->n_sg) * sizeof(struct fit_sg_descriptor));
817-
pci_unmap_sg(skdev->pdev, &skreq->sg[0], skreq->n_sg, pci_dir);
810+
pci_unmap_sg(skdev->pdev, &skreq->sg[0], skreq->n_sg, skreq->data_dir);
818811
}
819812

820813
static void skd_request_fn_not_online(struct request_queue *q)
@@ -2506,7 +2499,7 @@ static void skd_process_scsi_inq(struct skd_device *skdev,
25062499
struct skd_scsi_request *scsi_req = &skspcl->msg_buf->scsi[0];
25072500

25082501
dma_sync_sg_for_cpu(skdev->class_dev, skspcl->req.sg, skspcl->req.n_sg,
2509-
skspcl->req.sg_data_dir);
2502+
skspcl->req.data_dir);
25102503
buf = skd_sg_1st_page_ptr(skspcl->req.sg);
25112504

25122505
if (buf)
@@ -4935,7 +4928,7 @@ static void skd_log_skreq(struct skd_device *skdev,
49354928
skd_skreq_state_to_str(skreq->state), skreq->state, skreq->id,
49364929
skreq->fitmsg_id);
49374930
dev_dbg(&skdev->pdev->dev, " timo=0x%x sg_dir=%d n_sg=%d\n",
4938-
skreq->timeout_stamp, skreq->sg_data_dir, skreq->n_sg);
4931+
skreq->timeout_stamp, skreq->data_dir, skreq->n_sg);
49394932

49404933
if (skreq->req != NULL) {
49414934
struct request *req = skreq->req;

0 commit comments

Comments
 (0)