KVM: x86 emulator: move linearize() downwards
authorAvi Kivity <avi@redhat.com>
Sun, 3 Apr 2011 09:33:12 +0000 (12:33 +0300)
committerAvi Kivity <avi@redhat.com>
Wed, 11 May 2011 11:57:07 +0000 (07:57 -0400)
So it can call emulate_gp() without forward declarations.

Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/emulate.c

index a2d343c..601a9bc 100644 (file)
@@ -489,21 +489,6 @@ static unsigned seg_override(struct x86_emulate_ctxt *ctxt,
        return c->seg_override;
 }
 
-static int linearize(struct x86_emulate_ctxt *ctxt,
-                    struct segmented_address addr,
-                    unsigned size, bool write,
-                    ulong *linear)
-{
-       struct decode_cache *c = &ctxt->decode;
-       ulong la;
-
-       la = seg_base(ctxt, ctxt->ops, addr.seg) + addr.ea;
-       if (c->ad_bytes != 8)
-               la &= (u32)-1;
-       *linear = la;
-       return X86EMUL_CONTINUE;
-}
-
 static int emulate_exception(struct x86_emulate_ctxt *ctxt, int vec,
                             u32 error, bool valid)
 {
@@ -543,6 +528,21 @@ static int emulate_nm(struct x86_emulate_ctxt *ctxt)
        return emulate_exception(ctxt, NM_VECTOR, 0, false);
 }
 
+static int linearize(struct x86_emulate_ctxt *ctxt,
+                    struct segmented_address addr,
+                    unsigned size, bool write,
+                    ulong *linear)
+{
+       struct decode_cache *c = &ctxt->decode;
+       ulong la;
+
+       la = seg_base(ctxt, ctxt->ops, addr.seg) + addr.ea;
+       if (c->ad_bytes != 8)
+               la &= (u32)-1;
+       *linear = la;
+       return X86EMUL_CONTINUE;
+}
+
 static int segmented_read_std(struct x86_emulate_ctxt *ctxt,
                              struct segmented_address addr,
                              void *data,