qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] hw/omap_gpio: Fix infinite recursion when doing


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH] hw/omap_gpio: Fix infinite recursion when doing 8/16 bit reads
Date: Sat, 12 Nov 2011 00:38:00 +0000

Anthony -- you've committed a bunch of later patches but not this one:
did you miss it?

thanks
-- PMM

On 7 November 2011 13:25, Peter Maydell <address@hidden> wrote:
> Fix a long-standing bug which meant that any attempt to do an
> 8 or 16 bit read from the OMAP GPIO module would cause qemu to
> crash due to an infinite recursion.
>
> Signed-off-by: Peter Maydell <address@hidden>
> ---
> This has actually been in the code since the original OMAP2 support
> was added in 2008; we've never noticed before because the kernel happened
> to always do 32 bit accesses...
> Long term we should fix this by conversion to MemoryRegion; this is
> the minimally invasive fix for 1.0.
>
>  hw/omap_gpio.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/hw/omap_gpio.c b/hw/omap_gpio.c
> index d775df6..d630748 100644
> --- a/hw/omap_gpio.c
> +++ b/hw/omap_gpio.c
> @@ -510,7 +510,7 @@ static void omap2_gpio_module_write(void *opaque, 
> target_phys_addr_t addr,
>
>  static uint32_t omap2_gpio_module_readp(void *opaque, target_phys_addr_t 
> addr)
>  {
> -    return omap2_gpio_module_readp(opaque, addr) >> ((addr & 3) << 3);
> +    return omap2_gpio_module_read(opaque, addr & ~3) >> ((addr & 3) << 3);
>  }
>
>  static void omap2_gpio_module_writep(void *opaque, target_phys_addr_t addr,
> --
> 1.7.4.1



reply via email to

[Prev in Thread] Current Thread [Next in Thread]