diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-4.19/950-0420-staging-vchiq-mmal-Fix-memory-leak-of-vchiq-instance.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-4.19/950-0420-staging-vchiq-mmal-Fix-memory-leak-of-vchiq-instance.patch | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/target/linux/bcm27xx/patches-4.19/950-0420-staging-vchiq-mmal-Fix-memory-leak-of-vchiq-instance.patch b/target/linux/bcm27xx/patches-4.19/950-0420-staging-vchiq-mmal-Fix-memory-leak-of-vchiq-instance.patch deleted file mode 100644 index f761ad7872..0000000000 --- a/target/linux/bcm27xx/patches-4.19/950-0420-staging-vchiq-mmal-Fix-memory-leak-of-vchiq-instance.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 3e246d402582c6f19e5e636f89952d11e18e6442 Mon Sep 17 00:00:00 2001 -From: Dave Stevenson <dave.stevenson@raspberrypi.org> -Date: Fri, 3 May 2019 13:27:51 +0100 -Subject: [PATCH] staging: vchiq-mmal: Fix memory leak of vchiq - instance - -The vchiq instance was allocated from vchiq_mmal_init via -vchi_initialise, but was never released with vchi_disconnect. - -Retain the handle and release it from vchiq_mmal_finalise. - -Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org> ---- - drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - ---- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c -+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c -@@ -176,6 +176,7 @@ struct mmal_msg_context { - }; - - struct vchiq_mmal_instance { -+ VCHI_INSTANCE_T vchi_instance; - VCHI_SERVICE_HANDLE_T handle; - - /* ensure serialised access to service */ -@@ -1981,7 +1982,7 @@ EXPORT_SYMBOL_GPL(vchiq_mmal_component_i - int vchiq_mmal_component_finalise(struct vchiq_mmal_instance *instance, - struct vchiq_mmal_component *component) - { -- int ret, idx; -+ int ret; - - if (mutex_lock_interruptible(&instance->vchiq_mutex)) - return -EINTR; -@@ -2094,6 +2095,8 @@ int vchiq_mmal_finalise(struct vchiq_mma - - idr_destroy(&instance->context_map); - -+ vchi_disconnect(instance->vchi_instance); -+ - kfree(instance); - - return status; -@@ -2105,7 +2108,7 @@ int vchiq_mmal_init(struct vchiq_mmal_in - int status; - struct vchiq_mmal_instance *instance; - static VCHI_CONNECTION_T *vchi_connection; -- static VCHI_INSTANCE_T vchi_instance; -+ VCHI_INSTANCE_T vchi_instance; - SERVICE_CREATION_T params = { - .version = VCHI_VERSION_EX(VC_MMAL_VER, VC_MMAL_MIN_VER), - .service_id = VC_MMAL_SERVER_NAME, -@@ -2151,6 +2154,8 @@ int vchiq_mmal_init(struct vchiq_mmal_in - if (!instance) - return -ENOMEM; - -+ instance->vchi_instance = vchi_instance; -+ - mutex_init(&instance->vchiq_mutex); - - instance->bulk_scratch = vmalloc(PAGE_SIZE); |