mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-20 09:34:44 +08:00
IB/iser: Use iser_fr_desc as registration context
After removing the FMR support in iSER, there is only one type of registration context. Replace the void pointer with the explicit structure for registration (struct iser_fr_desc). Link: https://lore.kernel.org/r/20220308145546.8372-3-mgurtovoy@nvidia.com Reviewed-by: Sergey Gorenko <sergeygo@nvidia.com> Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com> Acked-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
7f68d7493f
commit
ee4efeaea8
@ -203,12 +203,12 @@ struct iser_reg_resources;
|
|||||||
*
|
*
|
||||||
* @sge: memory region sg element
|
* @sge: memory region sg element
|
||||||
* @rkey: memory region remote key
|
* @rkey: memory region remote key
|
||||||
* @mem_h: pointer to registration context (FMR/Fastreg)
|
* @desc: pointer to fast registration context
|
||||||
*/
|
*/
|
||||||
struct iser_mem_reg {
|
struct iser_mem_reg {
|
||||||
struct ib_sge sge;
|
struct ib_sge sge;
|
||||||
u32 rkey;
|
u32 rkey;
|
||||||
void *mem_h;
|
struct iser_fr_desc *desc;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum iser_desc_type {
|
enum iser_desc_type {
|
||||||
|
@ -619,13 +619,13 @@ static int iser_check_remote_inv(struct iser_conn *iser_conn, struct ib_wc *wc,
|
|||||||
struct iser_fr_desc *desc;
|
struct iser_fr_desc *desc;
|
||||||
|
|
||||||
if (iser_task->dir[ISER_DIR_IN]) {
|
if (iser_task->dir[ISER_DIR_IN]) {
|
||||||
desc = iser_task->rdma_reg[ISER_DIR_IN].mem_h;
|
desc = iser_task->rdma_reg[ISER_DIR_IN].desc;
|
||||||
if (unlikely(iser_inv_desc(desc, rkey)))
|
if (unlikely(iser_inv_desc(desc, rkey)))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iser_task->dir[ISER_DIR_OUT]) {
|
if (iser_task->dir[ISER_DIR_OUT]) {
|
||||||
desc = iser_task->rdma_reg[ISER_DIR_OUT].mem_h;
|
desc = iser_task->rdma_reg[ISER_DIR_OUT].desc;
|
||||||
if (unlikely(iser_inv_desc(desc, rkey)))
|
if (unlikely(iser_inv_desc(desc, rkey)))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
@ -129,7 +129,7 @@ void iser_unreg_mem_fastreg(struct iscsi_iser_task *iser_task,
|
|||||||
struct iser_fr_desc *desc;
|
struct iser_fr_desc *desc;
|
||||||
struct ib_mr_status mr_status;
|
struct ib_mr_status mr_status;
|
||||||
|
|
||||||
desc = reg->mem_h;
|
desc = reg->desc;
|
||||||
if (!desc)
|
if (!desc)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -146,8 +146,8 @@ void iser_unreg_mem_fastreg(struct iscsi_iser_task *iser_task,
|
|||||||
ib_check_mr_status(desc->rsc.sig_mr, IB_MR_CHECK_SIG_STATUS,
|
ib_check_mr_status(desc->rsc.sig_mr, IB_MR_CHECK_SIG_STATUS,
|
||||||
&mr_status);
|
&mr_status);
|
||||||
}
|
}
|
||||||
iser_reg_desc_put_fr(&iser_task->iser_conn->ib_conn, reg->mem_h);
|
iser_reg_desc_put_fr(&iser_task->iser_conn->ib_conn, reg->desc);
|
||||||
reg->mem_h = NULL;
|
reg->desc = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void iser_set_dif_domain(struct scsi_cmnd *sc,
|
static void iser_set_dif_domain(struct scsi_cmnd *sc,
|
||||||
@ -357,7 +357,7 @@ int iser_reg_mem_fastreg(struct iscsi_iser_task *task,
|
|||||||
desc->sig_protected = true;
|
desc->sig_protected = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
reg->mem_h = desc;
|
reg->desc = desc;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -904,7 +904,7 @@ u8 iser_check_task_pi_status(struct iscsi_iser_task *iser_task,
|
|||||||
enum iser_data_dir cmd_dir, sector_t *sector)
|
enum iser_data_dir cmd_dir, sector_t *sector)
|
||||||
{
|
{
|
||||||
struct iser_mem_reg *reg = &iser_task->rdma_reg[cmd_dir];
|
struct iser_mem_reg *reg = &iser_task->rdma_reg[cmd_dir];
|
||||||
struct iser_fr_desc *desc = reg->mem_h;
|
struct iser_fr_desc *desc = reg->desc;
|
||||||
unsigned long sector_size = iser_task->sc->device->sector_size;
|
unsigned long sector_size = iser_task->sc->device->sector_size;
|
||||||
struct ib_mr_status mr_status;
|
struct ib_mr_status mr_status;
|
||||||
int ret;
|
int ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user