All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Zijun Hu <zijun_hu@icloud.com>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
	linux-kernel@vger.kernel.org, Zijun Hu <quic_zijuhu@quicinc.com>
Subject: Re: [PATCH] driver core: Simplify driver API device_find_child_by_name() implementation
Date: Wed, 31 Jul 2024 14:53:29 +0200	[thread overview]
Message-ID: <2024073128-tinfoil-unaligned-8164@gregkh> (raw)
In-Reply-To: <20240720-simplify_drv_api-v1-1-07c5e028cccf@quicinc.com>

On Sat, Jul 20, 2024 at 09:21:50AM +0800, Zijun Hu wrote:
> From: Zijun Hu <quic_zijuhu@quicinc.com>
> 
> Simplify device_find_child_by_name() implementation by using present
> driver APIs device_find_child() and device_match_name().
> 
> Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
> ---
>  drivers/base/core.c    | 15 +++------------
>  include/linux/device.h |  4 ++++
>  2 files changed, 7 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/base/core.c b/drivers/base/core.c
> index 730cae66607c..22ab4b8a2bcd 100644
> --- a/drivers/base/core.c
> +++ b/drivers/base/core.c
> @@ -4089,18 +4089,9 @@ 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;
> +	/* TODO: remove type cast after const device_find_child() prototype */

I do not understand the TODO here.  Why is it needed?  Why not fix it up
now?

> +	return device_find_child(parent, (void *)name,
> +				 (int (*)(struct device *, void *))device_match_name);
>  }
>  EXPORT_SYMBOL_GPL(device_find_child_by_name);
>  
> diff --git a/include/linux/device.h b/include/linux/device.h
> index 34eb20f5966f..685ffd2dc867 100644
> --- a/include/linux/device.h
> +++ b/include/linux/device.h
> @@ -47,6 +47,9 @@ struct dev_pin_info;
>  struct dev_iommu;
>  struct msi_device_data;
>  
> +/* TODO: unify device match() parameter of driver APIs to this signature */

Same here, why have this?  Why not unify them and then fix this up?

> +typedef int (*device_match_t)(struct device *dev, const void *data);
> +
>  /**
>   * struct subsys_interface - interfaces to device functions
>   * @name:       name of the device function
> @@ -1073,6 +1076,7 @@ int device_for_each_child(struct device *dev, void *data,
>  			  int (*fn)(struct device *dev, void *data));
>  int device_for_each_child_reverse(struct device *dev, void *data,
>  				  int (*fn)(struct device *dev, void *data));
> +/* TODO: change type of @data to const void * and @match to device_match_t */

Again, why leave this here?

thanks,

greg k-h

  reply	other threads:[~2024-07-31 12:53 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-20  1:21 [PATCH] driver core: Simplify driver API device_find_child_by_name() implementation Zijun Hu
2024-07-31 12:53 ` Greg Kroah-Hartman [this message]
2024-07-31 16:04   ` Zijun Hu
2024-07-31 16:21     ` Greg Kroah-Hartman
2024-08-01  0:08       ` Zijun Hu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2024073128-tinfoil-unaligned-8164@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=quic_zijuhu@quicinc.com \
    --cc=rafael@kernel.org \
    --cc=zijun_hu@icloud.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.