summaryrefslogtreecommitdiff
path: root/drivers/soc/qcom/qdsp6v2/voice_svc.c
diff options
context:
space:
mode:
authorAditya Bavanari <abavanar@codeaurora.org>2018-04-06 18:15:43 +0530
committerAditya Bavanari <abavanar@codeaurora.org>2018-04-11 12:37:00 +0530
commit2db9527657ab1dd04ff7a3bfc052bfd325aadf02 (patch)
tree505762aede3a2ff6736404a6572b128b20c29ac8 /drivers/soc/qcom/qdsp6v2/voice_svc.c
parentc2c950b468079a41c31d819051ffb8d9ad9eac8f (diff)
voice_svc: Avoid double free in voice_svc driver
voice_svc_dev is allocated as a device managed resource and need not be freed since it is freed automatically. Remove the logic to free voice_svc_dev in probe failure and remove functions to avoid double free. CRs-Fixed: 2204285 Change-Id: If4f9ca840b00448b987f5ce443f66b0923b01969 Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
Diffstat (limited to 'drivers/soc/qcom/qdsp6v2/voice_svc.c')
-rw-r--r--drivers/soc/qcom/qdsp6v2/voice_svc.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/soc/qcom/qdsp6v2/voice_svc.c b/drivers/soc/qcom/qdsp6v2/voice_svc.c
index c560ec7d7401..f01ab2499a75 100644
--- a/drivers/soc/qcom/qdsp6v2/voice_svc.c
+++ b/drivers/soc/qcom/qdsp6v2/voice_svc.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2017, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2014-2018, 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
@@ -773,7 +773,7 @@ static int voice_svc_probe(struct platform_device *pdev)
if (ret) {
pr_err("%s: Failed to alloc chrdev\n", __func__);
ret = -ENODEV;
- goto chrdev_err;
+ goto done;
}
voice_svc_dev->major = MAJOR(device_num);
@@ -820,8 +820,6 @@ dev_err:
class_destroy(voice_svc_class);
class_err:
unregister_chrdev_region(0, MINOR_NUMBER);
-chrdev_err:
- kfree(voice_svc_dev);
done:
return ret;
}
@@ -835,7 +833,6 @@ static int voice_svc_remove(struct platform_device *pdev)
device_destroy(voice_svc_class, device_num);
class_destroy(voice_svc_class);
unregister_chrdev_region(0, MINOR_NUMBER);
- kfree(voice_svc_dev);
return 0;
}