summaryrefslogtreecommitdiffstats
path: root/drivers/target/iscsi/iscsi_target_tpg.c
diff options
context:
space:
mode:
authorNicholas Bellinger2015-05-20 00:10:44 +0200
committerNicholas Bellinger2015-05-20 00:18:20 +0200
commitee7619f2eb21304dcc846b8dc8f8c3d6cbe11792 (patch)
tree4aad4ca471d2d69afac62087a716c4aa83d71ce8 /drivers/target/iscsi/iscsi_target_tpg.c
parenttarget: Add missing parentheses (diff)
downloadkernel-qcow2-linux-ee7619f2eb21304dcc846b8dc8f8c3d6cbe11792.tar.gz
kernel-qcow2-linux-ee7619f2eb21304dcc846b8dc8f8c3d6cbe11792.tar.xz
kernel-qcow2-linux-ee7619f2eb21304dcc846b8dc8f8c3d6cbe11792.zip
target: Drop signal_pending checks after interruptible lock acquire
Once upon a time, iscsit_get_tpg() was using an un-interruptible lock. The signal_pending() usage was a check to allow userspace to break out of the operation with SIGINT. AFAICT, there's no reason why this is necessary anymore, and as reported by Alexey can be potentially dangerous. Also, go ahead and drop the other two problematic cases within iscsit_access_np() and sbc_compare_and_write() as well. Found by Linux Driver Verification project (linuxtesting.org). Reported-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target/iscsi/iscsi_target_tpg.c')
-rw-r--r--drivers/target/iscsi/iscsi_target_tpg.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/target/iscsi/iscsi_target_tpg.c b/drivers/target/iscsi/iscsi_target_tpg.c
index e8a240818353..5e3295fe404d 100644
--- a/drivers/target/iscsi/iscsi_target_tpg.c
+++ b/drivers/target/iscsi/iscsi_target_tpg.c
@@ -161,10 +161,7 @@ struct iscsi_portal_group *iscsit_get_tpg_from_np(
int iscsit_get_tpg(
struct iscsi_portal_group *tpg)
{
- int ret;
-
- ret = mutex_lock_interruptible(&tpg->tpg_access_lock);
- return ((ret != 0) || signal_pending(current)) ? -1 : 0;
+ return mutex_lock_interruptible(&tpg->tpg_access_lock);
}
void iscsit_put_tpg(struct iscsi_portal_group *tpg)