]> git.proxmox.com Git - qemu.git/blobdiff - hw/realview_gic.c
virtio: fix indirect descriptor buffer overflow
[qemu.git] / hw / realview_gic.c
index cae0f7ee7281ad95786b21b04fe8fc149b2fe4e2..db908b64399851083f456b395b94358eb89425e4 100644 (file)
@@ -39,13 +39,13 @@ static void realview_gic_cpu_write(void *opaque, target_phys_addr_t offset,
     gic_cpu_write(s, gic_get_current_cpu(), offset, value);
 }
 
-static CPUReadMemoryFunc *realview_gic_cpu_readfn[] = {
+static CPUReadMemoryFunc * const realview_gic_cpu_readfn[] = {
    realview_gic_cpu_read,
    realview_gic_cpu_read,
    realview_gic_cpu_read
 };
 
-static CPUWriteMemoryFunc *realview_gic_cpu_writefn[] = {
+static CPUWriteMemoryFunc * const realview_gic_cpu_writefn[] = {
    realview_gic_cpu_write,
    realview_gic_cpu_write,
    realview_gic_cpu_write
@@ -58,14 +58,16 @@ static void realview_gic_map(SysBusDevice *dev, target_phys_addr_t base)
     cpu_register_physical_memory(base + 0x1000, 0x1000, s->gic.iomemtype);
 }
 
-static void realview_gic_init(SysBusDevice *dev)
+static int realview_gic_init(SysBusDevice *dev)
 {
     RealViewGICState *s = FROM_SYSBUSGIC(RealViewGICState, dev);
 
     gic_init(&s->gic);
-    s->iomemtype = cpu_register_io_memory(0, realview_gic_cpu_readfn,
-                                          realview_gic_cpu_writefn, s);
+    s->iomemtype = cpu_register_io_memory(realview_gic_cpu_readfn,
+                                          realview_gic_cpu_writefn, s,
+                                          DEVICE_NATIVE_ENDIAN);
     sysbus_init_mmio_cb(dev, 0x2000, realview_gic_map);
+    return 0;
 }
 
 static void realview_gic_register_devices(void)