From 28b5f7c06238b25732bf6f0c72c3d42b94abee66 Mon Sep 17 00:00:00 2001 From: klu2 Date: Tue, 23 Feb 2010 07:32:20 +0000 Subject: Disable interrupt when changing IDTR register. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10046 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Library/BaseLib/X64/WriteIdtr.S | 5 ++++- MdePkg/Library/BaseLib/X64/WriteIdtr.asm | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'MdePkg/Library/BaseLib/X64') diff --git a/MdePkg/Library/BaseLib/X64/WriteIdtr.S b/MdePkg/Library/BaseLib/X64/WriteIdtr.S index 544ef7929c..33365502d5 100644 --- a/MdePkg/Library/BaseLib/X64/WriteIdtr.S +++ b/MdePkg/Library/BaseLib/X64/WriteIdtr.S @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ # -# Copyright (c) 2006 - 2009, Intel Corporation +# Copyright (c) 2006 - 2010, Intel Corporation # All rights reserved. This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at @@ -31,5 +31,8 @@ #------------------------------------------------------------------------------ ASM_GLOBAL ASM_PFX(InternalX86WriteIdtr) ASM_PFX(InternalX86WriteIdtr): + pushfq + cli lidt (%rcx) + popfq ret diff --git a/MdePkg/Library/BaseLib/X64/WriteIdtr.asm b/MdePkg/Library/BaseLib/X64/WriteIdtr.asm index 2f6c081ab6..a658fe3728 100644 --- a/MdePkg/Library/BaseLib/X64/WriteIdtr.asm +++ b/MdePkg/Library/BaseLib/X64/WriteIdtr.asm @@ -1,6 +1,6 @@ ;------------------------------------------------------------------------------ ; -; Copyright (c) 2006, Intel Corporation +; Copyright (c) 2006 - 2010, Intel Corporation ; All rights reserved. This program and the accompanying materials ; are licensed and made available under the terms and conditions of the BSD License ; which accompanies this distribution. The full text of the license may be found at @@ -31,7 +31,10 @@ ; ); ;------------------------------------------------------------------------------ InternalX86WriteIdtr PROC + pushfq + cli lidt fword ptr [rcx] + popfq ret InternalX86WriteIdtr ENDP -- cgit v1.2.3