[Skiboot] [PATCH v2 1/9] core/pci: Return error on invalid power state transition

Andrew Donnellan andrew.donnellan at au1.ibm.com
Thu Oct 13 15:18:10 AEDT 2016


On 13/10/16 12:16, Gavin Shan wrote:
> This returns error (OPAL_PARAMETER) when having invalid power state
> transition requests. The invalid requests include: ON to ON, OFF to
> OFF.
>
> Signed-off-by: Gavin Shan <gwshan at linux.vnet.ibm.com>

What's the advantage of doing this rather than immediately returning 
OPAL_SUCCESS?

> ---
>  core/pcie-slot.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/core/pcie-slot.c b/core/pcie-slot.c
> index 6854ef1..7fe3785 100644
> --- a/core/pcie-slot.c
> +++ b/core/pcie-slot.c
> @@ -199,13 +199,13 @@ static int64_t pcie_slot_set_power_state(struct pci_slot *slot, uint8_t val)
>  	uint32_t ecap;
>  	uint16_t state;
>
> +	if (slot->power_state == val)
> +		return OPAL_PARAMETER;
> +
>  	/* Drop the request if functionality doesn't exist */
>  	if (!(slot->slot_cap & PCICAP_EXP_SLOTCAP_PWCTRL))
>  		return OPAL_SUCCESS;
>
> -	if (slot->power_state == val)
> -		return OPAL_SUCCESS;
> -
>  	pci_slot_set_state(slot, PCI_SLOT_STATE_SPOWER_START);
>  	slot->power_state = val;
>  	ecap = pci_cap(pd, PCI_CFG_CAP_ID_EXP, false);
>

-- 
Andrew Donnellan              OzLabs, ADL Canberra
andrew.donnellan at au1.ibm.com  IBM Australia Limited



More information about the Skiboot mailing list