summaryrefslogtreecommitdiffstats
path: root/include/uapi/rdma
diff options
context:
space:
mode:
authorSergey Gorenko <sergeygo@nvidia.com>2023-12-19 09:23:11 +0200
committerJason Gunthorpe <jgg@nvidia.com>2024-01-04 16:37:03 -0400
commit2f1888281e67205bd80d3e8f54dbd519a9653f26 (patch)
tree576de8e28771dbf956f8dbedba8eabad6ff0c929 /include/uapi/rdma
parent63a43a675cb90e8a56e9119fff68292561204b27 (diff)
downloadlinux-stable-2f1888281e67205bd80d3e8f54dbd519a9653f26.tar.gz
linux-stable-2f1888281e67205bd80d3e8f54dbd519a9653f26.tar.bz2
linux-stable-2f1888281e67205bd80d3e8f54dbd519a9653f26.zip
IB/iser: Prevent invalidating wrong MR
The iser_reg_resources structure has two pointers to MR but only one mr_valid field. The implementation assumes that we use only *sig_mr when pi_enable is true. Otherwise, we use only *mr. However, it is only sometimes correct. Read commands without protection information occur even when pi_enble is true. For example, the following SCSI commands have a Data-In buffer but never have protection information: READ CAPACITY (16), INQUIRY, MODE SENSE(6), MAINTENANCE IN. So, we use *sig_mr for some SCSI commands and *mr for the other SCSI commands. In most cases, it works fine because the remote invalidation is applied. However, there are two cases when the remote invalidation is not applicable. 1. Small write commands when all data is sent as an immediate. 2. The target does not support the remote invalidation feature. The lazy invalidation is used if the remote invalidation is impossible. Since, at the lazy invalidation, we always invalidate the MR we want to use, the wrong MR may be invalidated. To fix the issue, we need a field per MR that indicates the MR needs invalidation. Since the ib_mr structure already has such a field, let's use ib_mr.need_inval instead of iser_reg_resources.mr_valid. Fixes: b76a439982f8 ("IB/iser: Use IB_WR_REG_MR_INTEGRITY for PI handover") Link: https://lore.kernel.org/r/20231219072311.40989-1-sergeygo@nvidia.com Acked-by: Max Gurtovoy <mgurtovoy@nvidia.com> Signed-off-by: Sergey Gorenko <sergeygo@nvidia.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Diffstat (limited to 'include/uapi/rdma')
0 files changed, 0 insertions, 0 deletions