Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Jun 2018 14:21:01 +0000 (UTC)
From:      Bruce Evans <bde@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r334924 - head/sys/i386/i386
Message-ID:  <201806101421.w5AEL1Qf049280@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bde
Date: Sun Jun 10 14:21:01 2018
New Revision: 334924
URL: https://svnweb.freebsd.org/changeset/base/334924

Log:
  Fix panics in potentially all x86bios calls on i386 since r332489.
  
  A call to npxsave() in the exception trampolines was not relocated.
  This call to a garbage address usually paniced when made, but it is only
  made when the thread has used an FPU recently, and this is not the usual
  case.
  
  PR:		228755
  Reviewed by:	kib

Modified:
  head/sys/i386/i386/vm86bios.s

Modified: head/sys/i386/i386/vm86bios.s
==============================================================================
--- head/sys/i386/i386/vm86bios.s	Sun Jun 10 10:23:31 2018	(r334923)
+++ head/sys/i386/i386/vm86bios.s	Sun Jun 10 14:21:01 2018	(r334924)
@@ -67,7 +67,8 @@ ENTRY(vm86_bioscall)
 	pushl	%edx
 	movl	TD_PCB(%ecx),%ecx
 	pushl	PCB_SAVEFPU(%ecx)
-	call	npxsave
+	movl	$npxsave,%eax
+	call	*%eax
 	addl	$4,%esp
 	popl	%edx			/* recover our pcb */
 1:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201806101421.w5AEL1Qf049280>