1. 19 3月, 2012 1 次提交
    • A
      exec: fix write tlb entry misused as iotlb · 7859cc6e
      Avi Kivity 提交于
      A couple of code paths check the lower bits of CPUTLBEntry::addr_write
      against io_mem_ram as a way of looking for a dirty RAM page.  This works
      by accident since the value is zero, which matches all clear bits for
      TLB_INVALID, TLB_MMIO, and TLB_NOTDIRTY (indicating dirty RAM).
      
      Make it work by design by checking for the proper bits.
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      7859cc6e
  2. 18 3月, 2012 1 次提交
  3. 15 3月, 2012 1 次提交
  4. 09 3月, 2012 3 次提交
  5. 08 3月, 2012 2 次提交
  6. 05 3月, 2012 1 次提交
    • A
      memory: fix I/O port aliases · a2d33521
      Avi Kivity 提交于
      Commit e58ac72b6a0 ("ioport: change portio_list not to use
      memory_region_set_offset()") started using aliases of I/O memory
      regions.  Since the IORange used for the I/O was contained in the
      target region, the alias information (specifically, the offset
      into the region) was lost.  This broke -vga std.
      
      Fix by allocating an independent object to hold the IORange and
      also the new offset.
      
      Note that I/O memory regions were conceptually broken wrt aliases
      in a different way: an alias can cause the same region to appear
      twice in an address space, but we had just one IORange to service it.
      This patch fixes that problem as well, since we can now have multiple
      IORange/MemoryRegion associations.
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      a2d33521
  7. 29 2月, 2012 21 次提交
  8. 21 2月, 2012 3 次提交
  9. 02 2月, 2012 1 次提交
  10. 21 1月, 2012 1 次提交
    • B
      virtio-pci: Fix endianness of virtio config · 82afa586
      Benjamin Herrenschmidt 提交于
      The virtio config area in PIO space is a bit special. The initial
      header is little endian but the rest (device specific) is guest
      native endian.
      
      The PIO accessors for PCI on machines that don't have native IO ports
      assume that all PIO is little endian, which works fine for everything
      except the above.
      
      A complicated way to fix it would be to split the BAR into two memory
      regions with different endianess settings, but this isn't practical
      to do, besides, the PIO code doesn't honor region endianness anyway
      (I have a patch for that too but it isn't necessary at this stage).
      
      So I decided to go for the quick fix instead which consists of
      reverting the swap in virtio-pci in selected places, hoping that when
      we eventually do a "v2" of the virtio protocols, we sort that out once
      and for all using a fixed endian setting for everything.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      [agraf: keep virtio in libhw and determine endianness through a
              helper function in exec.c]
      Reviewed-by: NAnthony Liguori <aliguori@us.ibm.com>
      82afa586
  11. 13 1月, 2012 1 次提交
  12. 04 1月, 2012 4 次提交