On Wed, Dec 11, 2024 at 08:08:06AM +0800, Zijun Hu wrote: > From: Zijun Hu <quic_zijuhu@xxxxxxxxxxx> > > 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. > > Reviewed-by: Alison Schofield <alison.schofield@xxxxxxxxx> > Reviewed-by: Takashi Sakamoto <o-takashi@xxxxxxxxxxxxx> > Signed-off-by: Zijun Hu <quic_zijuhu@xxxxxxxxxxx> > --- > arch/sparc/kernel/vio.c | 6 +++--- > drivers/base/core.c | 6 +++--- > drivers/block/sunvdc.c | 6 +++--- > drivers/bus/fsl-mc/dprc-driver.c | 4 ++-- > drivers/cxl/core/pci.c | 4 ++-- > drivers/cxl/core/pmem.c | 2 +- > drivers/cxl/core/region.c | 21 ++++++++++++--------- > drivers/firewire/core-device.c | 4 ++-- > drivers/firmware/arm_scmi/bus.c | 4 ++-- > drivers/firmware/efi/dev-path-parser.c | 4 ++-- > drivers/gpio/gpio-sim.c | 2 +- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > drivers/hwmon/hwmon.c | 2 +- > drivers/media/pci/mgb4/mgb4_core.c | 4 ++-- > drivers/nvdimm/bus.c | 2 +- > drivers/pwm/core.c | 2 +- > drivers/rpmsg/rpmsg_core.c | 4 ++-- Reviewed-by: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx> > drivers/scsi/qla4xxx/ql4_os.c | 3 ++- > drivers/scsi/scsi_transport_iscsi.c | 10 +++++----- > drivers/slimbus/core.c | 8 ++++---- > drivers/thunderbolt/retimer.c | 2 +- > drivers/thunderbolt/xdomain.c | 2 +- > drivers/tty/serial/serial_core.c | 4 ++-- > drivers/usb/typec/class.c | 8 ++++---- > include/linux/device.h | 4 ++-- > include/scsi/scsi_transport_iscsi.h | 4 ++-- > net/dsa/dsa.c | 2 +- > tools/testing/cxl/test/cxl.c | 2 +- > 28 files changed, 66 insertions(+), 62 deletions(-) > > diff --git a/arch/sparc/kernel/vio.c b/arch/sparc/kernel/vio.c > index 07933d75ac815160a2580dce39fde7653a9502e1..1a1a9d6b8f2e8dfedefafde846315a06a167fbfb 100644 > --- a/arch/sparc/kernel/vio.c > +++ b/arch/sparc/kernel/vio.c > @@ -419,13 +419,13 @@ struct vio_remove_node_data { > u64 node; > }; > > -static int vio_md_node_match(struct device *dev, void *arg) > +static int vio_md_node_match(struct device *dev, const void *arg) > { > struct vio_dev *vdev = to_vio_dev(dev); > - struct vio_remove_node_data *node_data; > + const struct vio_remove_node_data *node_data; > u64 node; > > - node_data = (struct vio_remove_node_data *)arg; > + node_data = (const struct vio_remove_node_data *)arg; > > node = vio_vdev_node(node_data->hp, vdev); > > diff --git a/drivers/base/core.c b/drivers/base/core.c > index 94865c9d8adcf5f2ce5002ffd7bf0ef4fc85e4d7..bc3b523a4a6366080c3c9fd190e54c7fd13c8ded 100644 > --- a/drivers/base/core.c > +++ b/drivers/base/core.c > @@ -4079,8 +4079,8 @@ EXPORT_SYMBOL_GPL(device_for_each_child_reverse_from); > * > * NOTE: you will need to drop the reference with put_device() after use. > */ > -struct device *device_find_child(struct device *parent, void *data, > - int (*match)(struct device *dev, void *data)) > +struct device *device_find_child(struct device *parent, const void *data, > + device_match_t match) > { > struct klist_iter i; > struct device *child; > @@ -4125,7 +4125,7 @@ struct device *device_find_child_by_name(struct device *parent, > } > EXPORT_SYMBOL_GPL(device_find_child_by_name); > > -static int match_any(struct device *dev, void *unused) > +static int match_any(struct device *dev, const void *unused) > { > return 1; > } > diff --git a/drivers/block/sunvdc.c b/drivers/block/sunvdc.c > index 2d38331ee66793402e803ec0cc82e9e71c991c84..386643ceed59921203828844aa070833c44c67fb 100644 > --- a/drivers/block/sunvdc.c > +++ b/drivers/block/sunvdc.c > @@ -918,12 +918,12 @@ struct vdc_check_port_data { > char *type; > }; > > -static int vdc_device_probed(struct device *dev, void *arg) > +static int vdc_device_probed(struct device *dev, const void *arg) > { > struct vio_dev *vdev = to_vio_dev(dev); > - struct vdc_check_port_data *port_data; > + const struct vdc_check_port_data *port_data; > > - port_data = (struct vdc_check_port_data *)arg; > + port_data = (const struct vdc_check_port_data *)arg; > > if ((vdev->dev_no == port_data->dev_no) && > (!(strcmp((char *)&vdev->type, port_data->type))) && > diff --git a/drivers/bus/fsl-mc/dprc-driver.c b/drivers/bus/fsl-mc/dprc-driver.c > index 11c8fadcf85148b4e4ea6b97b7efb6d4ddf22d3c..52053f7c6d9a654ba46c6579c6a3c5c3faaa75c1 100644 > --- a/drivers/bus/fsl-mc/dprc-driver.c > +++ b/drivers/bus/fsl-mc/dprc-driver.c > @@ -112,9 +112,9 @@ void dprc_remove_devices(struct fsl_mc_device *mc_bus_dev, > } > EXPORT_SYMBOL_GPL(dprc_remove_devices); > > -static int __fsl_mc_device_match(struct device *dev, void *data) > +static int __fsl_mc_device_match(struct device *dev, const void *data) > { > - struct fsl_mc_obj_desc *obj_desc = data; > + const struct fsl_mc_obj_desc *obj_desc = data; > struct fsl_mc_device *mc_dev = to_fsl_mc_device(dev); > > return fsl_mc_device_match(mc_dev, obj_desc); > diff --git a/drivers/cxl/core/pci.c b/drivers/cxl/core/pci.c > index 9d58ab9d33c554e05ddfa2610269e6d08bfaa8e9..a3c57f96138a28c9f30562d554c42cb5224bcf4b 100644 > --- a/drivers/cxl/core/pci.c > +++ b/drivers/cxl/core/pci.c > @@ -252,9 +252,9 @@ static int devm_cxl_enable_mem(struct device *host, struct cxl_dev_state *cxlds) > } > > /* require dvsec ranges to be covered by a locked platform window */ > -static int dvsec_range_allowed(struct device *dev, void *arg) > +static int dvsec_range_allowed(struct device *dev, const void *arg) > { > - struct range *dev_range = arg; > + const struct range *dev_range = arg; > struct cxl_decoder *cxld; > > if (!is_root_decoder(dev)) > diff --git a/drivers/cxl/core/pmem.c b/drivers/cxl/core/pmem.c > index b3378d3f6acb4c9e3601683119754e3cd6329df2..a8473de24ebfd92f12f47e0556e28b81a29cff7c 100644 > --- a/drivers/cxl/core/pmem.c > +++ b/drivers/cxl/core/pmem.c > @@ -57,7 +57,7 @@ bool is_cxl_nvdimm_bridge(struct device *dev) > } > EXPORT_SYMBOL_NS_GPL(is_cxl_nvdimm_bridge, "CXL"); > > -static int match_nvdimm_bridge(struct device *dev, void *data) > +static int match_nvdimm_bridge(struct device *dev, const void *data) > { > return is_cxl_nvdimm_bridge(dev); > } > 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 > @@ -792,7 +792,7 @@ static int check_commit_order(struct device *dev, const void *data) > return 0; > } > > -static int match_free_decoder(struct device *dev, void *data) > +static int match_free_decoder(struct device *dev, const void *data) > { > struct cxl_port *port = to_cxl_port(dev->parent); > struct cxl_decoder *cxld; > @@ -824,9 +824,9 @@ static int match_free_decoder(struct device *dev, void *data) > return 1; > } > > -static int match_auto_decoder(struct device *dev, void *data) > +static int match_auto_decoder(struct device *dev, const void *data) > { > - struct cxl_region_params *p = data; > + const struct cxl_region_params *p = data; > struct cxl_decoder *cxld; > struct range *r; > > @@ -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; > + > > 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; > 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; > > if (!is_cxl_region(dev)) > diff --git a/drivers/firewire/core-device.c b/drivers/firewire/core-device.c > index a99fe35f1f0d1a2e585ac49b86cc6fd0807cffb6..ec3e21ad202520dda745064b954c853a26d03e3d 100644 > --- a/drivers/firewire/core-device.c > +++ b/drivers/firewire/core-device.c > @@ -988,7 +988,7 @@ int fw_device_set_broadcast_channel(struct device *dev, void *gen) > return 0; > } > > -static int compare_configuration_rom(struct device *dev, void *data) > +static int compare_configuration_rom(struct device *dev, const void *data) > { > const struct fw_device *old = fw_device(dev); > const u32 *config_rom = data; > @@ -1039,7 +1039,7 @@ static void fw_device_init(struct work_struct *work) > // > // serialize config_rom access. > scoped_guard(rwsem_read, &fw_device_rwsem) { > - found = device_find_child(card->device, (void *)device->config_rom, > + found = device_find_child(card->device, device->config_rom, > compare_configuration_rom); > } > if (found) { > diff --git a/drivers/firmware/arm_scmi/bus.c b/drivers/firmware/arm_scmi/bus.c > index 157172a5f2b577ce4f04425f967f548230c1ebed..a3386bf36de508d312e2c4fa2e27ba62ba3776a0 100644 > --- a/drivers/firmware/arm_scmi/bus.c > +++ b/drivers/firmware/arm_scmi/bus.c > @@ -238,10 +238,10 @@ static int scmi_dev_match(struct device *dev, const struct device_driver *drv) > return 0; > } > > -static int scmi_match_by_id_table(struct device *dev, void *data) > +static int scmi_match_by_id_table(struct device *dev, const void *data) > { > struct scmi_device *sdev = to_scmi_dev(dev); > - struct scmi_device_id *id_table = data; > + const struct scmi_device_id *id_table = data; > > return sdev->protocol_id == id_table->protocol_id && > (id_table->name && !strcmp(sdev->name, id_table->name)); > diff --git a/drivers/firmware/efi/dev-path-parser.c b/drivers/firmware/efi/dev-path-parser.c > index 937be269fee86d5d71256758aed94741e794431c..13ea141c0defb5e80d5af43cca73cf527444a238 100644 > --- a/drivers/firmware/efi/dev-path-parser.c > +++ b/drivers/firmware/efi/dev-path-parser.c > @@ -47,9 +47,9 @@ static long __init parse_acpi_path(const struct efi_dev_path *node, > return 0; > } > > -static int __init match_pci_dev(struct device *dev, void *data) > +static int __init match_pci_dev(struct device *dev, const void *data) > { > - unsigned int devfn = *(unsigned int *)data; > + unsigned int devfn = *(const unsigned int *)data; > > return dev_is_pci(dev) && to_pci_dev(dev)->devfn == devfn; > } > diff --git a/drivers/gpio/gpio-sim.c b/drivers/gpio/gpio-sim.c > index f387dad81f2960b5ec3c1b5fd04081ee501cc75b..370b71513bdb529112e157fa22a5451e02502a17 100644 > --- a/drivers/gpio/gpio-sim.c > +++ b/drivers/gpio/gpio-sim.c > @@ -413,7 +413,7 @@ static int gpio_sim_setup_sysfs(struct gpio_sim_chip *chip) > return devm_add_action_or_reset(dev, gpio_sim_sysfs_remove, chip); > } > > -static int gpio_sim_dev_match_fwnode(struct device *dev, void *data) > +static int gpio_sim_dev_match_fwnode(struct device *dev, const void *data) > { > return device_match_fwnode(dev, data); > } > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index 0829ceb9967ca5d03509c52a559494d58776077b..4aeb393b58e636225ba3b529e4529f3028219e62 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -359,7 +359,7 @@ static const struct of_device_id mtk_drm_of_ids[] = { > }; > MODULE_DEVICE_TABLE(of, mtk_drm_of_ids); > > -static int mtk_drm_match(struct device *dev, void *data) > +static int mtk_drm_match(struct device *dev, const void *data) > { > if (!strncmp(dev_name(dev), "mediatek-drm", sizeof("mediatek-drm") - 1)) > return true; > diff --git a/drivers/hwmon/hwmon.c b/drivers/hwmon/hwmon.c > index bbb9cc44e29fbc635706db5bed21f3b8a1cd4987..6552ee5186896e9290658a26d8f230849aacafa6 100644 > --- a/drivers/hwmon/hwmon.c > +++ b/drivers/hwmon/hwmon.c > @@ -341,7 +341,7 @@ static int hwmon_attr_base(enum hwmon_sensor_types type) > > static DEFINE_MUTEX(hwmon_pec_mutex); > > -static int hwmon_match_device(struct device *dev, void *data) > +static int hwmon_match_device(struct device *dev, const void *data) > { > return dev->class == &hwmon_class; > } > diff --git a/drivers/media/pci/mgb4/mgb4_core.c b/drivers/media/pci/mgb4/mgb4_core.c > index bc63dc81bcae0d20924174be74b93a2139d5879f..697d50bedfe285d74c702efde61e510df87c1229 100644 > --- a/drivers/media/pci/mgb4/mgb4_core.c > +++ b/drivers/media/pci/mgb4/mgb4_core.c > @@ -123,7 +123,7 @@ static const struct hwmon_chip_info temp_chip_info = { > }; > #endif > > -static int match_i2c_adap(struct device *dev, void *data) > +static int match_i2c_adap(struct device *dev, const void *data) > { > return i2c_verify_adapter(dev) ? 1 : 0; > } > @@ -139,7 +139,7 @@ static struct i2c_adapter *get_i2c_adap(struct platform_device *pdev) > return dev ? to_i2c_adapter(dev) : NULL; > } > > -static int match_spi_adap(struct device *dev, void *data) > +static int match_spi_adap(struct device *dev, const void *data) > { > return to_spi_device(dev) ? 1 : 0; > } > diff --git a/drivers/nvdimm/bus.c b/drivers/nvdimm/bus.c > index 2237715e42eb32a14a4134746739a0df5ca27414..0ccf4a9e523a52ef52a96a339ecff0bcb51b214b 100644 > --- a/drivers/nvdimm/bus.c > +++ b/drivers/nvdimm/bus.c > @@ -1212,7 +1212,7 @@ enum nd_ioctl_mode { > DIMM_IOCTL, > }; > > -static int match_dimm(struct device *dev, void *data) > +static int match_dimm(struct device *dev, const void *data) > { > long id = (long) data; > > diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c > index 675b252d9c8ce74705ef245faae42e2c1330ed15..14144d0fa38e0c4e0bc34b9c929e127f1b2e96b6 100644 > --- a/drivers/pwm/core.c > +++ b/drivers/pwm/core.c > @@ -1276,7 +1276,7 @@ static int pwm_export_child(struct device *pwmchip_dev, struct pwm_device *pwm) > return 0; > } > > -static int pwm_unexport_match(struct device *pwm_dev, void *data) > +static int pwm_unexport_match(struct device *pwm_dev, const void *data) > { > return pwm_from_dev(pwm_dev) == data; > } > diff --git a/drivers/rpmsg/rpmsg_core.c b/drivers/rpmsg/rpmsg_core.c > index 712c06c02696663821c8c884bcbd83036098899b..207b64c0a2fe9ccdb03b4ed66d1cee81e6f4c1ae 100644 > --- a/drivers/rpmsg/rpmsg_core.c > +++ b/drivers/rpmsg/rpmsg_core.c > @@ -377,9 +377,9 @@ EXPORT_SYMBOL(rpmsg_get_mtu); > * this is used to make sure we're not creating rpmsg devices for channels > * that already exist. > */ > -static int rpmsg_device_match(struct device *dev, void *data) > +static int rpmsg_device_match(struct device *dev, const void *data) > { > - struct rpmsg_channel_info *chinfo = data; > + const struct rpmsg_channel_info *chinfo = data; > struct rpmsg_device *rpdev = to_rpmsg_device(dev); > > if (chinfo->src != RPMSG_ADDR_ANY && chinfo->src != rpdev->src) > diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c > index d91f54a6e752f2feb68da69f474375f1415f33a2..133f36457b283a53b4dca29adf081f385a371368 100644 > --- a/drivers/scsi/qla4xxx/ql4_os.c > +++ b/drivers/scsi/qla4xxx/ql4_os.c > @@ -7189,7 +7189,8 @@ static void qla4xxx_build_new_nt_list(struct scsi_qla_host *ha, > * 1: if flashnode entry is non-persistent > * 0: if flashnode entry is persistent > **/ > -static int qla4xxx_sysfs_ddb_is_non_persistent(struct device *dev, void *data) > +static int qla4xxx_sysfs_ddb_is_non_persistent(struct device *dev, > + const void *data) > { > struct iscsi_bus_flash_session *fnode_sess; > > diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c > index fde7de3b1e55381f7cd468ad308a3e4ee9417c8c..0d474de2d960a865c52c9e7253f173d70ddd8f16 100644 > --- a/drivers/scsi/scsi_transport_iscsi.c > +++ b/drivers/scsi/scsi_transport_iscsi.c > @@ -1324,7 +1324,7 @@ EXPORT_SYMBOL_GPL(iscsi_create_flashnode_conn); > * 1 on success > * 0 on failure > */ > -static int iscsi_is_flashnode_conn_dev(struct device *dev, void *data) > +static int iscsi_is_flashnode_conn_dev(struct device *dev, const void *data) > { > return dev->bus == &iscsi_flashnode_bus; > } > @@ -1335,7 +1335,7 @@ static int iscsi_destroy_flashnode_conn(struct iscsi_bus_flash_conn *fnode_conn) > return 0; > } > > -static int flashnode_match_index(struct device *dev, void *data) > +static int flashnode_match_index(struct device *dev, const void *data) > { > struct iscsi_bus_flash_session *fnode_sess = NULL; > int ret = 0; > @@ -1344,7 +1344,7 @@ static int flashnode_match_index(struct device *dev, void *data) > goto exit_match_index; > > fnode_sess = iscsi_dev_to_flash_session(dev); > - ret = (fnode_sess->target_id == *((int *)data)) ? 1 : 0; > + ret = (fnode_sess->target_id == *((const int *)data)) ? 1 : 0; > > exit_match_index: > return ret; > @@ -1389,8 +1389,8 @@ iscsi_get_flashnode_by_index(struct Scsi_Host *shost, uint32_t idx) > * %NULL on failure > */ > struct device * > -iscsi_find_flashnode_sess(struct Scsi_Host *shost, void *data, > - int (*fn)(struct device *dev, void *data)) > +iscsi_find_flashnode_sess(struct Scsi_Host *shost, const void *data, > + device_match_t fn) > { > return device_find_child(&shost->shost_gendev, data, fn); > } > diff --git a/drivers/slimbus/core.c b/drivers/slimbus/core.c > index b5d5bbb9fdb6614ffd578f5754226b50e394f0df..ab927fd077cb4fe1e29c004269fe52b2896c302f 100644 > --- a/drivers/slimbus/core.c > +++ b/drivers/slimbus/core.c > @@ -337,9 +337,9 @@ static bool slim_eaddr_equal(const struct slim_eaddr *a, > a->instance == b->instance); > } > > -static int slim_match_dev(struct device *dev, void *data) > +static int slim_match_dev(struct device *dev, const void *data) > { > - struct slim_eaddr *e_addr = data; > + const struct slim_eaddr *e_addr = data; > struct slim_device *sbdev = to_slim_device(dev); > > return slim_eaddr_equal(&sbdev->e_addr, e_addr); > @@ -385,9 +385,9 @@ struct slim_device *slim_get_device(struct slim_controller *ctrl, > } > EXPORT_SYMBOL_GPL(slim_get_device); > > -static int of_slim_match_dev(struct device *dev, void *data) > +static int of_slim_match_dev(struct device *dev, const void *data) > { > - struct device_node *np = data; > + const struct device_node *np = data; > struct slim_device *sbdev = to_slim_device(dev); > > return (sbdev->dev.of_node == np); > diff --git a/drivers/thunderbolt/retimer.c b/drivers/thunderbolt/retimer.c > index 89d2919d0193e8f5c68e669d054f3efc7abf78c8..21d2902c6102f0f593fb0c6d645acaff31ebb274 100644 > --- a/drivers/thunderbolt/retimer.c > +++ b/drivers/thunderbolt/retimer.c > @@ -461,7 +461,7 @@ struct tb_retimer_lookup { > u8 index; > }; > > -static int retimer_match(struct device *dev, void *data) > +static int retimer_match(struct device *dev, const void *data) > { > const struct tb_retimer_lookup *lookup = data; > struct tb_retimer *rt = tb_to_retimer(dev); > diff --git a/drivers/thunderbolt/xdomain.c b/drivers/thunderbolt/xdomain.c > index 11a50c86a1e4302968f44dafeab47977bac01dd5..b0630e6d94726f9069c20017876ec7e212071686 100644 > --- a/drivers/thunderbolt/xdomain.c > +++ b/drivers/thunderbolt/xdomain.c > @@ -1026,7 +1026,7 @@ static int remove_missing_service(struct device *dev, void *data) > return 0; > } > > -static int find_service(struct device *dev, void *data) > +static int find_service(struct device *dev, const void *data) > { > const struct tb_property *p = data; > struct tb_service *svc; > diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c > index 74fa02b237729931928b2ae4902c699ec017af94..8e0aa2c76d4037047a16f6c631eccaa066d8f230 100644 > --- a/drivers/tty/serial/serial_core.c > +++ b/drivers/tty/serial/serial_core.c > @@ -2365,9 +2365,9 @@ struct uart_match { > struct uart_driver *driver; > }; > > -static int serial_match_port(struct device *dev, void *data) > +static int serial_match_port(struct device *dev, const void *data) > { > - struct uart_match *match = data; > + const struct uart_match *match = data; > struct tty_driver *tty_drv = match->driver->tty_driver; > dev_t devt = MKDEV(tty_drv->major, tty_drv->minor_start) + > match->port->line; > diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c > index 4b3047e055a3737d3eb841e00fc976a70f8c9c3e..601a81aa1e1024265f2359393dee531a7779c6ea 100644 > --- a/drivers/usb/typec/class.c > +++ b/drivers/usb/typec/class.c > @@ -229,10 +229,10 @@ static const char * const usb_modes[] = { > /* ------------------------------------------------------------------------- */ > /* Alternate Modes */ > > -static int altmode_match(struct device *dev, void *data) > +static int altmode_match(struct device *dev, const void *data) > { > struct typec_altmode *adev = to_typec_altmode(dev); > - struct typec_device_id *id = data; > + const struct typec_device_id *id = data; > > if (!is_typec_altmode(dev)) > return 0; > @@ -1282,7 +1282,7 @@ const struct device_type typec_cable_dev_type = { > .release = typec_cable_release, > }; > > -static int cable_match(struct device *dev, void *data) > +static int cable_match(struct device *dev, const void *data) > { > return is_typec_cable(dev); > } > @@ -2028,7 +2028,7 @@ const struct device_type typec_port_dev_type = { > /* --------------------------------------- */ > /* Driver callbacks to report role updates */ > > -static int partner_match(struct device *dev, void *data) > +static int partner_match(struct device *dev, const void *data) > { > return is_typec_partner(dev); > } > diff --git a/include/linux/device.h b/include/linux/device.h > index 667cb6db9019349c9db0233acf9e78ff6a6d9625..0e0bc9bfe0d15a8734bf3d34106300f4df6b5364 100644 > --- a/include/linux/device.h > +++ b/include/linux/device.h > @@ -1081,8 +1081,8 @@ int device_for_each_child_reverse(struct device *dev, void *data, > int device_for_each_child_reverse_from(struct device *parent, > struct device *from, const void *data, > int (*fn)(struct device *, const void *)); > -struct device *device_find_child(struct device *dev, void *data, > - int (*match)(struct device *dev, void *data)); > +struct device *device_find_child(struct device *dev, const void *data, > + device_match_t match); > struct device *device_find_child_by_name(struct device *parent, > const char *name); > struct device *device_find_any_child(struct device *parent); > diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h > index bd1243657c019962853849b07fc2ae190ec3b557..4d3baf324900f4b2b1ff3a5724b7ca7d122dc468 100644 > --- a/include/scsi/scsi_transport_iscsi.h > +++ b/include/scsi/scsi_transport_iscsi.h > @@ -497,8 +497,8 @@ extern void iscsi_destroy_all_flashnode(struct Scsi_Host *shost); > extern int iscsi_flashnode_bus_match(struct device *dev, > const struct device_driver *drv); > extern struct device * > -iscsi_find_flashnode_sess(struct Scsi_Host *shost, void *data, > - int (*fn)(struct device *dev, void *data)); > +iscsi_find_flashnode_sess(struct Scsi_Host *shost, const void *data, > + device_match_t fn); > extern struct device * > iscsi_find_flashnode_conn(struct iscsi_bus_flash_session *fnode_sess); > > diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c > index 5a7c0e565a894545ee14f0e0186ed3c46b809b16..e827775baf2ee1d0e1c0ce5807c2cca5c372fc75 100644 > --- a/net/dsa/dsa.c > +++ b/net/dsa/dsa.c > @@ -1367,7 +1367,7 @@ static int dsa_switch_parse_of(struct dsa_switch *ds, struct device_node *dn) > return dsa_switch_parse_ports_of(ds, dn); > } > > -static int dev_is_class(struct device *dev, void *class) > +static int dev_is_class(struct device *dev, const void *class) > { > if (dev->class != NULL && !strcmp(dev->class->name, class)) > return 1; > diff --git a/tools/testing/cxl/test/cxl.c b/tools/testing/cxl/test/cxl.c > index d0337c11f9ee675b0c461c8ae28e50957dc644ce..cc8948f49117a98086b3ef2ea7a8de0ce1ec36a5 100644 > --- a/tools/testing/cxl/test/cxl.c > +++ b/tools/testing/cxl/test/cxl.c > @@ -725,7 +725,7 @@ static void default_mock_decoder(struct cxl_decoder *cxld) > cxld->reset = mock_decoder_reset; > } > > -static int first_decoder(struct device *dev, void *data) > +static int first_decoder(struct device *dev, const void *data) > { > struct cxl_decoder *cxld; > > > -- > 2.34.1 > >