]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
driver core: Make parameter check consistent for API cluster device_(for_each|find...
authorZijun Hu <quic_zijuhu@quicinc.com>
Sat, 24 Aug 2024 09:07:43 +0000 (17:07 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Sep 2024 11:14:59 +0000 (13:14 +0200)
The following API cluster takes the same type parameter list, but do not
have consistent parameter check as shown below.

device_for_each_child(struct device *parent, ...)  // check (!parent->p)
device_for_each_child_reverse(struct device *parent, ...) // same as above
device_find_child(struct device *parent, ...)      // check (!parent)

Fixed by using consistent check (!parent || !parent->p) which covers
both existing checks for the cluster.

Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
Link: https://lore.kernel.org/r/20240824-const_dfc_prepare-v3-1-32127ea32bba@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/core.c

index 6113bc1092aeacd727ca478ccc52ee0675f1e431..b69b82da8837ebb6b3497d52d46a43e26ea1c64a 100644 (file)
@@ -3998,7 +3998,7 @@ int device_for_each_child(struct device *parent, void *data,
        struct device *child;
        int error = 0;
 
-       if (!parent->p)
+       if (!parent || !parent->p)
                return 0;
 
        klist_iter_init(&parent->p->klist_children, &i);
@@ -4028,7 +4028,7 @@ int device_for_each_child_reverse(struct device *parent, void *data,
        struct device *child;
        int error = 0;
 
-       if (!parent->p)
+       if (!parent || !parent->p)
                return 0;
 
        klist_iter_init(&parent->p->klist_children, &i);
@@ -4062,7 +4062,7 @@ struct device *device_find_child(struct device *parent, void *data,
        struct klist_iter i;
        struct device *child;
 
-       if (!parent)
+       if (!parent || !parent->p)
                return NULL;
 
        klist_iter_init(&parent->p->klist_children, &i);