1. 23 10月, 2007 6 次提交
  2. 17 10月, 2007 1 次提交
    • J
      paravirt: refactor struct paravirt_ops into smaller pv_*_ops · 93b1eab3
      Jeremy Fitzhardinge 提交于
      This patch refactors the paravirt_ops structure into groups of
      functionally related ops:
      
      pv_info - random info, rather than function entrypoints
      pv_init_ops - functions used at boot time (some for module_init too)
      pv_misc_ops - lazy mode, which didn't fit well anywhere else
      pv_time_ops - time-related functions
      pv_cpu_ops - various privileged instruction ops
      pv_irq_ops - operations for managing interrupt state
      pv_apic_ops - APIC operations
      pv_mmu_ops - operations for managing pagetables
      
      There are several motivations for this:
      
      1. Some of these ops will be general to all x86, and some will be
         i386/x86-64 specific.  This makes it easier to share common stuff
         while allowing separate implementations where needed.
      
      2. At the moment we must export all of paravirt_ops, but modules only
         need selected parts of it.  This allows us to export on a case by case
         basis (and also choose which export license we want to apply).
      
      3. Functional groupings make things a bit more readable.
      
      Struct paravirt_ops is now only used as a template to generate
      patch-site identifiers, and to extract function pointers for inserting
      into jmp/calls when patching.  It is only instantiated when needed.
      Signed-off-by: NJeremy Fitzhardinge <jeremy@xensource.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Zach Amsden <zach@vmware.com>
      Cc: Avi Kivity <avi@qumranet.com>
      Cc: Anthony Liguory <aliguori@us.ibm.com>
      Cc: "Glauber de Oliveira Costa" <glommer@gmail.com>
      Cc: Jun Nakajima <jun.nakajima@intel.com>
      93b1eab3
  3. 09 8月, 2007 1 次提交
    • R
      lguest: Fix Malicious Guest GDT Host Crash · 0d027c01
      Rusty Russell 提交于
      If a Guest makes hypercall which sets a GDT entry to not present, we
      currently set any segment registers using that GDT entry to 0.
      Unfortunately, this is not sufficient: there are other ways of
      altering GDT entries which will cause a fault.
      
      The correct solution to do what Linux does: let them set any GDT value
      they want and handle the #GP when popping causes a fault.  This has
      the added benefit of making our Switcher slightly more robust in the
      case of any other bugs which cause it to fault.
      
      We kill the Guest if it causes a fault in the Switcher: it's the
      Guest's responsibility to make sure it's not using segments when it
      changes them.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0d027c01
  4. 27 7月, 2007 4 次提交
  5. 20 7月, 2007 1 次提交