Re: [PATCH v2] staging: greybus: replace PTR_ERR() with %pe in error messages

From: Alex Elder

Date: Tue Oct 13 2026 - 17:37:46 EST


On 10/12/26 9:24 PM, pavankumaryalagada@xxxxxxxxx wrote:
From: Yalagada Pavan Kumar <pavankumaryalagada@xxxxxxxxx>

Use %pe to print error pointers directly and display their
error names.

Keep the other PTR_ERR() call because its return value is
needed for ret.

Signed-off-by: Yalagada Pavan Kumar <pavankumaryalagada@xxxxxxxxx>


Generally I think what you're doing is OK. It looks
like %pe is better than just %d, because it prints
the error *name* for the pointer-coded error.

But I have two general questions about this effort:

- There are other places in the Greybus code (even in
just the staging source files) where this exact same
thing could be done. Why limit this to "fw-core.c" only?

- Do you think that all Greybus error messages should be
converted to use %pe (passing ERR_PTR() if necessary)
instead of %d for showing the error number?

I think your suggested change is a net positive, but
doing it in some spots but not others means it is
adding a bit of inconsistency.

-Alex

---
v2:
- Use %pe in the firmware management case, as suggested by Jeremy Clifton,
to match the other cases.

v1: https://lore.kernel.org/outreachy/as0nhVbagZa8Birm@user/T/#t
---
drivers/staging/greybus/fw-core.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/greybus/fw-core.c b/drivers/staging/greybus/fw-core.c
index 2016a74f137f..78321be80013 100644
--- a/drivers/staging/greybus/fw-core.c
+++ b/drivers/staging/greybus/fw-core.c
@@ -93,8 +93,8 @@ static int gb_fw_core_probe(struct gb_bundle *bundle,
if (IS_ERR(connection)) {
ret = PTR_ERR(connection);
dev_err(&bundle->dev,
- "failed to create management connection (%d)\n",
- ret);
+ "failed to create management connection (%pe)\n",
+ connection);
goto err_destroy_connections;
}
@@ -112,8 +112,8 @@ static int gb_fw_core_probe(struct gb_bundle *bundle,
connection = gb_connection_create(bundle, cport_id,
gb_fw_download_request_handler);
if (IS_ERR(connection)) {
- dev_err(&bundle->dev, "failed to create download connection (%ld)\n",
- PTR_ERR(connection));
+ dev_err(&bundle->dev, "failed to create download connection (%pe)\n",
+ connection);
} else {
fw_core->download_connection = connection;
}
@@ -131,8 +131,8 @@ static int gb_fw_core_probe(struct gb_bundle *bundle,
connection = gb_connection_create(bundle, cport_id,
NULL);
if (IS_ERR(connection)) {
- dev_err(&bundle->dev, "failed to create SPI connection (%ld)\n",
- PTR_ERR(connection));
+ dev_err(&bundle->dev, "failed to create SPI connection (%pe)\n",
+ connection);
} else {
fw_core->spi_connection = connection;
}
@@ -149,8 +149,8 @@ static int gb_fw_core_probe(struct gb_bundle *bundle,
connection = gb_connection_create(bundle, cport_id,
NULL);
if (IS_ERR(connection)) {
- dev_err(&bundle->dev, "failed to create Authentication connection (%ld)\n",
- PTR_ERR(connection));
+ dev_err(&bundle->dev, "failed to create Authentication connection (%pe)\n",
+ connection);
} else {
fw_core->cap_connection = connection;
}