]> xenbits.xensource.com Git - xen.git/commitdiff
[IA64] fix a mmio bug
authorawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Fri, 14 Apr 2006 20:24:09 +0000 (14:24 -0600)
committerawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Fri, 14 Apr 2006 20:24:09 +0000 (14:24 -0600)
Fix a bug in mmio emulation

Signed-off-by: Anthony Xu <anthony.xu@intel.com>
xen/arch/ia64/vmx/mmio.c

index 01b31610e930a6c9b9270e053bbfcc411d3a5d51..756b731ab6a7f3440fbbe89244e77217c043b0e1 100644 (file)
@@ -489,11 +489,11 @@ void emulate_io_inst(VCPU *vcpu, u64 padr, u64 ma)
         mmio_access(vcpu, padr, &data, size, ma, dir);
     }else{
         mmio_access(vcpu, padr, &data, size, ma, dir);
-        if(size==0)
+        if(size==1)
             data = (value & 0xffffffffffffff00U) | (data & 0xffU);
-        else if(size==1)
-            data = (value & 0xffffffffffff0000U) | (data & 0xffffU);
         else if(size==2)
+            data = (value & 0xffffffffffff0000U) | (data & 0xffffU);
+        else if(size==4)
             data = (value & 0xffffffff00000000U) | (data & 0xffffffffU);
 
         if(inst_type==SL_INTEGER){       //gp