Re: [PATCH v3 7/9] driver core: Correct parameter check for API device_for_each_child_reverse_from()
From: Jonathan Cameron
Date: Mon Dec 16 2024 - 10:23:28 EST
On Thu, 12 Dec 2024 21:38:43 +0800
Zijun Hu <zijun_hu@xxxxxxxxxx> wrote:
> From: Zijun Hu <quic_zijuhu@xxxxxxxxxxx>
>
> device_for_each_child_reverse_from() checks (!parent->p) for its
> parameter @parent, and that is not consistent with other APIs of
> its cluster as shown below:
>
> device_for_each_child_reverse_from() // check (!parent->p)
> device_for_each_child_reverse() // check (!parent || !parent->p)
> device_for_each_child() // same above
> device_find_child() // same above
>
> Correct the API's parameter @parent check by (!parent || !parent->p).
>
> Signed-off-by: Zijun Hu <quic_zijuhu@xxxxxxxxxxx>
Given that 'from' implies continuation of an iteration I can see why
it might not ever be relevant to check parent. It's harmless, but to
my mind unnecessary.
Jonathan
> ---
> drivers/base/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/base/core.c b/drivers/base/core.c
> index 69bb6bf4bd12395226ee3c99e2f63d15c7e342a5..34fb13f914b3db47e6a047fdabf3c9b18ecc08cc 100644
> --- a/drivers/base/core.c
> +++ b/drivers/base/core.c
> @@ -4050,7 +4050,7 @@ int device_for_each_child_reverse_from(struct device *parent,
> struct device *child;
> int error = 0;
>
> - if (!parent->p)
> + if (!parent || !parent->p)
> return 0;
>
> klist_iter_init_node(&parent->p->klist_children, &i,
>