You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/target/linux/bcm27xx/patches-4.19/950-0323-staging-vc-sm-cma-...

70 lines
2.0 KiB
Diff

From 6214831525192a9eb665c67fe8c93006c17acbad Mon Sep 17 00:00:00 2001
From: Dave Stevenson <dave.stevenson@raspberrypi.org>
Date: Fri, 8 Mar 2019 11:06:41 +0000
Subject: [PATCH] staging: vc-sm-cma: Use devm_ allocs for sm_state.
Use managed allocations for sm_state, removing reliance on
manual management.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
---
drivers/staging/vc04_services/vc-sm-cma/vc_sm.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
--- a/drivers/staging/vc04_services/vc-sm-cma/vc_sm.c
+++ b/drivers/staging/vc04_services/vc-sm-cma/vc_sm.c
@@ -656,7 +656,7 @@ static void vc_sm_connected_init(void)
__func__, ret);
ret = -EIO;
- goto err_free_mem;
+ goto err_failed;
}
ret = vchi_connect(NULL, 0, vchi_instance);
@@ -665,7 +665,7 @@ static void vc_sm_connected_init(void)
__func__, ret);
ret = -EIO;
- goto err_free_mem;
+ goto err_failed;
}
/* Initialize an instance of the shared memory service. */
@@ -676,7 +676,7 @@ static void vc_sm_connected_init(void)
__func__);
ret = -EPERM;
- goto err_free_mem;
+ goto err_failed;
}
/* Create a debug fs directory entry (root). */
@@ -722,8 +722,7 @@ err_remove_shared_memory:
debugfs_remove_recursive(sm_state->dir_root);
err_stop_sm_service:
vc_sm_cma_vchi_stop(&sm_state->sm_handle);
-err_free_mem:
- kfree(sm_state);
+err_failed:
pr_info("[%s]: failed, ret %d\n", __func__, ret);
}
@@ -732,7 +731,7 @@ static int bcm2835_vc_sm_cma_probe(struc
{
pr_info("%s: Videocore shared memory driver\n", __func__);
- sm_state = kzalloc(sizeof(*sm_state), GFP_KERNEL);
+ sm_state = devm_kzalloc(&pdev->dev, sizeof(*sm_state), GFP_KERNEL);
if (!sm_state)
return -ENOMEM;
sm_state->pdev = pdev;
@@ -766,7 +765,6 @@ static int bcm2835_vc_sm_cma_remove(stru
/* Free the memory for the state structure. */
mutex_destroy(&sm_state->map_lock);
- kfree(sm_state);
}
pr_debug("[%s]: end\n", __func__);