aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorBlue Swirl <blauwirbel@gmail.com>2010-10-02 14:27:41 +0000
committerBlue Swirl <blauwirbel@gmail.com>2010-10-02 14:27:41 +0000
commit3f7132d1a35040331ae4541f010713b835be75e3 (patch)
treec91ee1faef87dc1ac6d7b38dfabad575decba290 /hw
parent211ecdc0e4226e86c406b0ce91ed355fdde021ab (diff)
downloadqemu-3f7132d1a35040331ae4541f010713b835be75e3.zip
qemu-3f7132d1a35040331ae4541f010713b835be75e3.tar.gz
qemu-3f7132d1a35040331ae4541f010713b835be75e3.tar.bz2
sysbus: fix address truncation
Fix address truncation in sysbus by using a wider type. Reported-by: Artyom Tarasenko <atar4qemu@googlemail.com> Tested-by: Andreas Färber <andreas.faerber@web.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/sysbus.c3
-rw-r--r--hw/sysbus.h5
2 files changed, 5 insertions, 3 deletions
diff --git a/hw/sysbus.c b/hw/sysbus.c
index 1f7f138..d817721 100644
--- a/hw/sysbus.c
+++ b/hw/sysbus.c
@@ -82,7 +82,8 @@ void sysbus_pass_irq(SysBusDevice *dev, SysBusDevice *target)
}
}
-void sysbus_init_mmio(SysBusDevice *dev, target_phys_addr_t size, int iofunc)
+void sysbus_init_mmio(SysBusDevice *dev, target_phys_addr_t size,
+ ram_addr_t iofunc)
{
int n;
diff --git a/hw/sysbus.h b/hw/sysbus.h
index 1a8f289..5980901 100644
--- a/hw/sysbus.h
+++ b/hw/sysbus.h
@@ -21,7 +21,7 @@ struct SysBusDevice {
target_phys_addr_t addr;
target_phys_addr_t size;
mmio_mapfunc cb;
- int iofunc;
+ ram_addr_t iofunc;
} mmio[QDEV_MAX_MMIO];
};
@@ -39,7 +39,8 @@ typedef struct {
void sysbus_register_dev(const char *name, size_t size, sysbus_initfn init);
void sysbus_register_withprop(SysBusDeviceInfo *info);
void *sysbus_new(void);
-void sysbus_init_mmio(SysBusDevice *dev, target_phys_addr_t size, int iofunc);
+void sysbus_init_mmio(SysBusDevice *dev, target_phys_addr_t size,
+ ram_addr_t iofunc);
void sysbus_init_mmio_cb(SysBusDevice *dev, target_phys_addr_t size,
mmio_mapfunc cb);
void sysbus_init_irq(SysBusDevice *dev, qemu_irq *p);