Merge tag 'char-misc-3.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregk...
[cascardo/linux.git] / arch / x86 / include / asm / kvm_emulate.h
index c22bd9a..eb18117 100644 (file)
@@ -242,8 +242,8 @@ struct operand {
 
 struct fetch_cache {
        u8 data[15];
-       unsigned long start;
-       unsigned long end;
+       u8 *ptr;
+       u8 *end;
 };
 
 struct read_cache {
@@ -288,30 +288,36 @@ struct x86_emulate_ctxt {
        u8 opcode_len;
        u8 b;
        u8 intercept;
-       u8 lock_prefix;
-       u8 rep_prefix;
        u8 op_bytes;
        u8 ad_bytes;
-       u8 rex_prefix;
        struct operand src;
        struct operand src2;
        struct operand dst;
-       bool has_seg_override;
-       u8 seg_override;
-       u64 d;
        int (*execute)(struct x86_emulate_ctxt *ctxt);
        int (*check_perm)(struct x86_emulate_ctxt *ctxt);
+       /*
+        * The following six fields are cleared together,
+        * the rest are initialized unconditionally in x86_decode_insn
+        * or elsewhere
+        */
+       bool rip_relative;
+       u8 rex_prefix;
+       u8 lock_prefix;
+       u8 rep_prefix;
+       /* bitmaps of registers in _regs[] that can be read */
+       u32 regs_valid;
+       /* bitmaps of registers in _regs[] that have been written */
+       u32 regs_dirty;
        /* modrm */
        u8 modrm;
        u8 modrm_mod;
        u8 modrm_reg;
        u8 modrm_rm;
        u8 modrm_seg;
-       bool rip_relative;
+       u8 seg_override;
+       u64 d;
        unsigned long _eip;
        struct operand memop;
-       u32 regs_valid;  /* bitmaps of registers in _regs[] that can be read */
-       u32 regs_dirty;  /* bitmaps of registers in _regs[] that have been written */
        /* Fields above regs are cleared together. */
        unsigned long _regs[NR_VCPU_REGS];
        struct operand *memopp;