@@ -99,7 +99,7 @@ static void write_mailbox(struct kvm_vcpu *vcpu, int offset, uint64_t data, int
9999static int send_ipi_data (struct kvm_vcpu * vcpu , gpa_t addr , uint64_t data )
100100{
101101 int i , idx , ret ;
102- uint32_t val = 0 , mask = 0 ;
102+ uint64_t val = 0 , mask = 0 ;
103103
104104 /*
105105 * Bit 27-30 is mask for byte writing.
@@ -108,7 +108,7 @@ static int send_ipi_data(struct kvm_vcpu *vcpu, gpa_t addr, uint64_t data)
108108 if ((data >> 27 ) & 0xf ) {
109109 /* Read the old val */
110110 idx = srcu_read_lock (& vcpu -> kvm -> srcu );
111- ret = kvm_io_bus_read (vcpu , KVM_IOCSR_BUS , addr , sizeof ( val ) , & val );
111+ ret = kvm_io_bus_read (vcpu , KVM_IOCSR_BUS , addr , 4 , & val );
112112 srcu_read_unlock (& vcpu -> kvm -> srcu , idx );
113113 if (unlikely (ret )) {
114114 kvm_err ("%s: : read data from addr %llx failed\n" , __func__ , addr );
@@ -124,7 +124,7 @@ static int send_ipi_data(struct kvm_vcpu *vcpu, gpa_t addr, uint64_t data)
124124 }
125125 val |= ((uint32_t )(data >> 32 ) & ~mask );
126126 idx = srcu_read_lock (& vcpu -> kvm -> srcu );
127- ret = kvm_io_bus_write (vcpu , KVM_IOCSR_BUS , addr , sizeof ( val ) , & val );
127+ ret = kvm_io_bus_write (vcpu , KVM_IOCSR_BUS , addr , 4 , & val );
128128 srcu_read_unlock (& vcpu -> kvm -> srcu , idx );
129129 if (unlikely (ret ))
130130 kvm_err ("%s: : write data to addr %llx failed\n" , __func__ , addr );
0 commit comments