Re: [PATCH v2 00/32] driver core: Constify API device_find_child() and adapt for various existing usages
From: quic_zijuhu <hidden>
Date: 2024-12-03 02:30:43
Also in:
arm-scmi, dri-devel, linux-block, linux-cxl, linux-efi, linux-gpio, linux-hwmon, linux-media, linux-mediatek, linux-pwm, linux-remoteproc, linux-scsi, linux-serial, linux-sound, linux-usb, lkml, nvdimm, sparclinux
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 <redacted> --- 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- v1-0-9d85e3f943cb@quicinc.com - Motivation link: https://lore.kernel.org/lkml/917359cc-a421-41dd-93f4-d28937fe2325@icloud.com (local) --- 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 (^^)