Re: [PATCH v2 00/32] driver core: Constify API device_find_child() and adapt for various existing usages

quic_zijuhu <[email protected]>
Newsgroups gmane.linux.pwm,gmane.linux.kernel,gmane.comp.video.dri.devel,gmane.linux.ports.arm.mediatek,gmane.linux.ports.arm.kernel,gmane.linux.kernel.hwmon,gmane.linux.drivers.video-input-infrastructure,gmane.linux.usb.general,gmane.linux.kernel.gpio,gmane.linux.network,gmane.linux.kernel.firewire.devel,gmane.linux.serial,gmane.linux.sound,gmane.linux.iscsi.open-iscsi,gmane.linux.scsi,gmane.linux.ports.sparc,gmane.linux.block,gmane.linux.kernel.efi
Message-ID <[email protected]>
On 12/3/2024 8:33 AM, Zijun Hu wrote:
> This patch series is to 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);
> 
> 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.
> 
> How to constify the API?
> 
> - Now, no (@match)() argument of the API usages is modifying its match
>   data @*data after previous cleanup, so it is easy and safe to make its
>   parameter @data take const void * as type.
> 
> - Simplify involved codes further if it is possbile with benefits
>   brought by constifying the API.
> 
> Signed-off-by: Zijun Hu <[email protected]>
> ---
> Changes in v2:
> - Series v1 have no code review comments and are posted a long time ago, so may ignore differences.
> - Link to v1: https://lore.kernel.org/r/20240811-const_dfc_done-
> [email protected]
> - Motivation link: https://lore.kernel.org/lkml/[email protected]
> 
> ---
> Zijun Hu (32):
>       driver core: Constify API device_find_child()
>       driver core: Introduce device_match_type() to match device with a device type
>       drm/mediatek: Adapt for constified device_find_child()
>       hwmon: Adapt for constified device_find_child()
>       media: pci: mgb4: Adapt for constified device_find_child()
>       thunderbolt: Adapt for constified device_find_child()
>       gpio: sim: Remove gpio_sim_dev_match_fwnode()
>       net: dsa: Adapt for constified device_find_child()
>       pwm: Adapt for constified device_find_child()
>       nvdimm: Adapt for constified device_find_child()
>       libnvdimm: Simplify nd_namespace_store() implementation
>       firewire: core: Adapt for constified device_find_child()
>       serial: core: Adapt for constified device_find_child()
>       usb: typec: class: Remove both cable_match() and partner_match()
>       usb: typec: class: Adapt for constified device_find_child()
>       slimbus: core: Simplify of_find_slim_device() implementation
>       slimbus: core: Constify slim_eaddr_equal()
>       slimbus: core: Adapt for constified device_find_child()
>       scsi: iscsi: Constify API iscsi_find_flashnode_sess()
>       scsi: qla4xxx: Adapt for constified iscsi_find_flashnode_sess()
>       scsi: iscsi: Adapt for constified device_find_child()
>       cxl/region: Adapt for constified device_find_child()
>       cxl/pmem: Remove match_nvdimm_bridge()
>       cxl/core/pci: Adapt for constified device_find_child()
>       cxl/test: Adapt for constified device_find_child()
>       sparc: vio: Adapt for constified device_find_child()
>       bus: fsl-mc: Adapt for constified device_find_child()
>       block: sunvdc: Adapt for constified device_find_child()
>       firmware: arm_scmi: Adapt for constified device_find_child()
>       efi: dev-path-parser: Adapt for constified device_find_child()
>       rpmsg: core: Adapt for constified device_find_child()
>       driver core: Simplify API device_find_child_by_name() implementation

sorry for that only part of this series [0/32, 11/32] were sent out due
to mail account capability limitation.

will solve the limitation and send out whole patch series as v3.

thanks (^^)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.