summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/platform/msm/msm_11ad/msm_11ad.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/drivers/platform/msm/msm_11ad/msm_11ad.c b/drivers/platform/msm/msm_11ad/msm_11ad.c
index e88f3d8c14d2..f1e348969c7b 100644
--- a/drivers/platform/msm/msm_11ad/msm_11ad.c
+++ b/drivers/platform/msm/msm_11ad/msm_11ad.c
@@ -836,7 +836,6 @@ static void msm_11ad_ssr_deinit(struct msm11ad_ctx *ctx)
ctx->ramdump_dev = NULL;
}
- kfree(ctx->ramdump_addr);
ctx->ramdump_addr = NULL;
if (ctx->subsys_handle) {
@@ -869,6 +868,14 @@ static int msm_11ad_ssr_init(struct msm11ad_ctx *ctx)
goto out_rc;
}
+ ctx->ramdump_dev = create_ramdump_device(ctx->subsysdesc.name,
+ ctx->subsysdesc.dev);
+ if (!ctx->ramdump_dev) {
+ dev_err(ctx->dev, "Create ramdump device failed\n");
+ rc = -ENOMEM;
+ goto out_rc;
+ }
+
/* register ramdump area */
ctx->ramdump_addr = kmalloc(WIGIG_RAMDUMP_SIZE, GFP_KERNEL);
if (!ctx->ramdump_addr) {
@@ -886,19 +893,11 @@ static int msm_11ad_ssr_init(struct msm11ad_ctx *ctx)
rc = msm_dump_data_register(MSM_DUMP_TABLE_APPS, &dump_entry);
if (rc) {
dev_err(ctx->dev, "Dump table setup failed: %d\n", rc);
- goto out_rc;
- }
-
- ctx->ramdump_dev = create_ramdump_device(ctx->subsysdesc.name,
- ctx->subsysdesc.dev);
- if (!ctx->ramdump_dev) {
- dev_err(ctx->dev, "Create ramdump device failed: %d\n", rc);
- rc = -ENOMEM;
+ kfree(ctx->ramdump_addr);
goto out_rc;
}
return 0;
-
out_rc:
msm_11ad_ssr_deinit(ctx);
return rc;