summaryrefslogtreecommitdiff
path: root/drivers/char
diff options
context:
space:
mode:
authorHardik Arya <harya@codeaurora.org>2018-10-09 18:07:28 +0530
committerHardik Arya <harya@codeaurora.org>2019-02-05 14:31:11 +0530
commitaca00daec5e560e9f5f63bb572296a1c711b6f5b (patch)
treebfca719c73cb9e105dd49fa950824da5d763a591 /drivers/char
parent946085b74b1073b8cc921e912cea18aa36d64f3a (diff)
diag: Update hdlc disable protection to avoid deadlock
Currently there is a possibility of deadlock while processing apps data. The patch updates the scope of hdlc_disable_mutex to avoid the deadlock situation. Change-Id: I070e1a546a016fdd854ad413c03c0bc6f192c516 Signed-off-by: Hardik Arya <harya@codeaurora.org>
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/diag/diagchar_core.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/char/diag/diagchar_core.c b/drivers/char/diag/diagchar_core.c
index 6df597dfa750..0bdda10ce845 100644
--- a/drivers/char/diag/diagchar_core.c
+++ b/drivers/char/diag/diagchar_core.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2008-2018, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2008-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -3081,13 +3081,13 @@ static int diag_user_process_apps_data(const char __user *buf, int len,
mutex_lock(&apps_data_mutex);
mutex_lock(&driver->hdlc_disable_mutex);
hdlc_disabled = driver->p_hdlc_disabled[APPS_DATA];
+ mutex_unlock(&driver->hdlc_disable_mutex);
if (hdlc_disabled)
ret = diag_process_apps_data_non_hdlc(user_space_data, len,
pkt_type);
else
ret = diag_process_apps_data_hdlc(user_space_data, len,
pkt_type);
- mutex_unlock(&driver->hdlc_disable_mutex);
mutex_unlock(&apps_data_mutex);
diagmem_free(driver, user_space_data, mempool);