qemu/include
David Gibson 3e4ac96871 pseries: Limit PCI host bridge "index" value
pseries guests can have large numbers of PCI host bridges.  To avoid the
user having to specify a number of different configuration values for every
one, the device supports an "index" property which is a shorthand setting
the various window and configuration addresses from a predefined sensible
set.

There are some problems with the details at present:
  * The "index" propery is signed, but negative values will create PCI
windows below where we expect, potentially colliding with other devices
  * No limit is imposed on the "index" property and large values can
translate to extremely large window addresses.  With PCI passthrough in
particular this can mean we exceed various mapping and physical address
limits causing the guest host bridge to not work in strange ways.

This patch addresses this, by making "index" unsigned, and imposing a
limit.  Currently the limit allows indices from 0..255 which is probably
enough host bridges for the time being.  It's fairly easy to extend if
we discover we need more.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
2015-03-09 14:59:54 +01:00
..
block block: Forbid bdrv_set_aio_context outside BQL 2015-02-27 14:43:45 +01:00
disas
exec pc-dimm: add a function to calculate VM's current RAM size 2015-03-04 13:00:04 -05:00
fpu softfloat: expand out STATUS macro 2015-02-06 16:11:38 +00:00
hw pseries: Limit PCI host bridge "index" value 2015-03-09 14:59:54 +01:00
libdecnumber Fix new typos in comments (found by codespell) 2014-07-18 17:45:36 +04:00
migration hmp: Clean up declarations for long-gone info handlers 2015-02-18 11:58:21 +01:00
monitor Clean up around error_get_pretty(), qerror_report_err() 2015-02-26 07:01:08 +00:00
net virtio-net,tap: use standard-headers 2015-02-26 13:04:04 +01:00
qapi error: New convenience function error_report_err() 2015-02-18 10:50:43 +01:00
qemu qemu-img: Suppress unhelpful extra errors in convert, amend 2015-02-26 14:51:21 +01:00
qom QOM infrastructure fixes and device conversions 2015-03-02 13:20:43 +00:00
standard-headers virtio_ring.h: s/__inline__/inline/ 2015-02-26 13:04:09 +01:00
sysemu pci, pc, virtio fixes and cleanups 2015-03-09 09:14:28 +00:00
ui hmp: Normalize HMP command handler names 2015-02-25 13:14:37 +00:00
config.h
elf.h tcg-sparc: Use ADDXC in addsub2_i64 2014-09-29 14:55:27 -04:00
glib-compat.h glib: add compatibility interface for g_strcmp0() 2014-10-16 23:02:31 +01:00
qemu-common.h qxl: refactor rounding up to a nearest power of 2 2015-03-03 08:33:08 +01:00
qemu-io.h qemu-io: Use BlockBackend 2015-02-16 15:07:19 +00:00
qjson.h QJSON: Add JSON writer 2015-02-05 17:16:14 +01:00
trace-tcg.h trace: [tcg] Generate TCG tracing routines 2014-08-12 14:26:12 +01:00
trace.h trace: [tcg] Include event definitions in "trace.h" 2014-08-12 14:26:12 +01:00