From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
To: Zijun Hu <zijun_hu@icloud.com>
Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Bartosz Golaszewski" <brgl@bgdev.pl>,
"Uwe Kleine-König" <ukleinek@kernel.org>,
"James Bottomley" <James.Bottomley@HansenPartnership.com>,
"Thomas Weißschuh" <thomas@t-8ch.de>,
linux-kernel@vger.kernel.org, nvdimm@lists.linux.dev,
linux-sound@vger.kernel.org, sparclinux@vger.kernel.org,
linux-block@vger.kernel.org, linux-cxl@vger.kernel.org,
linux1394-devel@lists.sourceforge.net, arm-scmi@vger.kernel.org,
linux-efi@vger.kernel.org, linux-gpio@vger.kernel.org,
dri-devel@lists.freedesktop.org,
linux-mediatek@lists.infradead.org, linux-hwmon@vger.kernel.org,
linux-media@vger.kernel.org, linux-pwm@vger.kernel.org,
linux-remoteproc@vger.kernel.org, linux-scsi@vger.kernel.org,
linux-usb@vger.kernel.org, linux-serial@vger.kernel.org,
netdev@vger.kernel.org, "Zijun Hu" <quic_zijuhu@quicinc.com>,
"Alison Schofield" <alison.schofield@intel.com>,
"Takashi Sakamoto" <o-takashi@sakamocchi.jp>
Subject: Re: [PATCH v4 04/11] driver core: Constify API device_find_child() then adapt for various usages
Date: Mon, 23 Dec 2024 20:33:09 +0000 [thread overview]
Message-ID: <20241223203309.00004d51@huawei.com> (raw)
In-Reply-To: <20241211-const_dfc_done-v4-4-583cc60329df@quicinc.com>
On Wed, 11 Dec 2024 08:08:06 +0800
Zijun Hu <zijun_hu@icloud.com> wrote:
> From: Zijun Hu <quic_zijuhu@quicinc.com>
>
> Constify the following API:
> struct device *device_find_child(struct device *dev, void *data,
> int (*match)(struct device *dev, void *data));
> To :
> struct device *device_find_child(struct device *dev, const void *data,
> device_match_t match);
> typedef int (*device_match_t)(struct device *dev, const void *data);
> with the following reasons:
>
> - Protect caller's match data @*data which is for comparison and lookup
> and the API does not actually need to modify @*data.
>
> - Make the API's parameters (@match)() and @data have the same type as
> all of other device finding APIs (bus|class|driver)_find_device().
>
> - All kinds of existing device match functions can be directly taken
> as the API's argument, they were exported by driver core.
>
> Constify the API and adapt for various existing usages by simply making
> various match functions take 'const void *' as type of match data @data.
There are a couple of places I noticed where you changed types
that aren't related to the specific change this is making.
They are almost certainly fine but I'd either like a specific note
on that in this patch description or just change the elements
that are directly affected by this change.
>
> Reviewed-by: Alison Schofield <alison.schofield@intel.com>
> Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
> Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
> index d778996507984a759bbe84e7acac3774e0c7af98..bfecd71040c2f4373645380b4c31327d8b42d095 100644
> --- a/drivers/cxl/core/region.c
> +++ b/drivers/cxl/core/region.c
> @@ -1722,10 +1722,12 @@ static struct cxl_port *next_port(struct cxl_port *port)
> return port->parent_dport->port;
> }
>
> -static int match_switch_decoder_by_range(struct device *dev, void *data)
> +static int match_switch_decoder_by_range(struct device *dev,
> + const void *data)
> {
> struct cxl_switch_decoder *cxlsd;
> - struct range *r1, *r2 = data;
> + const struct range *r1, *r2 = data;
As below. I'd not touch type of things you don't need to touch.
> +
>
> if (!is_switch_decoder(dev))
> return 0;
> @@ -3176,9 +3178,10 @@ static int devm_cxl_add_dax_region(struct cxl_region *cxlr)
> return rc;
> }
>
> -static int match_root_decoder_by_range(struct device *dev, void *data)
> +static int match_root_decoder_by_range(struct device *dev,
> + const void *data)
> {
> - struct range *r1, *r2 = data;
> + const struct range *r1, *r2 = data;
From the point of view of keeping the patch to what it 'needs'
to touch, should leave type of r1 alone.
I've not looked at whether this causes any problems, just whether
it is relevant to this change.
> struct cxl_root_decoder *cxlrd;
>
> if (!is_root_decoder(dev))
> @@ -3189,11 +3192,11 @@ static int match_root_decoder_by_range(struct device *dev, void *data)
> return range_contains(r1, r2);
> }
>
> -static int match_region_by_range(struct device *dev, void *data)
> +static int match_region_by_range(struct device *dev, const void *data)
> {
> struct cxl_region_params *p;
> struct cxl_region *cxlr;
> - struct range *r = data;
> + const struct range *r = data;
> int rc = 0;
>
next prev parent reply other threads:[~2024-12-23 20:33 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-11 0:08 [PATCH v4 00/11] driver core: Constify API device_find_child() Zijun Hu
2024-12-11 0:08 ` [PATCH v4 01/11] libnvdimm: Replace namespace_match() with device_find_child_by_name() Zijun Hu
2024-12-23 20:23 ` Jonathan Cameron
2025-01-02 18:17 ` Fan Ni
2025-01-03 0:29 ` Zijun Hu
2024-12-11 0:08 ` [PATCH v4 02/11] slimbus: core: Constify slim_eaddr_equal() Zijun Hu
2024-12-23 20:25 ` Jonathan Cameron
2024-12-11 0:08 ` [PATCH v4 03/11] bus: fsl-mc: Constify fsl_mc_device_match() Zijun Hu
2024-12-23 20:26 ` Jonathan Cameron
2024-12-24 12:36 ` Zijun Hu
2024-12-11 0:08 ` [PATCH v4 04/11] driver core: Constify API device_find_child() then adapt for various usages Zijun Hu
2024-12-23 7:30 ` Uwe Kleine-König
2024-12-23 20:33 ` Jonathan Cameron [this message]
2024-12-24 12:47 ` Zijun Hu
2025-01-02 17:07 ` Mathieu Poirier
2024-12-11 0:08 ` [PATCH v4 05/11] driver core: Simplify API device_find_child_by_name() implementation Zijun Hu
2024-12-23 20:39 ` Jonathan Cameron
2024-12-24 12:55 ` Zijun Hu
2024-12-11 0:08 ` [PATCH v4 06/11] driver core: Remove match_any() Zijun Hu
2024-12-23 20:40 ` Jonathan Cameron
2024-12-11 0:08 ` [PATCH v4 07/11] slimbus: core: Remove of_slim_match_dev() Zijun Hu
2024-12-23 20:44 ` Jonathan Cameron
2024-12-11 0:08 ` [PATCH v4 08/11] gpio: sim: Remove gpio_sim_dev_match_fwnode() Zijun Hu
2024-12-11 8:18 ` Bartosz Golaszewski
2024-12-23 20:45 ` Jonathan Cameron
2024-12-11 0:08 ` [PATCH v4 09/11] driver core: Introduce an device matching API device_match_type() Zijun Hu
2024-12-23 20:46 ` Jonathan Cameron
2024-12-11 0:08 ` [PATCH v4 10/11] cxl/pmem: Replace match_nvdimm_bridge() with " Zijun Hu
2024-12-23 20:48 ` Jonathan Cameron
2024-12-24 12:58 ` Zijun Hu
2024-12-11 0:08 ` [PATCH v4 11/11] usb: typec: class: Remove both cable_match() and partner_match() Zijun Hu
2024-12-23 20:52 ` Jonathan Cameron
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=20241223203309.00004d51@huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=alison.schofield@intel.com \
--cc=arm-scmi@vger.kernel.org \
--cc=brgl@bgdev.pl \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=linus.walleij@linaro.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-pwm@vger.kernel.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=linux1394-devel@lists.sourceforge.net \
--cc=netdev@vger.kernel.org \
--cc=nvdimm@lists.linux.dev \
--cc=o-takashi@sakamocchi.jp \
--cc=quic_zijuhu@quicinc.com \
--cc=sparclinux@vger.kernel.org \
--cc=thomas@t-8ch.de \
--cc=ukleinek@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).