]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
IB/iser: centralize setting desc type and done callback
authorMax Gurtovoy <mgurtovoy@nvidia.com>
Thu, 30 Mar 2023 13:13:32 +0000 (16:13 +0300)
committerLeon Romanovsky <leon@kernel.org>
Mon, 3 Apr 2023 12:38:29 +0000 (15:38 +0300)
Move this common logic into iser_create_send_desc instead of duplicating
the code.

Reviewed-by: Sergey Gorenko <sergeygo@nvidia.com>
Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
Link: https://lore.kernel.org/r/20230330131333.37900-2-mgurtovoy@nvidia.com
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/ulp/iser/iser_initiator.c

index 7b83f48f60c5ea76b387e1e101c6d5c66d085434..354928408399ac45acbced80e0adf0ed14355547 100644 (file)
@@ -141,10 +141,14 @@ out_err:
 
 /* creates a new tx descriptor and adds header regd buffer */
 static void iser_create_send_desc(struct iser_conn *iser_conn,
-                                 struct iser_tx_desc *tx_desc)
+               struct iser_tx_desc *tx_desc, enum iser_desc_type type,
+               void (*done)(struct ib_cq *cq, struct ib_wc *wc))
 {
        struct iser_device *device = iser_conn->ib_conn.device;
 
+       tx_desc->type = type;
+       tx_desc->cqe.done = done;
+
        ib_dma_sync_single_for_cpu(device->ib_device,
                tx_desc->dma_addr, ISER_HEADERS_LEN, DMA_TO_DEVICE);
 
@@ -349,9 +353,8 @@ int iser_send_command(struct iscsi_conn *conn, struct iscsi_task *task)
        edtl = ntohl(hdr->data_length);
 
        /* build the tx desc regd header and add it to the tx desc dto */
-       tx_desc->type = ISCSI_TX_SCSI_COMMAND;
-       tx_desc->cqe.done = iser_cmd_comp;
-       iser_create_send_desc(iser_conn, tx_desc);
+       iser_create_send_desc(iser_conn, tx_desc, ISCSI_TX_SCSI_COMMAND,
+                             iser_cmd_comp);
 
        if (hdr->flags & ISCSI_FLAG_CMD_READ) {
                data_buf = &iser_task->data[ISER_DIR_IN];
@@ -478,9 +481,8 @@ int iser_send_control(struct iscsi_conn *conn, struct iscsi_task *task)
        struct iser_device *device;
 
        /* build the tx desc regd header and add it to the tx desc dto */
-       mdesc->type = ISCSI_TX_CONTROL;
-       mdesc->cqe.done = iser_ctrl_comp;
-       iser_create_send_desc(iser_conn, mdesc);
+       iser_create_send_desc(iser_conn, mdesc, ISCSI_TX_CONTROL,
+                             iser_ctrl_comp);
 
        device = iser_conn->ib_conn.device;