mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-17 18:48:36 +00:00
hw/pc.c: Fix converting of ioport_register* to MemoryRegion
The commit 258711 introduced MemoryRegion to replace ioport_region* for ioport 80h and F0h. A MemoryRegion needs to have both read and write callback otherwise a segfault will occur when an access is made. The previous behaviour of this both ioport is to return 0xffffffffffffffff. So keep this behaviour. Reported-by: Adam Lackorzynski <adam@os.inf.tu-dresden.de> Signed-off-by: Julien Grall <julien.grall@citrix.com> Tested-by: Adam Lackorzynski <adam@os.inf.tu-dresden.de> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
eb7ff6fb0b
commit
c02e1eac88
12
hw/pc.c
12
hw/pc.c
@ -103,6 +103,11 @@ static void ioport80_write(void *opaque, hwaddr addr, uint64_t data,
|
||||
{
|
||||
}
|
||||
|
||||
static uint64_t ioport80_read(void *opaque, hwaddr addr, unsigned size)
|
||||
{
|
||||
return 0xffffffffffffffff;
|
||||
}
|
||||
|
||||
/* MSDOS compatibility mode FPU exception support */
|
||||
static qemu_irq ferr_irq;
|
||||
|
||||
@ -123,6 +128,11 @@ static void ioportF0_write(void *opaque, hwaddr addr, uint64_t data,
|
||||
qemu_irq_lower(ferr_irq);
|
||||
}
|
||||
|
||||
static uint64_t ioportF0_read(void *opaque, hwaddr addr, unsigned size)
|
||||
{
|
||||
return 0xffffffffffffffff;
|
||||
}
|
||||
|
||||
/* TSC handling */
|
||||
uint64_t cpu_get_tsc(CPUX86State *env)
|
||||
{
|
||||
@ -960,6 +970,7 @@ static void cpu_request_exit(void *opaque, int irq, int level)
|
||||
|
||||
static const MemoryRegionOps ioport80_io_ops = {
|
||||
.write = ioport80_write,
|
||||
.read = ioport80_read,
|
||||
.endianness = DEVICE_NATIVE_ENDIAN,
|
||||
.impl = {
|
||||
.min_access_size = 1,
|
||||
@ -969,6 +980,7 @@ static const MemoryRegionOps ioport80_io_ops = {
|
||||
|
||||
static const MemoryRegionOps ioportF0_io_ops = {
|
||||
.write = ioportF0_write,
|
||||
.read = ioportF0_read,
|
||||
.endianness = DEVICE_NATIVE_ENDIAN,
|
||||
.impl = {
|
||||
.min_access_size = 1,
|
||||
|
Loading…
x
Reference in New Issue
Block a user