1. 26 Aug, 2007 1 commit
  2. 11 Aug, 2007 29 commits
  3. 10 Aug, 2007 8 commits
  4. 09 Aug, 2007 2 commits
    • Rusty Russell's avatar
      lguest: Fix Malicious Guest GDT Host Crash · 0d027c01
      Rusty Russell authored
      
      
      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: default avatarRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0d027c01
    • Rusty Russell's avatar
      Fix non-TSC guest clocksource lockup · 37250097
      Rusty Russell authored
      
      
      lguest uses a host-supplied wallclock-based clocksource when the TSC
      is not reliable.  As this is already in nanoseconds, I naively used a
      multiplier of 1 and a shift of 0.
      
      But update_wall_time() in its infinite wisdom decides to adjust the
      clock a little (where does it think it's getting a more accurate time
      from?)
      
      It will happily tweak the multiplier... to 0, then -1.
      
      So the "fix" is to use a shift of 22 like everyone else, and a
      multiplier of 1 << 22.
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      37250097