On Fri, Dec 11, 2015 at 5:41 AM, David Gibson <da...@gibson.dropbear.id.au> wrote: > The spapr_alloc_htab() and spapr_reset_htab() functions currently handle > all errors with error_setg(&error_abort, ...). That's correct for > spapr_reset_htab() - if anything goes wrong there, there's really nothing > we can do about it. For spapr_alloc_htab() &error_fatal would make more > sense, since it occurs during initialization. > > But in any case the callers are really better placed to decide on the error > handling. So, instead make the functions use the error propagation > infrastructure. > > While we're at it improve the messages themselves a bit, and clean up the > indentation a little. > > Signed-off-by: David Gibson <da...@gibson.dropbear.id.au> > --- > hw/ppc/spapr.c | 26 ++++++++++++++++++-------- > 1 file changed, 18 insertions(+), 8 deletions(-) > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index 91396cc..85474ee 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -1015,7 +1015,7 @@ static void emulate_spapr_hypercall(PowerPCCPU *cpu) > #define CLEAN_HPTE(_hpte) ((*(uint64_t *)(_hpte)) &= > tswap64(~HPTE64_V_HPTE_DIRTY)) > #define DIRTY_HPTE(_hpte) ((*(uint64_t *)(_hpte)) |= > tswap64(HPTE64_V_HPTE_DIRTY)) > > -static void spapr_alloc_htab(sPAPRMachineState *spapr) > +static void spapr_alloc_htab(sPAPRMachineState *spapr, Error **errp) > { > long shift; > int index; > @@ -1030,7 +1030,9 @@ static void spapr_alloc_htab(sPAPRMachineState *spapr) > * For HV KVM, host kernel will return -ENOMEM when requested > * HTAB size can't be allocated. > */ > - error_setg(&error_abort, "Failed to allocate HTAB of requested size, > try with smaller maxmem"); > + error_setg(errp, > + "Error allocating KVM hash page table, try smaller maxmem: %s", > + strerror(-shift));
Do you want to explicitly "return" from here and other places in this patch like you do in 4/11 to improve readability ? Regards, Bharata.