6
6
// found in the THIRD-PARTY file.
7
7
8
8
use std:: fmt:: Debug ;
9
- use std:: sync:: atomic:: { AtomicUsize , Ordering } ;
9
+ use std:: sync:: atomic:: { AtomicU32 , Ordering } ;
10
10
use std:: sync:: { Arc , Mutex , MutexGuard } ;
11
11
12
12
use utils:: byte_order;
@@ -54,7 +54,7 @@ pub struct MmioTransport {
54
54
pub ( crate ) device_status : u32 ,
55
55
pub ( crate ) config_generation : u32 ,
56
56
mem : GuestMemoryMmap ,
57
- pub ( crate ) interrupt_status : Arc < AtomicUsize > ,
57
+ pub ( crate ) interrupt_status : Arc < AtomicU32 > ,
58
58
}
59
59
60
60
impl MmioTransport {
@@ -237,7 +237,7 @@ impl MmioTransport {
237
237
}
238
238
0x34 => self . with_queue ( 0 , |q| u32:: from ( q. get_max_size ( ) ) ) ,
239
239
0x44 => self . with_queue ( 0 , |q| u32:: from ( q. ready ) ) ,
240
- 0x60 => self . interrupt_status . load ( Ordering :: SeqCst ) as u32 ,
240
+ 0x60 => self . interrupt_status . load ( Ordering :: SeqCst ) ,
241
241
0x70 => self . device_status ,
242
242
0xfc => self . config_generation ,
243
243
_ => {
@@ -292,8 +292,7 @@ impl MmioTransport {
292
292
0x44 => self . update_queue_field ( |q| q. ready = v == 1 ) ,
293
293
0x64 => {
294
294
if self . check_device_status ( device_status:: DRIVER_OK , 0 ) {
295
- self . interrupt_status
296
- . fetch_and ( !( v as usize ) , Ordering :: SeqCst ) ;
295
+ self . interrupt_status . fetch_and ( !v, Ordering :: SeqCst ) ;
297
296
}
298
297
}
299
298
0x70 => self . set_device_status ( v) ,
@@ -340,7 +339,7 @@ pub(crate) mod tests {
340
339
acked_features : u64 ,
341
340
avail_features : u64 ,
342
341
interrupt_evt : EventFd ,
343
- interrupt_status : Arc < AtomicUsize > ,
342
+ interrupt_status : Arc < AtomicU32 > ,
344
343
queue_evts : Vec < EventFd > ,
345
344
queues : Vec < Queue > ,
346
345
device_activated : bool ,
@@ -353,7 +352,7 @@ pub(crate) mod tests {
353
352
acked_features : 0 ,
354
353
avail_features : 0 ,
355
354
interrupt_evt : EventFd :: new ( libc:: EFD_NONBLOCK ) . unwrap ( ) ,
356
- interrupt_status : Arc :: new ( AtomicUsize :: new ( 0 ) ) ,
355
+ interrupt_status : Arc :: new ( AtomicU32 :: new ( 0 ) ) ,
357
356
queue_evts : vec ! [
358
357
EventFd :: new( libc:: EFD_NONBLOCK ) . unwrap( ) ,
359
358
EventFd :: new( libc:: EFD_NONBLOCK ) . unwrap( ) ,
@@ -402,7 +401,7 @@ pub(crate) mod tests {
402
401
& self . interrupt_evt
403
402
}
404
403
405
- fn interrupt_status ( & self ) -> Arc < AtomicUsize > {
404
+ fn interrupt_status ( & self ) -> Arc < AtomicU32 > {
406
405
self . interrupt_status . clone ( )
407
406
}
408
407
0 commit comments