The offset that is compared against 0x3f8..0x400 is not shifted right.
Adjust the pattern matching.

Cc: Pierrick Bouvier <pierrick.bouv...@linaro.org>
Cc: Manos Pitsidianakis <manos.pitsidiana...@linaro.org>
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
---
 rust/hw/char/pl011/src/device.rs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/rust/hw/char/pl011/src/device.rs b/rust/hw/char/pl011/src/device.rs
index 2a85960b81f..6556865fc22 100644
--- a/rust/hw/char/pl011/src/device.rs
+++ b/rust/hw/char/pl011/src/device.rs
@@ -182,7 +182,7 @@ pub fn read(&mut self, offset: hwaddr, _size: c_uint) -> 
std::ops::ControlFlow<u
         use RegisterOffset::*;
 
         std::ops::ControlFlow::Break(match RegisterOffset::try_from(offset) {
-            Err(v) if (0x3f8..0x400).contains(&v) => {
+            Err(v) if (0xfe0..=0xffc).contains(&v) => {
                 u64::from(self.device_id[(offset - 0xfe0) >> 2])
             }
             Err(_) => {
-- 
2.47.0


Reply via email to