OSDN Git Service

soc: qcom: Clear the memory before freeing it up
authorAvaneesh Kumar Dwivedi <akdwived@codeaurora.org>
Mon, 24 Apr 2017 16:21:42 +0000 (21:51 +0530)
committerGerrit - the friendly Code Review server <code-review@localhost>
Fri, 28 Apr 2017 12:28:51 +0000 (05:28 -0700)
It is a case of write after free, this is causing page allocation
failure due to corruption. This is due to freeing up of segments
allocated for venus subsystem, when venus fw loading fail midway.

Change-Id: I0019a05b1d1336dcf361264607597430e5f1625a
Signed-off-by: Avaneesh Kumar Dwivedi <akdwived@codeaurora.org>
drivers/soc/qcom/peripheral-loader.c

index 6e5ddc4..3415338 100644 (file)
@@ -917,13 +917,13 @@ out:
                                                priv->region_start),
                                        VMID_HLOS);
                        }
+                       if (desc->clear_fw_region && priv->region_start)
+                               pil_clear_segment(desc);
                        dma_free_attrs(desc->dev, priv->region_size,
                                        priv->region, priv->region_start,
                                        &desc->attrs);
                        priv->region = NULL;
                }
-               if (desc->clear_fw_region && priv->region_start)
-                       pil_clear_segment(desc);
                pil_release_mmap(desc);
        }
        return ret;