summaryrefslogtreecommitdiff
path: root/target/linux/brcm2708/patches-4.4/0211-vchiq_arm-Access-the-dequeue_pending-flag-locked.patch
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2016-04-24 13:03:39 +0200
committerÁlvaro Fernández Rojas <noltari@gmail.com>2016-04-24 13:03:39 +0200
commit525b311bf869d7e252d744e501e227263a955c8e (patch)
tree4c644f534e5b577b9256d26b1e9a2e4a0453698e /target/linux/brcm2708/patches-4.4/0211-vchiq_arm-Access-the-dequeue_pending-flag-locked.patch
parent0ab31bfced9666f3fb58acdb5833a93e4f4f5f7e (diff)
downloadmtk-20170518-525b311bf869d7e252d744e501e227263a955c8e.zip
mtk-20170518-525b311bf869d7e252d744e501e227263a955c8e.tar.gz
mtk-20170518-525b311bf869d7e252d744e501e227263a955c8e.tar.bz2
brcm2708: update linux 4.4 patches to latest version
As usual these patches were extracted from the raspberry pi repo: https://github.com/raspberrypi/linux/tree/rpi-4.4.y Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/brcm2708/patches-4.4/0211-vchiq_arm-Access-the-dequeue_pending-flag-locked.patch')
-rw-r--r--target/linux/brcm2708/patches-4.4/0211-vchiq_arm-Access-the-dequeue_pending-flag-locked.patch58
1 files changed, 0 insertions, 58 deletions
diff --git a/target/linux/brcm2708/patches-4.4/0211-vchiq_arm-Access-the-dequeue_pending-flag-locked.patch b/target/linux/brcm2708/patches-4.4/0211-vchiq_arm-Access-the-dequeue_pending-flag-locked.patch
deleted file mode 100644
index 77158ea..0000000
--- a/target/linux/brcm2708/patches-4.4/0211-vchiq_arm-Access-the-dequeue_pending-flag-locked.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 26eb219f0645eb9848887ca25c0a073a9a40d852 Mon Sep 17 00:00:00 2001
-From: Phil Elwell <phil@raspberrypi.org>
-Date: Wed, 23 Mar 2016 14:16:25 +0000
-Subject: [PATCH 211/232] vchiq_arm: Access the dequeue_pending flag locked
-
-Reading through this code looking for another problem (now found in userland)
-the use of dequeue_pending outside a lock didn't seem safe.
-
-Signed-off-by: Phil Elwell <phil@raspberrypi.org>
----
- .../misc/vc04_services/interface/vchiq_arm/vchiq_arm.c | 17 ++++++++++++-----
- 1 file changed, 12 insertions(+), 5 deletions(-)
-
---- a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c
-+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -279,6 +279,7 @@ service_callback(VCHIQ_REASON_T reason,
- USER_SERVICE_T *user_service;
- VCHIQ_SERVICE_T *service;
- VCHIQ_INSTANCE_T instance;
-+ int skip_completion = 0;
- DEBUG_INITIALISE(g_state.local)
-
- DEBUG_TRACE(SERVICE_CALLBACK_LINE);
-@@ -345,9 +346,6 @@ service_callback(VCHIQ_REASON_T reason,
- user_service->msg_queue[user_service->msg_insert &
- (MSG_QUEUE_SIZE - 1)] = header;
- user_service->msg_insert++;
-- spin_unlock(&msg_queue_spinlock);
--
-- up(&user_service->insert_event);
-
- /* If there is a thread waiting in DEQUEUE_MESSAGE, or if
- ** there is a MESSAGE_AVAILABLE in the completion queue then
-@@ -356,13 +354,22 @@ service_callback(VCHIQ_REASON_T reason,
- if (((user_service->message_available_pos -
- instance->completion_remove) >= 0) ||
- user_service->dequeue_pending) {
-- DEBUG_TRACE(SERVICE_CALLBACK_LINE);
- user_service->dequeue_pending = 0;
-- return VCHIQ_SUCCESS;
-+ skip_completion = 1;
- }
-
-+ spin_unlock(&msg_queue_spinlock);
-+
-+ up(&user_service->insert_event);
-+
- header = NULL;
- }
-+
-+ if (skip_completion) {
-+ DEBUG_TRACE(SERVICE_CALLBACK_LINE);
-+ return VCHIQ_SUCCESS;
-+ }
-+
- DEBUG_TRACE(SERVICE_CALLBACK_LINE);
-
- return add_completion(instance, reason, header, user_service,