diff options
author | Marcelo Tosatti <mtosatti@redhat.com> | 2011-02-17 01:27:19 -0200 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2011-02-17 19:34:52 +0000 |
commit | e14da0af640e4255b15d81907a93a2637e14e478 (patch) | |
tree | 695386f945956bee9e059ed54c82dd3fd3849d7c /hw/vmport.c | |
parent | 79f2b6fcdb7c06cdce6eccc796f5651f3efb843e (diff) | |
download | qemu-e14da0af640e4255b15d81907a93a2637e14e478.tar.gz qemu-e14da0af640e4255b15d81907a93a2637e14e478.tar.bz2 qemu-e14da0af640e4255b15d81907a93a2637e14e478.zip |
Fix vmport segfault (v2)
Fix regression caused by qdev conversion.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'hw/vmport.c')
-rw-r--r-- | hw/vmport.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/hw/vmport.c b/hw/vmport.c index 292d78ffb4..19010e4843 100644 --- a/hw/vmport.c +++ b/hw/vmport.c @@ -43,15 +43,15 @@ typedef struct _VMPortState void *opaque[VMPORT_ENTRIES]; } VMPortState; -static VMPortState port_state; +static VMPortState *port_state; void vmport_register(unsigned char command, IOPortReadFunc *func, void *opaque) { if (command >= VMPORT_ENTRIES) return; - port_state.func[command] = func; - port_state.opaque[command] = opaque; + port_state->func[command] = func; + port_state->opaque[command] = opaque; } static uint32_t vmport_ioport_read(void *opaque, uint32_t addr) @@ -125,9 +125,10 @@ static int vmport_initfn(ISADevice *dev) { VMPortState *s = DO_UPCAST(VMPortState, dev, dev); - register_ioport_read(0x5658, 1, 4, vmport_ioport_read, &s); - register_ioport_write(0x5658, 1, 4, vmport_ioport_write, &s); + register_ioport_read(0x5658, 1, 4, vmport_ioport_read, s); + register_ioport_write(0x5658, 1, 4, vmport_ioport_write, s); isa_init_ioport(dev, 0x5658); + port_state = s; /* Register some generic port commands */ vmport_register(VMPORT_CMD_GETVERSION, vmport_cmd_get_version, NULL); vmport_register(VMPORT_CMD_GETRAMSIZE, vmport_cmd_ram_size, NULL); |