Re: [PATCH] firmware: arm_scmi: Use dev_err_probe() simplify the code

From: Christophe JAILLET
Date: Fri May 16 2025 - 11:24:05 EST


Le 15/05/2025 à 15:59, Cristian Marussi a écrit :
On Thu, May 15, 2025 at 08:38:55PM +0800, long.yunjian@xxxxxxxxxx wrote:
From: Yumeng Fang <fang.yumeng@xxxxxxxxxx>


Hi,

In the probe path, dev_err() can be replaced with dev_err_probe()
which will check if error code is -EPROBE_DEFER and prints the
error name. It also sets the defer probe reason which can be
checked later through debugfs.

All true...but...if you look at the main scmi_probe() function all of these
failures are trapped at that level currently on the return path...

see the call chain from

scmi_probe()
....
ret = scmi_channels_setup(info);
...

...so your probe errors will be overridden there with a more generic message
left in debugfs at the top level.

This is only true only when -EPROBE_DEFER is returned.

In other cases, I think that we would get 2 messages. The specific one from scmi_channels_setup() and a generic one from scmi_probe().

in such a case, the one in scmi_channels_setup() will be better, because it will log the error code in a human readable format, which is not the case now.

So, I think that the patch:
- simplify the code
- improve the error messages in some cases

If -EPROBE_DEFER is returned, I think that the additional call would just but a harmless no-op.

CJ


Thanks,
Cristian