diff mbox series

[1/2] PCI: kirin: use dev_err_probe() in probe error paths

Message ID 20240706-pcie-kirin-dev_err_probe-v1-1-56df797fb8ee@gmail.com (mailing list archive)
State Superseded
Delegated to: Krzysztof Wilczyński
Headers show
Series PCI: kirin: cleanup (dev_err_probe() and scoped loop) | expand

Commit Message

Javier Carrasco July 6, 2024, 3:07 p.m. UTC
dev_err_probe() is used in some probe error paths, yet the
"dev_err() + return" pattern is used in some others.

Use dev_err_probe() in all error paths with that construction.

Suggested-by: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
---
 drivers/pci/controller/dwc/pcie-kirin.c | 39 +++++++++++++--------------------
 1 file changed, 15 insertions(+), 24 deletions(-)

Comments

Christophe JAILLET July 6, 2024, 7:47 p.m. UTC | #1
Le 06/07/2024 à 17:07, Javier Carrasco a écrit :
> dev_err_probe() is used in some probe error paths, yet the
> "dev_err() + return" pattern is used in some others.
> 
> Use dev_err_probe() in all error paths with that construction.
> 
> Suggested-by: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
> Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
> ---

...

> -			if (ret < 0) {
> -				dev_err(dev, "failed to parse devfn: %d\n", ret);
> -				return ret;
> -			}
> +			if (ret < 0)
> +				return dev_err_probe(dev, ret,
> +						     "failed to parse devfn: %d\n", ret);

Hi,

with dev_err_probe(), there is no more need to add 'ret' explicitly in 
the message.

CJ
Javier Carrasco July 6, 2024, 8:12 p.m. UTC | #2
On 06/07/2024 21:47, Christophe JAILLET wrote:
> Le 06/07/2024 à 17:07, Javier Carrasco a écrit :
>> dev_err_probe() is used in some probe error paths, yet the
>> "dev_err() + return" pattern is used in some others.
>>
>> Use dev_err_probe() in all error paths with that construction.
>>
>> Suggested-by: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
>> Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
>> ---
> 
> ...
> 
>> -            if (ret < 0) {
>> -                dev_err(dev, "failed to parse devfn: %d\n", ret);
>> -                return ret;
>> -            }
>> +            if (ret < 0)
>> +                return dev_err_probe(dev, ret,
>> +                             "failed to parse devfn: %d\n", ret);
> 
> Hi,
> 
> with dev_err_probe(), there is no more need to add 'ret' explicitly in
> the message.
> 
> CJ

You are right, thank you. I will remove that from the original message
for v2.

Best regards,
Javier Carrasco
Krzysztof Wilczyński July 7, 2024, 6:53 a.m. UTC | #3
Hello,

[...]
> Use dev_err_probe() in all error paths with that construction.

Thank you for this nice refactoring!  Much appreciated.

[...]
> -	if (ret > MAX_PCI_SLOTS) {
> -		dev_err(dev, "Too many GPIO clock requests!\n");
> -		return -EINVAL;
> -	}
> +	if (ret > MAX_PCI_SLOTS)
> +		return dev_err_probe(dev, -EINVAL,
> +				     "Too many GPIO clock requests!\n");

Something that would be nice to get consistent: adjust all the errors
capitalisation to make everything consistent, as appropriate, so that it's
either all lower-case or title case.  A mix of both often looks a bit
sloppy.

Do you think this would be something you would be willing to clean up in
this series too?  Especially since we are touching this code now.

> -	if (!dev->of_node) {
> -		dev_err(dev, "NULL node\n");
> -		return -EINVAL;
> -	}
> +	if (!dev->of_node)
> +		return dev_err_probe(dev, -EINVAL, "NULL node\n");

Perhaps -ENODEV would be more appropriate here?  Also, the error message is
not the best, as such, I wonder if we could make it better while we are at
it, so to speak.

	Krzysztof
Javier Carrasco July 7, 2024, 12:19 p.m. UTC | #4
On 07/07/2024 08:53, Krzysztof Wilczyński wrote:
> Hello,
> 
> [...]
>> Use dev_err_probe() in all error paths with that construction.
> 
> Thank you for this nice refactoring!  Much appreciated.
> 
> [...]
>> -	if (ret > MAX_PCI_SLOTS) {
>> -		dev_err(dev, "Too many GPIO clock requests!\n");
>> -		return -EINVAL;
>> -	}
>> +	if (ret > MAX_PCI_SLOTS)
>> +		return dev_err_probe(dev, -EINVAL,
>> +				     "Too many GPIO clock requests!\n");
> 
> Something that would be nice to get consistent: adjust all the errors
> capitalisation to make everything consistent, as appropriate, so that it's
> either all lower-case or title case.  A mix of both often looks a bit
> sloppy.
> 
> Do you think this would be something you would be willing to clean up in
> this series too?  Especially since we are touching this code now.
> 
>> -	if (!dev->of_node) {
>> -		dev_err(dev, "NULL node\n");
>> -		return -EINVAL;
>> -	}
>> +	if (!dev->of_node)
>> +		return dev_err_probe(dev, -EINVAL, "NULL node\n");
> 
> Perhaps -ENODEV would be more appropriate here?  Also, the error message is
> not the best, as such, I wonder if we could make it better while we are at
> it, so to speak.
> 
> 	Krzysztof

Sure, I will add that to v2. I have seen that typical error messages in
other drivers for this error are "OF node not found", "Device node not
found" and "This driver needs device tree". Given that "OF data missing"
is used in this driver, I will go for the first one of the list, unless
something different is preferred.

Best regards,
Javier Carrasco
diff mbox series

Patch

diff --git a/drivers/pci/controller/dwc/pcie-kirin.c b/drivers/pci/controller/dwc/pcie-kirin.c
index 0a29136491b8..da8091f6b22b 100644
--- a/drivers/pci/controller/dwc/pcie-kirin.c
+++ b/drivers/pci/controller/dwc/pcie-kirin.c
@@ -216,10 +216,8 @@  static int hi3660_pcie_phy_start(struct hi3660_pcie_phy *phy)
 
 	usleep_range(PIPE_CLK_WAIT_MIN, PIPE_CLK_WAIT_MAX);
 	reg_val = kirin_apb_phy_readl(phy, PCIE_APB_PHY_STATUS0);
-	if (reg_val & PIPE_CLK_STABLE) {
-		dev_err(dev, "PIPE clk is not stable\n");
-		return -EINVAL;
-	}
+	if (reg_val & PIPE_CLK_STABLE)
+		return dev_err_probe(dev, -EINVAL, "PIPE clk is not stable\n");
 
 	return 0;
 }
@@ -371,10 +369,9 @@  static int kirin_pcie_get_gpio_enable(struct kirin_pcie *pcie,
 	if (ret < 0)
 		return 0;
 
-	if (ret > MAX_PCI_SLOTS) {
-		dev_err(dev, "Too many GPIO clock requests!\n");
-		return -EINVAL;
-	}
+	if (ret > MAX_PCI_SLOTS)
+		return dev_err_probe(dev, -EINVAL,
+				     "Too many GPIO clock requests!\n");
 
 	pcie->n_gpio_clkreq = ret;
 
@@ -421,16 +418,14 @@  static int kirin_pcie_parse_port(struct kirin_pcie *pcie,
 			}
 
 			pcie->num_slots++;
-			if (pcie->num_slots > MAX_PCI_SLOTS) {
-				dev_err(dev, "Too many PCI slots!\n");
-				return -EINVAL;
-			}
+			if (pcie->num_slots > MAX_PCI_SLOTS)
+				return dev_err_probe(dev, -EINVAL,
+						     "Too many PCI slots!\n");
 
 			ret = of_pci_get_devfn(child);
-			if (ret < 0) {
-				dev_err(dev, "failed to parse devfn: %d\n", ret);
-				return ret;
-			}
+			if (ret < 0)
+				return dev_err_probe(dev, ret,
+						     "failed to parse devfn: %d\n", ret);
 
 			slot = PCI_SLOT(ret);
 
@@ -729,16 +724,12 @@  static int kirin_pcie_probe(struct platform_device *pdev)
 	struct dw_pcie *pci;
 	int ret;
 
-	if (!dev->of_node) {
-		dev_err(dev, "NULL node\n");
-		return -EINVAL;
-	}
+	if (!dev->of_node)
+		return dev_err_probe(dev, -EINVAL, "NULL node\n");
 
 	data = of_device_get_match_data(dev);
-	if (!data) {
-		dev_err(dev, "OF data missing\n");
-		return -EINVAL;
-	}
+	if (!data)
+		return dev_err_probe(dev, -EINVAL, "OF data missing\n");
 
 	kirin_pcie = devm_kzalloc(dev, sizeof(struct kirin_pcie), GFP_KERNEL);
 	if (!kirin_pcie)