From 95e49827fd83c66ef63c9274ba157bb872a044d3 Mon Sep 17 00:00:00 2001 From: ranma Date: Tue, 11 Nov 2003 10:39:36 +0000 Subject: Fix pthread & lrmi segfault issue. ("Oleg I. Vdovikin" ) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11435 b3059339-0415-0410-9bf9-f77b7e298cf2 --- osdep/lrmi.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'osdep') diff --git a/osdep/lrmi.c b/osdep/lrmi.c index 12dd6e4c3c..c8aac7700c 100644 --- a/osdep/lrmi.c +++ b/osdep/lrmi.c @@ -11,6 +11,7 @@ This software has NO WARRANTY. Use it at your own risk. Original location: http://cvs.debian.org/lrmi/ */ +#include #include #include #include @@ -789,10 +790,17 @@ static int run_vm86(void) { unsigned int vret; + sigset_t allsigs, cursigs; + unsigned long oldgs; while (1) { + sigfillset(&allsigs); + sigprocmask(SIG_SETMASK, &allsigs, &cursigs); + asm volatile ("movl %%gs, %0" : "=g" (oldgs)); vret = lrmi_vm86(&context.vm); + asm volatile ("movl %0, %%gs" :: "g" (oldgs)); + sigprocmask(SIG_SETMASK, &cursigs, NULL); if (VM86_TYPE(vret) == VM86_INTx) { -- cgit v1.2.3