1
0
Fork 0
remarkable-linux/drivers/infiniband
Sergey Gorenko 6e3b662d86 IB/iser: Always check sig MR before putting it to the free pool
[ Upstream commit 26e28deb813eed908cf31a6052870b6493ec0e86 ]

libiscsi calls the check_protection transport handler only if SCSI-Respose
is received. So, the handler is never called if iSCSI task is completed
for some other reason like a timeout or error handling. And this behavior
looks correct. But the iSER does not handle this case properly because it
puts a non-checked signature MR to the free pool. Then the error occurs at
reusing the MR because it is not allowed to invalidate a signature MR
without checking.

This commit adds an extra check to iser_unreg_mem_fastreg(), which is a
part of the task cleanup flow. Now the signature MR is checked there if it
is needed.

Link: https://lore.kernel.org/r/20200325151210.1548-1-sergeygo@mellanox.com
Signed-off-by: Sergey Gorenko <sergeygo@mellanox.com>
Reviewed-by: Max Gurtovoy <maxg@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-10-01 13:17:50 +02:00
..
core RDMA/cm: Remove a race freeing timewait_info 2020-10-01 13:17:43 +02:00
hw RDMA/iw_cgxb4: Fix an error handling path in 'c4iw_connect()' 2020-10-01 13:17:19 +02:00
sw RDMA/rxe: Set sys_image_guid to be aligned with HW IB devices 2020-10-01 13:17:50 +02:00
ulp IB/iser: Always check sig MR before putting it to the free pool 2020-10-01 13:17:50 +02:00
Kconfig RDMA/odp: Use the common interval tree library instead of generic 2019-08-21 13:34:09 -03:00
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00