1. 18 7月, 2008 1 次提交
    • H
      x86: unify and correct the GDT_ENTRY() macro · f910d134
      H. Peter Anvin 提交于
      Impact: None (cleanup only)
      
      Merge the GDT_ENTRY() macro between arch/x86/boot/pm.c and
      arch/x86/kernel/acpi/sleep.c and put the new one in
      <asm-x86/segment.h>.
      
      While we're at it, correct the bitmasks for the limit and flags.  The
      new version relies on using ULL constants in order to cause type
      promotion rather than explicit casts; this avoids having to include
      <linux/types.h> in <asm-x86/segments.h>.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      f910d134
  2. 20 4月, 2008 1 次提交
  3. 17 4月, 2008 1 次提交
  4. 30 1月, 2008 2 次提交
  5. 11 10月, 2007 1 次提交
  6. 05 9月, 2007 1 次提交
    • C
      [x86 setup] Work around bug in Xen HVM · ce29a1f8
      Christian Ehrhardt 提交于
      Apparently XEN does not keep the contents of the 48-bit gdt_48 data
      structure that is passed to lgdt in the XEN machine state. Instead it
      appears to save the _address_ of the 48-bit descriptor
      somewhere. Unfortunately this data happens to reside on the stack and
      is probably no longer availiable at the time of the actual protected
      mode jump.
      
      This is Xen bug but given that there is a one-line patch to work
      around this problem, the linux kernel should probably do this.  My fix
      is to make the gdt_48 description in setup_gdt static (in setup_idt
      this is already the case). This allows the kernel to boot under
      Xen HVM again.
      Signed-off-by: NChristian Ehrhardt <lk@c--e.de>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      ce29a1f8
  7. 01 8月, 2007 1 次提交
  8. 19 7月, 2007 1 次提交
    • H
      [x86 setup] Fix assembly constraints · 5593eaa8
      H. Peter Anvin 提交于
      Fix incorrect assembly constraints.  In particular, fix memory
      constraints used inside push..pop, which can cause invalid operation
      since gcc may generate %esp-relative references.
      
      Additionally:
      
      outl() should have "dN" not "dn".
      
      query_mca() shouldn't listen 16/32-bit registers in an 8-bit only
      context.
      
      has_eflag(): the "mask" is only used well after both the stack pointer
      and the output registers have been touched; this requires the output
      registers to be earlyclobbers (=&) and the input to exclude memory (so
      "ri", not "g").
      
      Thanks to Etienne Lorrain and Chuck Ebbert for prompting this review.
      
      Cc: Etienne Lorrain <etienne_lorrain@yahoo.fr>
      Cc: Chuck Ebbert <cebbert@redhat.com>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      5593eaa8
  9. 13 7月, 2007 1 次提交