qemu/include
Greg Kurz a005b3ef50 xics: report errors with the QEMU Error API
Using the return value to report errors is error prone:
- xics_alloc() returns -1 on error but spapr_vio_busdev_realize() errors
  on 0
- xics_alloc_block() returns the unclear value of ics->offset - 1 on error
  but both rtas_ibm_change_msi() and spapr_phb_realize() error on 0

This patch adds an errp argument to xics_alloc() and xics_alloc_block() to
report errors. The return value of these functions is a valid IRQ number
if errp is NULL. It is undefined otherwise.

The corresponding error traces get promotted to error messages. Note that
the "can't allocate IRQ" error message in spapr_vio_busdev_realize() also
moves to xics_alloc(). Similar error message consolidation isn't really
applicable to xics_alloc_block() because callers have extra context (device
config address, MSI or MSIX).

This fixes the issues mentioned above.

Based on previous work from Brian W. Hart.

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2016-02-28 16:19:02 +11:00
..
block include: Clean up includes 2016-02-23 12:43:05 +00:00
crypto include: Clean up includes 2016-02-23 12:43:05 +00:00
disas disas: Add print_insn to disassemble info 2015-07-09 15:20:40 +02:00
exec * Asynchronous dump-guest-memory from Peter 2016-02-25 15:30:57 +00:00
fpu include: Clean up includes 2016-02-23 12:43:05 +00:00
hw xics: report errors with the QEMU Error API 2016-02-28 16:19:02 +11:00
io include: Clean up includes 2016-02-23 12:43:05 +00:00
libdecnumber include: Clean up includes 2016-02-23 12:43:05 +00:00
migration migration (ordinary): move bdrv_invalidate_cache_all of of coroutine context 2016-02-26 20:39:50 +05:30
monitor qom: add helpers for UserCreatable object types 2016-02-16 17:12:57 +01:00
net include: Clean up includes 2016-02-23 12:43:05 +00:00
qapi include: Clean up includes 2016-02-23 12:43:05 +00:00
qemu * Asynchronous dump-guest-memory from Peter 2016-02-25 15:30:57 +00:00
qom include: Clean up includes 2016-02-23 12:43:05 +00:00
standard-headers linux-headers: update from kvm/next 2015-12-17 15:24:34 +01:00
sysemu * Asynchronous dump-guest-memory from Peter 2016-02-25 15:30:57 +00:00
ui spice: initial opengl/virgl support, postcopy migration fix. 2016-02-23 16:14:17 +00:00
config.h include: Clean up includes 2016-02-23 12:43:05 +00:00
elf.h include: Clean up includes 2016-02-23 12:43:05 +00:00
glib-compat.h glib: add compatibility interface for g_hash_table_add() 2015-10-30 09:01:03 +01:00
qemu-common.h * Asynchronous dump-guest-memory from Peter 2016-02-25 15:30:57 +00: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