summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorArun Kumar Neelakantam <aneela@codeaurora.org>2017-11-17 16:31:50 +0530
committerArun Kumar Neelakantam <aneela@codeaurora.org>2018-06-22 15:30:26 +0530
commit44154c0e0333423beecf818bf90da42ca327f20e (patch)
treeac6b4962d7229422ead1c0c5cabd136bd64fa31c /drivers
parent318dc882ca4897e15d59abe29a45d567821f554a (diff)
soc: qcom: smem: Add secure device check for smem dump
In peripheral SSR case SMEM dump is collected and stored which is not expected on secude devices. Add a check and avoid dumping SMEM on secure device. CRs-Fixed: 2264360 Change-Id: I2895aeb86d97b45dcb3ea293aa79a06174b8ac0b Signed-off-by: Arun Kumar Neelakantam <aneela@codeaurora.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/soc/qcom/msm_smem.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/drivers/soc/qcom/msm_smem.c b/drivers/soc/qcom/msm_smem.c
index a94f741c2056..cf3e0e084ab4 100644
--- a/drivers/soc/qcom/msm_smem.c
+++ b/drivers/soc/qcom/msm_smem.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2017, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2013-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
@@ -26,6 +26,7 @@
#include <soc/qcom/subsystem_notif.h>
#include <soc/qcom/subsystem_restart.h>
#include <soc/qcom/ramdump.h>
+#include <soc/qcom/scm.h>
#include <soc/qcom/smem.h>
@@ -1085,12 +1086,15 @@ static __init int modem_restart_late_init(void)
void *handle;
struct restart_notifier_block *nb;
- if (smem_dev)
- smem_ramdump_dev = create_ramdump_device("smem", smem_dev);
- if (IS_ERR_OR_NULL(smem_ramdump_dev)) {
- LOG_ERR("%s: Unable to create smem ramdump device.\n",
- __func__);
- smem_ramdump_dev = NULL;
+ if (scm_is_secure_device()) {
+ if (smem_dev)
+ smem_ramdump_dev = create_ramdump_device("smem",
+ smem_dev);
+ if (IS_ERR_OR_NULL(smem_ramdump_dev)) {
+ LOG_ERR("%s: Unable to create smem ramdump device.\n",
+ __func__);
+ smem_ramdump_dev = NULL;
+ }
}
for (i = 0; i < ARRAY_SIZE(restart_notifiers); i++) {