OSDN Git Service

Merge "msm: kgsl: Add missing check for snapshot IB dump"
authorLinux Build Service Account <lnxbuild@localhost>
Sat, 29 Jun 2019 22:41:50 +0000 (15:41 -0700)
committerGerrit - the friendly Code Review server <code-review@localhost>
Sat, 29 Jun 2019 22:41:50 +0000 (15:41 -0700)
drivers/gpu/msm/adreno_snapshot.c

index 6392ec1..3cf601f 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-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
@@ -70,6 +70,19 @@ void kgsl_snapshot_push_object(struct kgsl_process_private *process,
        for (index = 0; index < objbufptr; index++) {
                if (objbuf[index].gpuaddr == gpuaddr &&
                        objbuf[index].entry->priv == process) {
+                       /*
+                        * Check if newly requested size is within the
+                        * allocated range or not, otherwise continue
+                        * with previous size.
+                        */
+                       if (!kgsl_gpuaddr_in_memdesc(
+                               &objbuf[index].entry->memdesc,
+                               gpuaddr, dwords << 2)) {
+                               KGSL_CORE_ERR(
+                                       "snapshot: IB 0x%016llx size is not within the memdesc range\n",
+                                       gpuaddr);
+                               return;
+                       }
 
                        objbuf[index].size = max_t(uint64_t,
                                                objbuf[index].size,