lkml.org 
[lkml]   [1997]   [Jan]   [30]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
DateThu, 30 Jan 1997 02:32:33 -0500
From"David S. Miller" <>
SubjectRe: 2.1.24 / DOSEMU / DOS 7
Please try this patch:

--- arch/i386/kernel/vm86.c.~1~	Sun Jan 26 05:07:05 1997
+++ arch/i386/kernel/vm86.c	Thu Jan 30 02:34:19 1997
@@ -454,7 +454,9 @@
 	return ret;
 }
 
-
+/* This always gets called while holding kernel lock already, from
+ * traps.c:do_general_protection().
+ */
 void handle_vm86_fault(struct kernel_vm86_regs * regs, long error_code)
 {
 	unsigned char *csp, *ssp;
@@ -466,9 +468,8 @@
 #define VM86_FAULT_RETURN \
 	if (VMPI.force_return_for_pic  && (VEFLAGS & IF_MASK)) \
 		return_to_32bit(regs, VM86_PICRETURN); \
-	goto out;
+	return;
 	                                   
-	lock_kernel();
 	csp = (unsigned char *) (regs->cs << 4);
 	ssp = (unsigned char *) (regs->ss << 4);
 	sp = SP(regs);
@@ -532,7 +533,7 @@
 				return_to_32bit(regs, VM86_INTx + (intno << 8));
 		}
 		do_int(regs, intno, ssp, sp);
-		goto out;
+		return;
 	}
 
 	/* iret */
@@ -565,8 +566,6 @@
 	default:
 		return_to_32bit(regs, VM86_UNKNOWN);
 	}
-out:
-	unlock_kernel();
 }
 
 /* ---------------- vm86 special IRQ passing stuff ----------------- */
\
 
 \ /
  Last update: 2005-03-22 12:38    [W:1.176 / U:0.160 seconds]
©2003-2008 Jasper Spaans