From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH] x86/boot: Fix BIOS memory corruption on certain IBM systems Date: Wed, 4 Dec 2013 10:09:06 +0000 Message-ID: <529EFF42.50805@eu.citrix.com> References: <1386102859-14477-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1386102859-14477-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Andrew Cooper , Xen-devel Cc: Keir Fraser , Jan Beulich List-Id: xen-devel@lists.xenproject.org On 12/03/2013 08:34 PM, Andrew Cooper wrote: > IBM System x3530 M4 BIOSes (including the latest available at the time of this > patch) will corrupt a byte at physical address 0x105ff1 to the value of 0x86 > if %esp has the value 0x00080000 when issuing an `int $0x15 (ax=0xec00)` to > inform the system about our intended operating mode. > > Xen gets unhappy when the bootloader has placed it's .text section in over > this specific region of RAM. > > After dropping into 16bit mode, initialise as much state as we possibly can to > sane values. This includes 0 for all the GPRs and %cs for %fs and %gs which > would otherwise be unreal segment selectors. > > Signed-off-by: Andrew Cooper > CC: Keir Fraser > CC: Jan Beulich > CC: George Dunlap > > --- > > George: > * This fixes a memory corruption issue, so counts towards both #1 and #2 as > far as a freeze exception goes. The general rule during the code freeze is that bug fixes are exempt from needing a freeze exception, unless the maintainers think that it's particularly risky. I suppose one could quibble about whether this is a "bug fix" or a "work-around for broken BIOS" though, so just in case: Release-acked-by: George Dunlap