[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150902183506.5e7affdf@avionic-0020>
Date: Wed, 2 Sep 2015 18:35:06 +0200
From: Alban <albeu@...e.fr>
To: Philipp Zabel <p.zabel@...gutronix.de>
Cc: linux-kernel@...r.kernel.org
Subject: Re: [PATCH] reset: Fix of_reset_control_get() for consistent return
values
On Wed, 02 Sep 2015 17:09:52 +0200
Philipp Zabel <p.zabel@...gutronix.de> wrote:
> Hi Alban,
>
> Am Dienstag, den 01.09.2015, 17:28 +0200 schrieb Alban Bedel:
> > When of_reset_control_get() is called without connection ID it returns
> > -ENOENT when the 'resets' property doesn't exists or is an empty entry.
> > However when a connection ID is given it returns -EINVAL when the 'resets'
> > property doesn't exists or the requested name can't be found. This is
> > because the error code returned by of_property_match_string() is just
> > passed down as an index to of_parse_phandle_with_args(), which then
> > returns -EINVAL.
>
> Is that true? As far as I can see, since commit bd69f73f2c81
> ("of: Create function for counting number of phandles in a property")
> it returns the (positive) number of entries if index is negative and the
> 'resets' property exists and parses correctly (before it would return
> -ENOENT). If there are parsing errors, it can also return -EINVAL.
That's no really the case. If the property doesn't exists, or the
requested index is out of range, of_parse_phandle_with_args() always
return -ENOENT. This is important for optional properties.
However if the index is negative it always return -EINVAL,
independently of the property existence. And here it is what happen
when of_property_match_string() fails, leading to this inconsistence.
Alban
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists