• G
    xics: report errors with the QEMU Error API · a005b3ef
    Greg Kurz 提交于
    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: NGreg Kurz <gkurz@linux.vnet.ibm.com>
    Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
    a005b3ef
trace-events 126.3 KB