[PATCH 07/11] pci/hotplug/pnv-php: Improve error msg on power state change failure

Alastair D'Silva alastair at au1.ibm.com
Tue Sep 10 10:59:49 AEST 2019


On Mon, 2019-09-09 at 17:45 +0200, Frederic Barrat wrote:
> When changing the slot state, if opal hits an error and tells as such
> in the asynchronous reply, the warning "Wrong msg" is logged, which
> is
> rather confusing. Instead we can reuse the better message which is
> already used when we couldn't submit the asynchronous opal request
> initially.
> 
> Signed-off-by: Frederic Barrat <fbarrat at linux.ibm.com>
> ---
>  drivers/pci/hotplug/pnv_php.c | 16 +++++++++++-----
>  1 file changed, 11 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/pci/hotplug/pnv_php.c
> b/drivers/pci/hotplug/pnv_php.c
> index 5b5cbf1e636d..304bdbcdb77c 100644
> --- a/drivers/pci/hotplug/pnv_php.c
> +++ b/drivers/pci/hotplug/pnv_php.c
> @@ -336,18 +336,19 @@ int pnv_php_set_slot_power_state(struct
> hotplug_slot *slot,
>  	ret = pnv_pci_set_power_state(php_slot->id, state, &msg);
>  	if (ret > 0) {
>  		if (be64_to_cpu(msg.params[1]) != php_slot->dn->phandle
> 	||
> -		    be64_to_cpu(msg.params[2]) != state			
> ||
> -		    be64_to_cpu(msg.params[3]) != OPAL_SUCCESS) {
> +		    be64_to_cpu(msg.params[2]) != state) {
>  			pci_warn(php_slot->pdev, "Wrong msg (%lld,
> %lld, %lld)\n",
>  				 be64_to_cpu(msg.params[1]),
>  				 be64_to_cpu(msg.params[2]),
>  				 be64_to_cpu(msg.params[3]));
>  			return -ENOMSG;
>  		}
> +		if (be64_to_cpu(msg.params[3]) != OPAL_SUCCESS) {
> +			ret = -ENODEV;
> +			goto error;
> +		}
>  	} else if (ret < 0) {
> -		pci_warn(php_slot->pdev, "Error %d powering %s\n",
> -			 ret, (state == OPAL_PCI_SLOT_POWER_ON) ? "on"
> : "off");
> -		return ret;
> +		goto error;
>  	}
>  
>  	if (state == OPAL_PCI_SLOT_POWER_OFF || state ==
> OPAL_PCI_SLOT_OFFLINE)
> @@ -356,6 +357,11 @@ int pnv_php_set_slot_power_state(struct
> hotplug_slot *slot,
>  		ret = pnv_php_add_devtree(php_slot);
>  
>  	return ret;
> +
> +error:
> +	pci_warn(php_slot->pdev, "Error %d powering %s\n",
> +		 ret, (state == OPAL_PCI_SLOT_POWER_ON) ? "on" :
> "off");
> +	return ret;
>  }
>  EXPORT_SYMBOL_GPL(pnv_php_set_slot_power_state);
>  

Reviewed-by: Alastair D'Silva <alastair at d-silva.org>

-- 
Alastair D'Silva
Open Source Developer
Linux Technology Centre, IBM Australia
mob: 0423 762 819



More information about the Linuxppc-dev mailing list