Browse Source

hw/omap_gpio: Fix infinite recursion when doing 8/16 bit reads

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 <peter.maydell@linaro.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Peter Maydell 13 years ago
parent
commit
e1556ad5b8
1 changed files with 1 additions and 1 deletions
  1. 1 1
      hw/omap_gpio.c

+ 1 - 1
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)
 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,
 static void omap2_gpio_module_writep(void *opaque, target_phys_addr_t addr,