1. 16 6月, 2014 1 次提交
  2. 24 5月, 2014 1 次提交
  3. 09 5月, 2014 1 次提交
  4. 06 5月, 2014 1 次提交
  5. 01 4月, 2014 1 次提交
  6. 13 3月, 2014 1 次提交
  7. 10 2月, 2014 2 次提交
  8. 26 1月, 2014 2 次提交
  9. 23 12月, 2013 3 次提交
    • P
      qdev: switch reset to post-order · dcc20931
      Paolo Bonzini 提交于
      Post-order is the only sensible direction for the reset signals.
      For example, suppose pre-order is used and the parent has some data
      structures that cache children state (for example a list of active
      requests).  When the reset method is invoked on the parent, these caches
      could be in any state.
      
      If post-order is used, on the other hand, these will be in a known state
      when the reset method is invoked on the parent.
      
      This change means that it is no longer possible to block the visit of
      the devices, so the callback is changed to return void.  This is not
      a problem, because PCI was returning 1 exactly in order to achieve the
      same ordering that this patch implements.
      
      PCI can then rely on the qdev core having sent a "reset signal" (whatever
      that means) to the device, and only do the PCI-specific initialization
      with pci_do_device_reset.
      
      MST: fixed up virtio-ccw
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      dcc20931
    • P
      pci: clean up resetting of IRQs · 9bdbbfc3
      Paolo Bonzini 提交于
      pci_device_reset will deassert the INTX pins, and this will make the
      irq_count array all-zeroes.  Check that this is the case, and remove
      the existing loop which might even unsync irq_count and irq_state.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      9bdbbfc3
    • P
      pci: do not export pci_bus_reset · 81e3e75b
      Paolo Bonzini 提交于
      qbus_reset_all can be used instead.  There is no semantic change
      because pcibus_reset returns 1 and takes care of the device
      tree traversal.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      81e3e75b
  10. 12 12月, 2013 1 次提交
  11. 21 11月, 2013 1 次提交
  12. 10 11月, 2013 1 次提交
    • 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
  13. 14 10月, 2013 4 次提交
  14. 15 9月, 2013 2 次提交
  15. 10 9月, 2013 1 次提交
  16. 31 8月, 2013 2 次提交
  17. 27 8月, 2013 1 次提交
  18. 30 7月, 2013 1 次提交
  19. 10 7月, 2013 1 次提交
  20. 08 7月, 2013 8 次提交
    • D
      pci: Fold host_buses list into PCIHostState functionality · 7588e2b0
      David Gibson 提交于
      The host_buses list is an odd structure - a list of pointers to PCI root
      buses existing in parallel to the normal qdev tree structure.  This patch
      removes it, instead putting the link pointers into the PCIHostState
      structure, which have a 1:1 relationship to PCIHostBus structures anyway.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      7588e2b0
    • D
      pci: Remove domain from PCIHostBus · 2b8cc89a
      David Gibson 提交于
      There are now no users of the domain field of PCIHostBus, so remove it
      from the structure, and as a parameter from the pci_host_bus_register()
      function which sets it.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      2b8cc89a
    • D
      pci: Simpler implementation of primary PCI bus · 9bc47305
      David Gibson 提交于
      Currently pci_find_primary_bus() searches the list of root buses for one
      with domain 0.  But since host buses are always registered with domain 0,
      this just amounts to finding the only PCI host bus.  The only remaining
      users of pci_find_primary_bus() are in pci-hotplug-old.c, which implements
      the old style pci_add/pci_del commands.
      
      Therefore, this patch redefines pci_find_primary_bus() to find the only
      PCI root bus, returning an error if there are multiple roots.  The callers
      in pci-hotplug-old.c are updated correspondingly, to produce sensible
      error messages.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      9bc47305
    • D
      pci: Add root bus parameter to pci_nic_init() · 29b358f9
      David Gibson 提交于
      At present, pci_nic_init() and pci_nic_init_nofail() assume that they will
      only create a NIC under the primary PCI root.  As we add support for
      multiple PCI roots, that may no longer be the case.  This patch adds a root
      bus parameter to pci_nic_init() (and updates callers accordingly) to allow
      the machine init code using it to specify the right PCI root for NICs
      created by old-style -net nic parameters.  NICs created new-style, with
      -device can of course be put anywhere.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      29b358f9
    • D
      pci: Add root bus argument to pci_get_bus_devfn() · 85c6e4fa
      David Gibson 提交于
      pci_get_bus_devfn() interprets a full PCI address string to give a PCIBus *
      and device/function number within that bus.  Currently it assumes it is
      working on an address under the primary PCI root bus.  This patch extends
      it to allow the caller to specify a root bus.  This might seem a little odd
      since the supplied address can (theoretically) include a PCI domain number.
      However, attempting to use a non-zero domain number there is currently an
      error, so that shouldn't really cause problems.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      85c6e4fa
    • D
      pci: Replace pci_find_domain() with more general pci_root_bus_path() · 568f0690
      David Gibson 提交于
      pci_find_domain() is used in a number of places where we want an id for a
      whole PCI domain (i.e. the subtree under a PCI root bus).  The trouble is
      that many platforms may support multiple independent host bridges with no
      hardware supplied notion of domain number.
      
      This patch, therefore, replaces calls to pci_find_domain() with calls to
      a new pci_root_bus_path() returning a string.  The new call is implemented
      in terms of a new callback in the host bridge class, so it can be defined
      in some way that's well defined for the platform.  When no callback is
      available we fall back on the qbus name.
      
      Most current uses of pci_find_domain() are for error or informational
      messages, so the change in identifiers should be harmless.  The exception
      is pci_get_dev_path(), whose results form part of migration streams.  To
      maintain compatibility with old migration streams, the PIIX PCI host is
      altered to always supply "0000" for this path, which matches the old domain
      number (since the code didn't actually support domains other than 0).
      
      For the pseries (spapr) PCI bridge we use a different platform-unique
      identifier (pseries machines can routinely have dozens of PCI host
      bridges).  Theoretically that breaks migration streams, but given that we
      don't yet have migration support for pseries, it doesn't matter.
      
      Any other machines that have working migration support including PCI
      devices will need to be updated to maintain migration stream compatibility.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      568f0690
    • D
      pci: Use helper to find device's root bus in pci_find_domain() · c473d18d
      David Gibson 提交于
      Currently pci_find_domain() performs two functions - it locates the PCI
      root bus above the given bus, then looks up that root bus's domain number.
      This patch adds a helper function to perform the first task, finding the
      root bus for a given PCI device.  This is then used in pci_find_domain().
      This changes pci_find_domain()'s signature slightly, taking a PCIDevice
      instead of a PCIBus - since all callers passed something of the form
      dev->bus, this simplifies things slightly.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      c473d18d
    • D
      pci: Abolish pci_find_root_bus() · 1ef7a2a2
      David Gibson 提交于
      pci_find_root_bus() takes a domain parameter.  Currently PCI root buses
      with domain other than 0 can't be created, so this is more or less a long
      winded way of retrieving the main PCI root bus.  Numbered domains don't
      actually properly cover the (non x86) possibilities for multiple PCI root
      buses, so this patch for now enforces the domain == 0 restriction in other
      places to replace pci_find_root_bus() with an explicit
      pci_find_primary_bus().
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      1ef7a2a2
  21. 04 7月, 2013 3 次提交
  22. 20 6月, 2013 1 次提交