Re: [PATCH v4 1/2] software node: return -ENOTCONN when referenced swnode is not registered yet

From: Danilo Krummrich

Date: Wed Apr 08 2026 - 14:53:19 EST


On Wed Apr 8, 2026 at 5:52 PM CEST, Bartosz Golaszewski wrote:
> On Wed, 8 Apr 2026 17:28:46 +0200, Danilo Krummrich <dakr@xxxxxxxxxx> said:
>> On Wed Apr 8, 2026 at 9:19 AM CEST, Bartosz Golaszewski wrote:
>>> On Tue, Apr 7, 2026 at 3:28 PM Bartosz Golaszewski
>>> <bartosz.golaszewski@xxxxxxxxxxxxxxxx> wrote:
>>>>
>>>> It's possible that at the time of resolving a reference to a remote
>>>> software node, the node we know exists is not yet registered as a full
>>>> firmware node. We currently return -ENOENT in this case but the same
>>>> error code is also returned in some other cases, like the reference
>>>> property with given name not existing in the property list of the local
>>>> software node.
>>>>
>>>> It makes sense to let users know that we're dealing with an unregistered
>>>> software node so that they can defer probe - the situation is somewhat
>>>> similar to there existing a firmware node to which no device is bound
>>>> yet - which is valid grounds for probe deferral. To that end: use
>>>> -ENOTCONN to indicate the software node is "not connected".
>>>>
>>>> Acked-by: Andy Shevchenko <andy@xxxxxxxxxx>
>>>> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxxxxxxxx>
>>>> ---
>>>
>>> Hi Danilo!
>>>
>>> With Andy's Ack, do you think you could still queue this for v7.1?
>>
>> Yeah, that should work, but I have a question about the patch.
>>
>> The comment added to fwnode_property_get_reference_args() says:
>>
>> + * %-ENOTCONN when the remote firmware node is a software node that
>> + * has not been registered as a firmware node yet
>>
>> This seems like a bit of a layering violation to me, as it makes it explicit
>> that this error code indicates a software node, while
>> fwnode_property_get_reference_args() itself should be agnostic.
>>
>> The caller can easily derive more specific semantics with an is_software_node()
>> check as you already do in the GPIO code.
>>
>> Can we describe the same condition, but without explicitly naming the backend?
>>
>
> Yes, sure. It can be something like:
>
> %-ENOTCONN when the remote firmware node exists but has not been
> registered yet.
>
> Does this sound good and doo you want me to resend or can you change it
> when applying?

I can change it when applying.

One additional question though. I think it should be fine, but are we sure the
change can't regress other subsystems? It seems some of them (e.g. sfp-bus,
v4l2, iio) special case -ENOENT.