mirror of https://github.com/xqemu/xqemu.git
xen-platform: Fix IO port read/write functions
Somehow, the read/write functions handle an offset that does not exist anymore. Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
This commit is contained in:
parent
8af42882a5
commit
e7b48c97fe
|
@ -113,7 +113,7 @@ static void platform_fixed_ioport_writew(void *opaque, uint32_t addr, uint32_t v
|
||||||
{
|
{
|
||||||
PCIXenPlatformState *s = opaque;
|
PCIXenPlatformState *s = opaque;
|
||||||
|
|
||||||
switch (addr - XEN_PLATFORM_IOPORT) {
|
switch (addr) {
|
||||||
case 0:
|
case 0:
|
||||||
/* Unplug devices. Value is a bitmask of which devices to
|
/* Unplug devices. Value is a bitmask of which devices to
|
||||||
unplug, with bit 0 the IDE devices, bit 1 the network
|
unplug, with bit 0 the IDE devices, bit 1 the network
|
||||||
|
@ -152,7 +152,7 @@ static void platform_fixed_ioport_writew(void *opaque, uint32_t addr, uint32_t v
|
||||||
static void platform_fixed_ioport_writel(void *opaque, uint32_t addr,
|
static void platform_fixed_ioport_writel(void *opaque, uint32_t addr,
|
||||||
uint32_t val)
|
uint32_t val)
|
||||||
{
|
{
|
||||||
switch (addr - XEN_PLATFORM_IOPORT) {
|
switch (addr) {
|
||||||
case 0:
|
case 0:
|
||||||
/* PV driver version */
|
/* PV driver version */
|
||||||
break;
|
break;
|
||||||
|
@ -163,7 +163,7 @@ static void platform_fixed_ioport_writeb(void *opaque, uint32_t addr, uint32_t v
|
||||||
{
|
{
|
||||||
PCIXenPlatformState *s = opaque;
|
PCIXenPlatformState *s = opaque;
|
||||||
|
|
||||||
switch (addr - XEN_PLATFORM_IOPORT) {
|
switch (addr) {
|
||||||
case 0: /* Platform flags */ {
|
case 0: /* Platform flags */ {
|
||||||
hvmmem_type_t mem_type = (val & PFFLAG_ROM_LOCK) ?
|
hvmmem_type_t mem_type = (val & PFFLAG_ROM_LOCK) ?
|
||||||
HVMMEM_ram_ro : HVMMEM_ram_rw;
|
HVMMEM_ram_ro : HVMMEM_ram_rw;
|
||||||
|
@ -186,7 +186,7 @@ static uint32_t platform_fixed_ioport_readw(void *opaque, uint32_t addr)
|
||||||
{
|
{
|
||||||
PCIXenPlatformState *s = opaque;
|
PCIXenPlatformState *s = opaque;
|
||||||
|
|
||||||
switch (addr - XEN_PLATFORM_IOPORT) {
|
switch (addr) {
|
||||||
case 0:
|
case 0:
|
||||||
if (s->drivers_blacklisted) {
|
if (s->drivers_blacklisted) {
|
||||||
/* The drivers will recognise this magic number and refuse
|
/* The drivers will recognise this magic number and refuse
|
||||||
|
@ -205,7 +205,7 @@ static uint32_t platform_fixed_ioport_readb(void *opaque, uint32_t addr)
|
||||||
{
|
{
|
||||||
PCIXenPlatformState *s = opaque;
|
PCIXenPlatformState *s = opaque;
|
||||||
|
|
||||||
switch (addr - XEN_PLATFORM_IOPORT) {
|
switch (addr) {
|
||||||
case 0:
|
case 0:
|
||||||
/* Platform flags */
|
/* Platform flags */
|
||||||
return s->flags;
|
return s->flags;
|
||||||
|
@ -221,7 +221,7 @@ static void platform_fixed_ioport_reset(void *opaque)
|
||||||
{
|
{
|
||||||
PCIXenPlatformState *s = opaque;
|
PCIXenPlatformState *s = opaque;
|
||||||
|
|
||||||
platform_fixed_ioport_writeb(s, XEN_PLATFORM_IOPORT, 0);
|
platform_fixed_ioport_writeb(s, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
const MemoryRegionPortio xen_platform_ioport[] = {
|
const MemoryRegionPortio xen_platform_ioport[] = {
|
||||||
|
@ -251,7 +251,7 @@ static void platform_fixed_ioport_init(PCIXenPlatformState* s)
|
||||||
static uint32_t xen_platform_ioport_readb(void *opaque, uint32_t addr)
|
static uint32_t xen_platform_ioport_readb(void *opaque, uint32_t addr)
|
||||||
{
|
{
|
||||||
if (addr == 0) {
|
if (addr == 0) {
|
||||||
return platform_fixed_ioport_readb(opaque, XEN_PLATFORM_IOPORT);
|
return platform_fixed_ioport_readb(opaque, 0);
|
||||||
} else {
|
} else {
|
||||||
return ~0u;
|
return ~0u;
|
||||||
}
|
}
|
||||||
|
@ -263,7 +263,7 @@ static void xen_platform_ioport_writeb(void *opaque, uint32_t addr, uint32_t val
|
||||||
|
|
||||||
switch (addr) {
|
switch (addr) {
|
||||||
case 0: /* Platform flags */
|
case 0: /* Platform flags */
|
||||||
platform_fixed_ioport_writeb(opaque, XEN_PLATFORM_IOPORT, val);
|
platform_fixed_ioport_writeb(opaque, 0, val);
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
log_writeb(s, val);
|
log_writeb(s, val);
|
||||||
|
@ -321,7 +321,7 @@ static int xen_platform_post_load(void *opaque, int version_id)
|
||||||
{
|
{
|
||||||
PCIXenPlatformState *s = opaque;
|
PCIXenPlatformState *s = opaque;
|
||||||
|
|
||||||
platform_fixed_ioport_writeb(s, XEN_PLATFORM_IOPORT, s->flags);
|
platform_fixed_ioport_writeb(s, 0, s->flags);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue