linux/drivers/infiniband/ulp/iser
Sergey Gorenko 26e28deb81 IB/iser: Always check sig MR before putting it to the free pool
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>
2020-03-26 16:46:54 -03:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
iscsi_iser.c infiniband: fix ulp/iser/iscsi_iser.[hc] kernel-doc notation 2019-10-22 14:45:31 -03:00
iscsi_iser.h infiniband: fix ulp/iser/iscsi_iser.h kernel-doc warnings 2019-10-22 14:45:31 -03:00
iser_initiator.c infiniband: fix ulp/iser/iser_initiator.c kernel-doc warnings 2019-10-22 14:52:56 -03:00
iser_memory.c IB/iser: Always check sig MR before putting it to the free pool 2020-03-26 16:46:54 -03:00
iser_verbs.c IB/iser: use true,false for bool variable 2020-01-03 19:13:59 -04:00