提交 3f7132d1 编写于 作者: B Blue Swirl

sysbus: fix address truncation

Fix address truncation in sysbus by using a wider type.
Reported-by: NArtyom Tarasenko <atar4qemu@googlemail.com>
Tested-by: NAndreas Färber <andreas.faerber@web.de>
Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
上级 211ecdc0
...@@ -82,7 +82,8 @@ void sysbus_pass_irq(SysBusDevice *dev, SysBusDevice *target) ...@@ -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; int n;
......
...@@ -21,7 +21,7 @@ struct SysBusDevice { ...@@ -21,7 +21,7 @@ struct SysBusDevice {
target_phys_addr_t addr; target_phys_addr_t addr;
target_phys_addr_t size; target_phys_addr_t size;
mmio_mapfunc cb; mmio_mapfunc cb;
int iofunc; ram_addr_t iofunc;
} mmio[QDEV_MAX_MMIO]; } mmio[QDEV_MAX_MMIO];
}; };
...@@ -39,7 +39,8 @@ typedef struct { ...@@ -39,7 +39,8 @@ typedef struct {
void sysbus_register_dev(const char *name, size_t size, sysbus_initfn init); void sysbus_register_dev(const char *name, size_t size, sysbus_initfn init);
void sysbus_register_withprop(SysBusDeviceInfo *info); void sysbus_register_withprop(SysBusDeviceInfo *info);
void *sysbus_new(void); 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, void sysbus_init_mmio_cb(SysBusDevice *dev, target_phys_addr_t size,
mmio_mapfunc cb); mmio_mapfunc cb);
void sysbus_init_irq(SysBusDevice *dev, qemu_irq *p); void sysbus_init_irq(SysBusDevice *dev, qemu_irq *p);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册