Message ID | 20241106185136.582198-1-pbonzini@redhat.com |
---|---|
State | New |
Headers | show |
Series | rust: pl011: fix device id matching | expand |
On 6/11/24 18:51, Paolo Bonzini wrote: > The offset that is compared against 0x3f8..0x400 is not shifted right. > Adjust the pattern matching. > > Cc: Pierrick Bouvier <pierrick.bouvier@linaro.org> > Cc: Manos Pitsidianakis <manos.pitsidianakis@linaro.org> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > rust/hw/char/pl011/src/device.rs | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
On Wed, 06 Nov 2024 22:56, Philippe Mathieu-Daudé <philmd@linaro.org> wrote: >On 6/11/24 18:51, Paolo Bonzini wrote: >> The offset that is compared against 0x3f8..0x400 is not shifted right. >> Adjust the pattern matching. >> >> Cc: Pierrick Bouvier <pierrick.bouvier@linaro.org> >> Cc: Manos Pitsidianakis <manos.pitsidianakis@linaro.org> >> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> >> --- >> rust/hw/char/pl011/src/device.rs | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) > >Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> > The device id reporting is still buggy even with this patch. I will send a proper fix within the day.
On Thu, Nov 7, 2024 at 2:10 PM Manos Pitsidianakis <manos.pitsidianakis@linaro.org> wrote: > On Wed, 06 Nov 2024 22:56, Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > >On 6/11/24 18:51, Paolo Bonzini wrote: > >> The offset that is compared against 0x3f8..0x400 is not shifted right. > >> Adjust the pattern matching. > >> > >> Cc: Pierrick Bouvier <pierrick.bouvier@linaro.org> > >> Cc: Manos Pitsidianakis <manos.pitsidianakis@linaro.org> > >> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > >> --- > >> rust/hw/char/pl011/src/device.rs | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > > > >Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> > > The device id reporting is still buggy even with this patch. I will send > a proper fix within the day. Sure, but can you expand on what's the breakage? Paolo
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(_) => {
The offset that is compared against 0x3f8..0x400 is not shifted right. Adjust the pattern matching. Cc: Pierrick Bouvier <pierrick.bouvier@linaro.org> Cc: Manos Pitsidianakis <manos.pitsidianakis@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- rust/hw/char/pl011/src/device.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)