On Fri, Oct 9, 2015 at 7:53 PM, Peter Crosthwaite <crosthwaitepe...@gmail.com> wrote: > The /4 for offset calculation in MMIO writes was happening twice giving > wrong write offsets. Fix. > > While touching the code, change the if-else to be a short returning if > and convert the debug message to a GUEST_ERROR, which is more accurate > for this condition. > > Cc: qemu-sta...@nongnu.org > Cc: Guenter Roeck <li...@roeck-us.net> > Signed-off-by: Peter Crosthwaite <crosthwaite.pe...@gmail.com>
We actually already had the divide by four fix internally. Reviewed-by: Alistair Francis <alistair.fran...@xilinx.com> Thanks, Alistair > --- > hw/misc/zynq_slcr.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/hw/misc/zynq_slcr.c b/hw/misc/zynq_slcr.c > index 964f253..3d78708 100644 > --- a/hw/misc/zynq_slcr.c > +++ b/hw/misc/zynq_slcr.c > @@ -393,12 +393,12 @@ static void zynq_slcr_write(void *opaque, hwaddr offset, > return; > } > > - if (!s->regs[LOCKSTA]) { > - s->regs[offset / 4] = val; > - } else { > - DB_PRINT("SCLR registers are locked. Unlock them first\n"); > + if (s->regs[LOCKSTA]) { > + qemu_log_mask(LOG_GUEST_ERROR, > + "SCLR registers are locked. Unlock them first\n"); > return; > } > + s->regs[offset] = val; > > switch (offset) { > case PSS_RST_CTRL: > -- > 1.9.1 > >