On Thu, Apr 10, 2014 at 04:29:39PM +0300, Marcel Apfelbaum wrote:
v2 -> v3:
- Addressed Michael S. Tsirkin's comments:
- I/O and Prefetchable Memory are optional. Do not allocate ranges if they are not implemented (2/2).
- Note that 2/2 patch can be seen as a separate fix. However, it is related to ranges reservation.
v1 -> v2:
- Thanks Gerd Hoffmann for the review.
- Addressed Michael S. Tsirkin's comments:
- Limit capabilities query to 256 iterations, to make sure we don't get into an infinite loop with a broken device.
An additional possible enhancement would be to avoid allocating for devices that are behind a non IO forwarding bridge.
Can be a patch on top.
If a pci-2-pci bridge supports hot-plug functionality but there are no devices connected to it, reserve IO/mem in order to be able to attach devices later. Do not waste space, use minimum allowed.
Marcel Apfelbaum (2): hw/pci: reserve IO and mem for pci-2-pci bridges with no devices attached hw/pci: check if pci2pci bridges implement optional limit registers
src/fw/pciinit.c | 12 +++++----- src/hw/pci.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hw/pci.h | 10 +++++++++ 3 files changed, 82 insertions(+), 7 deletions(-)
-- 1.8.3.1