Message ID | 20241211-const_dfc_done-v4-5-583cc60329df@quicinc.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | driver core: Constify API device_find_child() | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
On Wed, 11 Dec 2024 08:08:07 +0800 Zijun Hu <zijun_hu@icloud.com> wrote: > From: Zijun Hu <quic_zijuhu@quicinc.com> > > Simplify device_find_child_by_name() implementation by both existing > API device_find_child() and device_match_name(). There is a subtle difference. In theory old code could dereference a NULL if parent->p == NULL, now it can't. Sounds at most like a harmless change but maybe you should mention it. Otherwise LGTM Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > > Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com> > --- > drivers/base/core.c | 13 +------------ > 1 file changed, 1 insertion(+), 12 deletions(-) > > diff --git a/drivers/base/core.c b/drivers/base/core.c > index bc3b523a4a6366080c3c9fd190e54c7fd13c8ded..8116bc8dd6e9eba0653ca686a90c7008de9e2840 100644 > --- a/drivers/base/core.c > +++ b/drivers/base/core.c > @@ -4110,18 +4110,7 @@ EXPORT_SYMBOL_GPL(device_find_child); > struct device *device_find_child_by_name(struct device *parent, > const char *name) > { > - struct klist_iter i; > - struct device *child; > - > - if (!parent) > - return NULL; > - > - klist_iter_init(&parent->p->klist_children, &i); > - while ((child = next_device(&i))) > - if (sysfs_streq(dev_name(child), name) && get_device(child)) > - break; > - klist_iter_exit(&i); > - return child; > + return device_find_child(parent, name, device_match_name); > } > EXPORT_SYMBOL_GPL(device_find_child_by_name); > >
On 2024/12/24 04:39, Jonathan Cameron wrote: > There is a subtle difference. In theory old code could dereference a NULL > if parent->p == NULL, now it can't. Sounds at most like a harmless change but > maybe you should mention it. > i did not correct parameter checking for device_find_child_by_name() in below commit https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/base/core.c?id=903c44939abc02e2f3d6f2ad65fa090f7e5df5b6 since this commit will come finally, actually, this commit is the original motivation of this whole patch series. > Otherwise LGTM > Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
diff --git a/drivers/base/core.c b/drivers/base/core.c index bc3b523a4a6366080c3c9fd190e54c7fd13c8ded..8116bc8dd6e9eba0653ca686a90c7008de9e2840 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -4110,18 +4110,7 @@ EXPORT_SYMBOL_GPL(device_find_child); struct device *device_find_child_by_name(struct device *parent, const char *name) { - struct klist_iter i; - struct device *child; - - if (!parent) - return NULL; - - klist_iter_init(&parent->p->klist_children, &i); - while ((child = next_device(&i))) - if (sysfs_streq(dev_name(child), name) && get_device(child)) - break; - klist_iter_exit(&i); - return child; + return device_find_child(parent, name, device_match_name); } EXPORT_SYMBOL_GPL(device_find_child_by_name);