directfb: add fusion patch for hangs
The following tests hang on exit: direct_test, fusion_skirmish (From OE-Core rev: 46b8009d668478c5ed3e8b64c65f1de2a4dc25b3) Signed-off-by: Lauren Post <lauren.post@freescale.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
f1bcf10134
commit
557d1c74bf
|
@ -14,7 +14,8 @@ DEPENDS = "jpeg libpng freetype zlib tslib"
|
|||
INC_PR = "r0"
|
||||
|
||||
SRC_URI = "http://directfb.org/downloads/Core/DirectFB-1.6/DirectFB-${PV}.tar.gz \
|
||||
file://configurefix.patch"
|
||||
file://configurefix.patch \
|
||||
file://fusion.patch"
|
||||
|
||||
S = "${WORKDIR}/DirectFB-${PV}"
|
||||
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
directfb: Fix for hangs in direct_test, fusion_skirmish on exit
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Lauren Post <lauren.post@freescale.com>
|
||||
|
||||
--- a/lib/fusion/fusion.c 2013-01-18 22:57:11.000000000 +0800
|
||||
+++ b/lib/fusion/fusion.c 2013-07-04 10:42:56.502699119 +0800
|
||||
@@ -2853,9 +2853,14 @@
|
||||
direct_mutex_lock( &world->event_dispatcher_mutex );
|
||||
|
||||
while (1) {
|
||||
- if (!world->event_dispatcher_buffers)
|
||||
+ if (!world->event_dispatcher_buffers){
|
||||
direct_waitqueue_wait( &world->event_dispatcher_cond, &world->event_dispatcher_mutex );
|
||||
-
|
||||
+ if (world->dispatch_stop) {
|
||||
+ D_DEBUG_AT( Fusion_Main_Dispatch, " -> IGNORING (dispatch_stop!)\n" );
|
||||
+ direct_mutex_unlock( &world->event_dispatcher_mutex );
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ }
|
||||
buf = (FusionEventDispatcherBuffer *)world->event_dispatcher_buffers;
|
||||
D_MAGIC_ASSERT( buf, FusionEventDispatcherBuffer );
|
||||
|
||||
@@ -2872,6 +2877,11 @@
|
||||
//D_INFO("waiting...\n");
|
||||
D_ASSERT( buf->read_pos == buf->write_pos );
|
||||
direct_waitqueue_wait( &world->event_dispatcher_cond, &world->event_dispatcher_mutex );
|
||||
+ if (world->dispatch_stop) {
|
||||
+ D_DEBUG_AT( Fusion_Main_Dispatch, " -> IGNORING (dispatch_stop!)\n" );
|
||||
+ direct_mutex_unlock( &world->event_dispatcher_mutex );
|
||||
+ return NULL;
|
||||
+ }
|
||||
}
|
||||
|
||||
buf = (FusionEventDispatcherBuffer *)world->event_dispatcher_buffers;
|
Loading…
Reference in New Issue