]> git.proxmox.com Git - qemu.git/commit
Revert "hw/pci: partially handle pci master abort"
authorMarcel Apfelbaum <marcel.a@redhat.com>
Sun, 10 Nov 2013 09:49:57 +0000 (11:49 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Sun, 10 Nov 2013 12:30:00 +0000 (14:30 +0200)
commit0fbf50b6ec126600dca115adb1563c657cc27695
treeeb5729dbe3d29ad830bf1aeeca6481c4200fe565
parentfe1479aa251971abd3842dee4a783d4ebace8fb8
Revert "hw/pci: partially handle pci master abort"

This reverts commit a53ae8e934cd54686875b5bcfc2f434244ee55d6.

The patch being reverted introduced a low-priority memory region
covering all 64 bit pci address space.  This exposed the following bugs
elsewhere in the code:
 1. Some memory regions have INT64_MAX size, where the
    intent was all 64 bit address space.
    This results in a sub-page region, should be UINT64_MAX.
 2. page table rendering in exec.c ignores physical address bits
    above TARGET_PHYS_ADDR_SPACE_BITS.
    Access outside this range (e.g. from device DMA, or gdb stub)
    ends up with a wrong region.  Registering a region outside this
    range leads to page table corruption.
 3. Some regions overlap PCI hole and have same priority.
    This only works as long as no device uses the overlapping address.

It doesn't look like we can resolve all issues in time for 1.7.
Let's fix the bugs first and apply afterwards for 1.8.

Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/pci/pci.c
include/hw/pci/pci_bus.h