Message ID | 20241205-const_dfc_done-v3-0-1611f1486b5a@quicinc.com |
---|---|
Headers | show |
Series | driver core: Constify API device_find_child() | expand |
On 2024/12/5 08:10, Zijun Hu wrote: > This patch series is to constify the following API: This patch series is based on the lasted mainline commit Commit: feffde684ac2 ("Merge tag 'for-6.13-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux") to avoid potential conflict as much as possible. > 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); > > Why to constify the API? > > - 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 matching functions can be directly taken > as the API's argument, they were exported by driver core. > > What to do? > > - Patches [1/11, 3/11] prepare for constifying the API. > > - Patch 4/11 constifies the API and adapt for its various subsystem usages. > > - Remaining do cleanup for several usages with benefits brought above.
On Thu, Dec 05, 2024 at 08:10:10AM +0800, Zijun Hu wrote: > From: Zijun Hu <quic_zijuhu@quicinc.com> Hi Zihun, Similar to my comment on Patch 10/11, this commit msg can be explicit: libnvdimm: Replace namespace_match() w device_find_child_by_name() > > Simplify nd_namespace_store() implementation by device_find_child_by_name() ^using Otherwise you can add: Reviewed-by: Alison Schofield <alison.schofield@intel.com> > > Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com> > --- > drivers/nvdimm/claim.c | 9 +-------- > 1 file changed, 1 insertion(+), 8 deletions(-) > > diff --git a/drivers/nvdimm/claim.c b/drivers/nvdimm/claim.c > index 030dbde6b0882050c90fb8db106ec15b1baef7ca..9e84ab411564f9d5e7ceb687c6491562564552e3 100644 > --- a/drivers/nvdimm/claim.c > +++ b/drivers/nvdimm/claim.c > @@ -67,13 +67,6 @@ bool nd_attach_ndns(struct device *dev, struct nd_namespace_common *attach, > return claimed; > } > > -static int namespace_match(struct device *dev, void *data) > -{ > - char *name = data; > - > - return strcmp(name, dev_name(dev)) == 0; > -} > - > static bool is_idle(struct device *dev, struct nd_namespace_common *ndns) > { > struct nd_region *nd_region = to_nd_region(dev->parent); > @@ -168,7 +161,7 @@ ssize_t nd_namespace_store(struct device *dev, > goto out; > } > > - found = device_find_child(dev->parent, name, namespace_match); > + found = device_find_child_by_name(dev->parent, name); > if (!found) { > dev_dbg(dev, "'%s' not found under %s\n", name, > dev_name(dev->parent)); > > -- > 2.34.1 > >
On 2024/12/6 07:30, Alison Schofield wrote: > On Thu, Dec 05, 2024 at 08:10:10AM +0800, Zijun Hu wrote: >> From: Zijun Hu <quic_zijuhu@quicinc.com> > > Hi Zihun, > > Similar to my comment on Patch 10/11, this commit msg can be > explicit: > > libnvdimm: Replace namespace_match() w device_find_child_by_name() > >> >> Simplify nd_namespace_store() implementation by device_find_child_by_name() > ^using > thank you Alison for code review. will send v4 with your suggestions. (^^) > Otherwise you can add: > Reviewed-by: Alison Schofield <alison.schofield@intel.com> > >> >> Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com> >> --- >> drivers/nvdimm/claim.c | 9 +-------- >> 1 file changed, 1 insertion(+), 8 deletions(-) >> >> diff --git a/drivers/nvdimm/claim.c b/drivers/nvdimm/claim.c >> index 030dbde6b0882050c90fb8db106ec15b1baef7ca..9e84ab411564f9d5e7ceb687c6491562564552e3 100644 >> --- a/drivers/nvdimm/claim.c >> +++ b/drivers/nvdimm/claim.c >> @@ -67,13 +67,6 @@ bool nd_attach_ndns(struct device *dev, struct nd_namespace_common *attach, >> return claimed; >> } >> >> -static int namespace_match(struct device *dev, void *data) >> -{ >> - char *name = data; >> - >> - return strcmp(name, dev_name(dev)) == 0; >> -} >> - >> static bool is_idle(struct device *dev, struct nd_namespace_common *ndns) >> { >> struct nd_region *nd_region = to_nd_region(dev->parent); >> @@ -168,7 +161,7 @@ ssize_t nd_namespace_store(struct device *dev, >> goto out; >> } >> >> - found = device_find_child(dev->parent, name, namespace_match); >> + found = device_find_child_by_name(dev->parent, name); >> if (!found) { >> dev_dbg(dev, "'%s' not found under %s\n", name, >> dev_name(dev->parent)); >> >> -- >> 2.34.1 >> >>