1. 10 11月, 2013 3 次提交
    • M
      Revert "hw/pci: partially handle pci master abort" · 0fbf50b6
      Marcel Apfelbaum 提交于
      This reverts commit a53ae8e9.
      
      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: NMarcel Apfelbaum <marcel.a@redhat.com>
      Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      0fbf50b6
    • M
      loader: drop return value for rom_add_blob_fixed · fe1479aa
      Michael S. Tsirkin 提交于
      rom_add_blob never fails, and neither does rom_add_blob_fixed,
      so there's no need to return value from it.
      
      In fact, rom_add_blob_fixed was erroneously returning -1 unconditionally
      which made the only system that checked the return value -M bamboo fail
      to start.
      
      Drop the return value and drop checks from ppc440_bamboo to
      fix this failure.
      Reported-by: NAlexander Graf <agraf@suse.de>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      fe1479aa
    • C
      Fix pc migration from qemu <= 1.5 · 04c7d8b8
      Cole Robinson 提交于
      The following commit introduced a migration incompatibility:
      
      commit 568f0690
      Author: David Gibson <david@gibson.dropbear.id.au>
      Date:   Thu Jun 6 18:48:49 2013 +1000
      
          pci: Replace pci_find_domain() with more general pci_root_bus_path()
      
      The issue is that i440fx savevm idstr went from 0000:00:00.0/I440FX to
      0000:00.0/I440FX. Unfortunately we are stuck with the breakage for
      1.6 machine types.
      
      Add a compat property to maintain the busted idstr for the 1.6 machine
      types, but revert to the old style format for 1.7+, and <= 1.5.
      
      Tested with migration from qemu 1.5, qemu 1.6, and qemu.git.
      
      Cc: qemu-stable@nongnu.org
      Signed-off-by: NCole Robinson <crobinso@redhat.com>
      Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      04c7d8b8
  2. 09 11月, 2013 1 次提交
  3. 06 11月, 2013 21 次提交
  4. 31 10月, 2013 1 次提交
    • A
      integrator: fix Linux boot failure by emulating dbg region · b8616055
      Alex Bennée 提交于
      Commit 9b8c6924 (since reverted) broke the ability to boot the kernel
      as the value returned by unassigned_mem_read returned non-zero and left
      the kernel looping forever waiting for it to change (see
      integrator_led_set in the kernel code).
      
      Relying on a varying implementation detail is incorrect anyway so this
      introduces a basic stub of a memory region for the debug/LED section
      on the integrator board.
      Signed-off-by: NAlex Bennée <alex@bennee.com>
      Message-id: 1382451366-9539-1-git-send-email-alex.bennee@linaro.org
      [PMM: removed three unused fields from struct IntegratorDebugState]
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      b8616055
  5. 30 10月, 2013 1 次提交
  6. 29 10月, 2013 1 次提交
    • K
      block: Avoid unecessary drv->bdrv_getlength() calls · b94a2610
      Kevin Wolf 提交于
      The block layer generally keeps the size of an image cached in
      bs->total_sectors so that it doesn't have to perform expensive
      operations to get the size whenever it needs it.
      
      This doesn't work however when using a backend that can change its size
      without qemu being aware of it, i.e. passthrough of removable media like
      CD-ROMs or floppy disks. For this reason, the caching is disabled when a
      removable device is used.
      
      It is obvious that checking whether the _guest_ device has removable
      media isn't the right thing to do when we want to know whether the size
      of the host backend can change. To make things worse, non-top-level
      BlockDriverStates never have any device attached, which makes qemu
      assume they are removable, so drv->bdrv_getlength() is always called on
      the protocol layer. In the case of raw-posix, this causes unnecessary
      lseek() system calls, which turned out to be rather expensive.
      
      This patch completely changes the logic and disables bs->total_sectors
      caching only for certain block driver types, for which a size change is
      expected: host_cdrom and host_floppy on POSIX, host_device on win32; also
      the raw format in case it sits on top of one of these protocols, but in
      the common case the nested bdrv_getlength() call on the protocol driver
      will use the cache again and avoid an expensive drv->bdrv_getlength()
      call.
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      b94a2610
  7. 26 10月, 2013 8 次提交
  8. 17 10月, 2013 4 次提交