summaryrefslogtreecommitdiffstats
path: root/drivers/target/loopback
diff options
context:
space:
mode:
authorNicholas Bellinger <nab@linux-iscsi.org>2014-06-17 22:23:03 +0000
committerNicholas Bellinger <nab@linux-iscsi.org>2014-06-26 20:56:49 -0700
commitb43f1886e4d3ea3f68665eaea96526ccdd53741d (patch)
tree09b7cedc3ea62bd601987ad5172051d349d32c9d /drivers/target/loopback
parent683497566d48f86e04d026de1ee658dd74fc1077 (diff)
downloadlinux-b43f1886e4d3ea3f68665eaea96526ccdd53741d.tar.gz
linux-b43f1886e4d3ea3f68665eaea96526ccdd53741d.tar.bz2
linux-b43f1886e4d3ea3f68665eaea96526ccdd53741d.zip
tcm_loop: Fix memory leak in tcm_loop_submission_work error path
This patch fixes a tcm_loop_cmd descriptor memory leak in the tcm_loop_submission_work() error path, and would result in warnings about leaked tcm_loop_cmd_cache objects at module unload time. Go ahead and invoke kmem_cache_free() to release tl_cmd back to tcm_loop_cmd_cache before calling sc->scsi_done(). Reported-by: Sebastian Herbszt <herbszt@gmx.de> Tested-by: Sebastian Herbszt <herbszt@gmx.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target/loopback')
-rw-r--r--drivers/target/loopback/tcm_loop.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/target/loopback/tcm_loop.c b/drivers/target/loopback/tcm_loop.c
index 6d2f37578b29..8c64b8776a96 100644
--- a/drivers/target/loopback/tcm_loop.c
+++ b/drivers/target/loopback/tcm_loop.c
@@ -239,6 +239,7 @@ static void tcm_loop_submission_work(struct work_struct *work)
return;
out_done:
+ kmem_cache_free(tcm_loop_cmd_cache, tl_cmd);
sc->scsi_done(sc);
return;
}