OSDN Git Service

linuxboot: fix gdt address calculation
authorAvi Kivity <avi@redhat.com>
Thu, 24 Dec 2009 13:38:50 +0000 (15:38 +0200)
committerAnthony Liguori <aliguori@us.ibm.com>
Fri, 8 Jan 2010 15:58:41 +0000 (09:58 -0600)
commitd0652aa8ac8d82e077acf8e781557f4c4367dcf5
tree157fa2fc7a9f34a28c0f7405b700303be521d215
parent810f49b56a5d0cd6848856af51d3093ae9adc7b1
linuxboot: fix gdt address calculation

The gdt address calculation in linuxboot.bin is broken in two ways: first
it loads %cs into %eax, but that instruction leaves the high bits of %eax
undefined and we did not clear them.  Secondly, we completely ignore the
incorrect %eax, and use the undefined %ebx instead.

With these issues fixed, linuxboot works again.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
pc-bios/optionrom/linuxboot.S