@@ -140,6 +140,7 @@ void init_msr_emulation(struct vcpu *vcpu)
140
140
141
141
int rdmsr_vmexit_handler (struct vcpu * vcpu )
142
142
{
143
+ int err = 0 ;
143
144
uint32_t msr ;
144
145
uint64_t v = 0UL ;
145
146
int cur_context = vcpu -> arch_vcpu .cur_context ;
@@ -151,7 +152,7 @@ int rdmsr_vmexit_handler(struct vcpu *vcpu)
151
152
switch (msr ) {
152
153
case MSR_IA32_TSC_DEADLINE :
153
154
{
154
- vlapic_rdmsr (vcpu , msr , & v );
155
+ err = vlapic_rdmsr (vcpu , msr , & v );
155
156
break ;
156
157
}
157
158
case MSR_IA32_TIME_STAMP_COUNTER :
@@ -221,7 +222,7 @@ int rdmsr_vmexit_handler(struct vcpu *vcpu)
221
222
case MSR_IA32_APIC_BASE :
222
223
{
223
224
/* Read APIC base */
224
- vlapic_rdmsr (vcpu , msr , & v );
225
+ err = vlapic_rdmsr (vcpu , msr , & v );
225
226
break ;
226
227
}
227
228
default :
@@ -245,11 +246,12 @@ int rdmsr_vmexit_handler(struct vcpu *vcpu)
245
246
246
247
TRACE_2L (TRACE_VMEXIT_RDMSR , msr , v );
247
248
248
- return 0 ;
249
+ return err ;
249
250
}
250
251
251
252
int wrmsr_vmexit_handler (struct vcpu * vcpu )
252
253
{
254
+ int err = 0 ;
253
255
uint32_t msr ;
254
256
uint64_t v ;
255
257
struct run_context * cur_context =
@@ -266,7 +268,7 @@ int wrmsr_vmexit_handler(struct vcpu *vcpu)
266
268
switch (msr ) {
267
269
case MSR_IA32_TSC_DEADLINE :
268
270
{
269
- vlapic_wrmsr (vcpu , msr , v );
271
+ err = vlapic_wrmsr (vcpu , msr , v );
270
272
break ;
271
273
}
272
274
case MSR_IA32_TIME_STAMP_COUNTER :
@@ -340,7 +342,7 @@ int wrmsr_vmexit_handler(struct vcpu *vcpu)
340
342
}
341
343
case MSR_IA32_PAT :
342
344
{
343
- vmx_wrmsr_pat (vcpu , v );
345
+ err = vmx_wrmsr_pat (vcpu , v );
344
346
break ;
345
347
}
346
348
case MSR_IA32_GS_BASE :
@@ -355,7 +357,7 @@ int wrmsr_vmexit_handler(struct vcpu *vcpu)
355
357
}
356
358
case MSR_IA32_APIC_BASE :
357
359
{
358
- vlapic_wrmsr (vcpu , msr , v );
360
+ err = vlapic_wrmsr (vcpu , msr , v );
359
361
break ;
360
362
}
361
363
default :
@@ -373,5 +375,5 @@ int wrmsr_vmexit_handler(struct vcpu *vcpu)
373
375
374
376
TRACE_2L (TRACE_VMEXIT_WRMSR , msr , v );
375
377
376
- return 0 ;
378
+ return err ;
377
379
}
0 commit comments