OSDN Git Service

soc: qcom: smem: Add secure device check for smem dump
authorArun Kumar Neelakantam <aneela@codeaurora.org>
Fri, 17 Nov 2017 11:01:50 +0000 (16:31 +0530)
committerArun Kumar Neelakantam <aneela@codeaurora.org>
Fri, 22 Jun 2018 10:00:26 +0000 (15:30 +0530)
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>
drivers/soc/qcom/msm_smem.c

index a94f741..cf3e0e0 100644 (file)
@@ -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++) {