aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.19/950-0489-staging-mmal-vchiq-Replace-spinlock-protecting-conte.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0489-staging-mmal-vchiq-Replace-spinlock-protecting-conte.patch')
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0489-staging-mmal-vchiq-Replace-spinlock-protecting-conte.patch67
1 files changed, 0 insertions, 67 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0489-staging-mmal-vchiq-Replace-spinlock-protecting-conte.patch b/target/linux/brcm2708/patches-4.19/950-0489-staging-mmal-vchiq-Replace-spinlock-protecting-conte.patch
deleted file mode 100644
index 7b2744d743..0000000000
--- a/target/linux/brcm2708/patches-4.19/950-0489-staging-mmal-vchiq-Replace-spinlock-protecting-conte.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 39464cbb618af3ddf6427d77b0c0be0042bcaaf9 Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson@raspberrypi.org>
-Date: Wed, 1 May 2019 15:17:00 +0100
-Subject: [PATCH 489/703] staging: mmal-vchiq: Replace spinlock protecting
- context_map with mutex
-
-950fd86 staging: bcm2835-camera: Replace open-coded idr with a struct idr.
-replaced an internal implementation of an idr with the standard functions
-and a spinlock.
-idr_alloc(GFP_KERNEL) can sleep whilst calling kmem_cache_alloc to allocate
-the new node, but this is not valid whilst in an atomic context due to the
-spinlock.
-
-There is no need for this to be a spinlock as a standard mutex is
-sufficient.
-
-Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
----
- .../staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
---- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
-+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
-@@ -185,7 +185,8 @@ struct vchiq_mmal_instance {
- void *bulk_scratch;
-
- struct idr context_map;
-- spinlock_t context_map_lock;
-+ /* protect accesses to context_map */
-+ struct mutex context_map_lock;
-
- struct vchiq_mmal_component component[VCHIQ_MMAL_MAX_COMPONENTS];
-
-@@ -209,10 +210,10 @@ get_msg_context(struct vchiq_mmal_instan
- * that when we service the VCHI reply, we can look up what
- * message is being replied to.
- */
-- spin_lock(&instance->context_map_lock);
-+ mutex_lock(&instance->context_map_lock);
- handle = idr_alloc(&instance->context_map, msg_context,
- 0, 0, GFP_KERNEL);
-- spin_unlock(&instance->context_map_lock);
-+ mutex_unlock(&instance->context_map_lock);
-
- if (handle < 0) {
- kfree(msg_context);
-@@ -236,9 +237,9 @@ release_msg_context(struct mmal_msg_cont
- {
- struct vchiq_mmal_instance *instance = msg_context->instance;
-
-- spin_lock(&instance->context_map_lock);
-+ mutex_lock(&instance->context_map_lock);
- idr_remove(&instance->context_map, msg_context->handle);
-- spin_unlock(&instance->context_map_lock);
-+ mutex_unlock(&instance->context_map_lock);
- kfree(msg_context);
- }
-
-@@ -2143,7 +2144,7 @@ int vchiq_mmal_init(struct vchiq_mmal_in
-
- instance->bulk_scratch = vmalloc(PAGE_SIZE);
-
-- spin_lock_init(&instance->context_map_lock);
-+ mutex_init(&instance->context_map_lock);
- idr_init_base(&instance->context_map, 1);
-
- params.callback_param = instance;