summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVyacheslav Cherkashin <v.cherkashin@samsung.com>2014-06-23 14:52:01 +0400
committerVyacheslav Cherkashin <v.cherkashin@samsung.com>2014-06-23 14:52:01 +0400
commit4bbcac9ff7f487c37c05feb87e3b2acc80c5426d (patch)
tree13d937bf490a9a3fca1bf2b829c87943801258a5
parentffc883a6cd0e5da5870b4fb3ea6c52acef7658bb (diff)
downloadswap-modules-4bbcac9ff7f487c37c05feb87e3b2acc80c5426d.tar.gz
swap-modules-4bbcac9ff7f487c37c05feb87e3b2acc80c5426d.tar.bz2
swap-modules-4bbcac9ff7f487c37c05feb87e3b2acc80c5426d.zip
[FIX] ret_handler_unmap() (deadlock on stop)
Change-Id: Ib82d1319327a676b93ebff2b8912aa5bf0992bc2 Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
-rw-r--r--us_manager/helper.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/us_manager/helper.c b/us_manager/helper.c
index a268cade..2ecbe42c 100644
--- a/us_manager/helper.c
+++ b/us_manager/helper.c
@@ -389,10 +389,11 @@ static int ret_handler_unmap(struct kretprobe_instance *ri,
task = current->group_leader;
if (is_kthread(task) ||
get_regs_ret_val(regs))
- return 0;
+ goto out;
remove_unmap_probes(task, (struct unmap_data *)ri->data);
+out:
atomic_dec(&unmap_cnt);
return 0;