x86: compat_show_guest_stack() should not truncate MFN
authorJan Beulich <jbeulich@suse.com>
Mon, 7 Jan 2013 12:28:29 +0000 (13:28 +0100)
committerJan Beulich <jbeulich@suse.com>
Mon, 7 Jan 2013 12:28:29 +0000 (13:28 +0100)
Re-using "addr" here was a mistake, as it is a 32-bit quantity.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
xen/arch/x86/x86_64/compat/traps.c

index 39c5656353f7c378a51dd6e6cb2c3ab30299390a..7add636a106118f518f69dfdbad219c0a7c2db14 100644 (file)
@@ -20,11 +20,12 @@ void compat_show_guest_stack(struct vcpu *v, struct cpu_user_regs *regs,
     if ( v != current )
     {
         struct vcpu *vcpu;
+        unsigned long mfn;
 
         ASSERT(guest_kernel_mode(v, regs));
-        addr = read_cr3() >> PAGE_SHIFT;
+        mfn = read_cr3() >> PAGE_SHIFT;
         for_each_vcpu( v->domain, vcpu )
-            if ( pagetable_get_pfn(vcpu->arch.guest_table) == addr )
+            if ( pagetable_get_pfn(vcpu->arch.guest_table) == mfn )
                 break;
         if ( !vcpu )
         {