[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 04/28] spapr_pci: remove indirection for I/O port ac
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 04/28] spapr_pci: remove indirection for I/O port access |
Date: |
Mon, 22 Jul 2013 15:54:14 +0200 |
From: Alexey Kardashevskiy <address@hidden>
This fixes endianness bugs in I/O port access.
Signed-off-by: Alexey Kardashevskiy <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
hw/ppc/spapr_pci.c | 41 ++---------------------------------------
1 file changed, 2 insertions(+), 39 deletions(-)
diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
index 318bc9d..c880a75 100644
--- a/hw/ppc/spapr_pci.c
+++ b/hw/ppc/spapr_pci.c
@@ -440,43 +440,6 @@ static void pci_spapr_set_irq(void *opaque, int irq_num,
int level)
qemu_set_irq(spapr_phb_lsi_qirq(phb, irq_num), level);
}
-static uint64_t spapr_io_read(void *opaque, hwaddr addr,
- unsigned size)
-{
- switch (size) {
- case 1:
- return cpu_inb(addr);
- case 2:
- return cpu_inw(addr);
- case 4:
- return cpu_inl(addr);
- }
- g_assert_not_reached();
-}
-
-static void spapr_io_write(void *opaque, hwaddr addr,
- uint64_t data, unsigned size)
-{
- switch (size) {
- case 1:
- cpu_outb(addr, data);
- return;
- case 2:
- cpu_outw(addr, data);
- return;
- case 4:
- cpu_outl(addr, data);
- return;
- }
- g_assert_not_reached();
-}
-
-static const MemoryRegionOps spapr_io_ops = {
- .endianness = DEVICE_LITTLE_ENDIAN,
- .read = spapr_io_read,
- .write = spapr_io_write
-};
-
/*
* MSI/MSIX memory region implementation.
* The handler handles both MSI and MSIX.
@@ -605,8 +568,8 @@ static int spapr_phb_init(SysBusDevice *s)
memory_region_add_subregion(get_system_io(), 0, &sphb->iospace);
sprintf(namebuf, "%s.io-alias", sphb->dtbusname);
- memory_region_init_io(&sphb->iowindow, OBJECT(sphb), &spapr_io_ops, sphb,
- namebuf, SPAPR_PCI_IO_WIN_SIZE);
+ memory_region_init_alias(&sphb->iowindow, OBJECT(sphb), namebuf,
+ get_system_io(), 0, SPAPR_PCI_IO_WIN_SIZE);
memory_region_add_subregion(get_system_memory(), sphb->io_win_addr,
&sphb->iowindow);
--
1.8.1.4
- [Qemu-devel] [PATCH 21/28] default-configs: add test device to all machines supporting ISA, (continued)
- [Qemu-devel] [PATCH 21/28] default-configs: add test device to all machines supporting ISA, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 22/28] default-configs: add SuperIO to SH4, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 23/28] default-configs/ppc64: add all components of i82378 SuperIO chip used by prep, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 26/28] memory: pass MemoryRegion to access_with_adjusted_size, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 24/28] qtest: add test for ISA I/O space endianness, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 27/28] memory: check memory region endianness, not target's, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 25/28] memory: move functions around, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 28/28] pc-testdev: add I/O port to test memory.c auto split/combine, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 02/28] ppc_oldworld: do not use isa_mmio, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 03/28] ppc_newworld: do not use isa_mmio, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 04/28] spapr_pci: remove indirection for I/O port access,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 01/28] sh4: do not use isa_mmio, Paolo Bonzini, 2013/07/22
- Re: [Qemu-devel] [PATCH 00/28] Memory API for 1.6: fix I/O port endianness mess, Peter Maydell, 2013/07/22
- Re: [Qemu-devel] [PATCH 00/28] Memory API for 1.6: fix I/O port endianness mess, Paolo Bonzini, 2013/07/22
- Re: [Qemu-devel] [PATCH 00/28] Memory API for 1.6: fix I/O port endianness mess, Peter Maydell, 2013/07/22
- Re: [Qemu-devel] [PATCH 00/28] Memory API for 1.6: fix I/O port endianness mess, Paolo Bonzini, 2013/07/22
- Re: [Qemu-devel] [PATCH 00/28] Memory API for 1.6: fix I/O port endianness mess, Hervé Poussineau, 2013/07/22
- Re: [Qemu-devel] [PATCH 00/28] Memory API for 1.6: fix I/O port endianness mess, Alexander Graf, 2013/07/22
- Re: [Qemu-devel] [PATCH 00/28] Memory API for 1.6: fix I/O port endianness mess, Andreas Färber, 2013/07/22
- Re: [Qemu-devel] [PATCH 00/28] Memory API for 1.6: fix I/O port endianness mess, Paolo Bonzini, 2013/07/23
Re: [Qemu-devel] [PATCH 00/28] Memory API for 1.6: fix I/O port endianness mess, Anthony Liguori, 2013/07/22