• D
    spapr: Consolidate DRC state variables · 9d4c0f4f
    David Gibson 提交于
    Each DRC has three fields describing its state: isolation_state,
    allocation_state and configured.  At first this seems like a reasonable
    representation, since its based directly on the PAPR defined
    isolation-state and allocation-state indicators.  However:
      * Only a few combinations of the two fields' values are permitted
      * allocation_state isn't used at all for physical DRCs
      * The indicators are write only so they don't really have a well
        defined current value independent of each other
    
    This replaces these variables with a single state variable, whose names
    and numbers are based on the diagram in LoPAPR section 13.4.  Along with
    this we add code to check the current state on various operations and make
    sure the requested transition is permitted.
    
    Strictly speaking, this makes guest visible changes to behaviour (since we
    probably allowed some transitions we shouldn't have before).  However, a
    hypothetical guest broken by that wasn't PAPR compliant, and probably
    wouldn't have worked under PowerVM.
    Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
    Reviewed-by: NDaniel Barboza <danielhb@linux.vnet.ibm.com>
    Tested-by: NDaniel Barboza <danielhb@linux.vnet.ibm.com>
    9d4c0f4f
spapr_drc.h 9.1 KB