Linux-remoteproc Archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/32] driver core: Constify API device_find_child() and adapt for various existing usages
@ 2024-12-03  0:33 Zijun Hu
  2024-12-03  0:33 ` [PATCH v2 01/32] driver core: Constify API device_find_child() Zijun Hu
                   ` (12 more replies)
  0 siblings, 13 replies; 24+ messages in thread
From: Zijun Hu @ 2024-12-03  0:33 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rafael J. Wysocki, Chun-Kuang Hu,
	Philipp Zabel, David Airlie, Simona Vetter, Matthias Brugger,
	AngeloGioacchino Del Regno, Jean Delvare, Guenter Roeck,
	Martin Tuma, Mauro Carvalho Chehab, Andreas Noever, Michael Jamet,
	Mika Westerberg, Yehezkel Bernat, Linus Walleij,
	Bartosz Golaszewski, Andrew Lunn, Vladimir Oltean,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Simon Horman, Uwe Kleine-König, Dan Williams, Vishal Verma,
	Dave Jiang, Ira Weiny, Takashi Sakamoto, Jiri Slaby,
	Heikki Krogerus, Srinivas Kandagatla, Lee Duncan, Chris Leech,
	Mike Christie, James E.J. Bottomley, Martin K. Petersen,
	Nilesh Javali, Manish Rangankar, GR-QLogic-Storage-Upstream,
	Davidlohr Bueso, Jonathan Cameron, Alison Schofield,
	Andreas Larsson, Stuart Yoder, Laurentiu Tudor, Jens Axboe,
	Sudeep Holla, Cristian Marussi, Ard Biesheuvel, Bjorn Andersson,
	Mathieu Poirier
  Cc: Zijun Hu, linux-kernel, dri-devel, linux-mediatek,
	linux-arm-kernel, linux-hwmon, linux-media, linux-usb, linux-gpio,
	netdev, linux-pwm, nvdimm, linux1394-devel, linux-serial,
	linux-sound, open-iscsi, linux-scsi, linux-cxl, sparclinux,
	linux-block, arm-scmi, linux-efi, linux-remoteproc, Zijun Hu

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 <quic_zijuhu@quicinc.com>
---
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

---
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

 arch/sparc/kernel/vio.c                |  6 +++---
 drivers/base/core.c                    | 30 ++++++++++--------------------
 drivers/block/sunvdc.c                 |  6 +++---
 drivers/bus/fsl-mc/dprc-driver.c       |  6 +++---
 drivers/cxl/core/pci.c                 |  4 ++--
 drivers/cxl/core/pmem.c                |  9 +++------
 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                |  7 +------
 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/nvdimm/claim.c                 |  9 +--------
 drivers/pwm/core.c                     |  2 +-
 drivers/rpmsg/rpmsg_core.c             |  4 ++--
 drivers/scsi/qla4xxx/ql4_os.c          |  3 ++-
 drivers/scsi/scsi_transport_iscsi.c    | 10 +++++-----
 drivers/slimbus/core.c                 | 17 +++++------------
 drivers/thunderbolt/retimer.c          |  2 +-
 drivers/thunderbolt/xdomain.c          |  2 +-
 drivers/tty/serial/serial_core.c       |  4 ++--
 drivers/usb/typec/class.c              | 31 ++++++++++++++-----------------
 include/linux/device.h                 |  4 ++--
 include/linux/device/bus.h             |  1 +
 include/scsi/scsi_transport_iscsi.h    |  4 ++--
 net/dsa/dsa.c                          |  2 +-
 tools/testing/cxl/test/cxl.c           |  2 +-
 30 files changed, 89 insertions(+), 119 deletions(-)
---
base-commit: 40384c840ea1944d7c5a392e8975ed088ecf0b37
change-id: 20241201-const_dfc_done-aaec71e3bbea

Best regards,
-- 
Zijun Hu <quic_zijuhu@quicinc.com>


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2024-12-05  0:07 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-03  0:33 [PATCH v2 00/32] driver core: Constify API device_find_child() and adapt for various existing usages Zijun Hu
2024-12-03  0:33 ` [PATCH v2 01/32] driver core: Constify API device_find_child() Zijun Hu
2024-12-03  0:33 ` [PATCH v2 02/32] driver core: Introduce device_match_type() to match device with a device type Zijun Hu
2024-12-03  0:33 ` [PATCH v2 03/32] drm/mediatek: Adapt for constified device_find_child() Zijun Hu
2024-12-03  0:33 ` [PATCH v2 04/32] hwmon: " Zijun Hu
2024-12-03  0:33 ` [PATCH v2 05/32] media: pci: mgb4: " Zijun Hu
2024-12-03  0:33 ` [PATCH v2 06/32] thunderbolt: " Zijun Hu
2024-12-03  0:33 ` [PATCH v2 07/32] gpio: sim: Remove gpio_sim_dev_match_fwnode() Zijun Hu
2024-12-03  0:33 ` [PATCH v2 08/32] net: dsa: Adapt for constified device_find_child() Zijun Hu
2024-12-03  0:33 ` [PATCH v2 09/32] pwm: " Zijun Hu
2024-12-03  0:33 ` [PATCH v2 10/32] nvdimm: " Zijun Hu
2024-12-03  0:33 ` [PATCH v2 11/32] libnvdimm: Simplify nd_namespace_store() implementation Zijun Hu
2024-12-03  2:29 ` [PATCH v2 00/32] driver core: Constify API device_find_child() and adapt for various existing usages quic_zijuhu
2024-12-03 12:00 ` Uwe Kleine-König
2024-12-03 12:23   ` Zijun Hu
2024-12-03 12:41     ` Greg Kroah-Hartman
2024-12-03 13:02       ` Zijun Hu
2024-12-03 13:58         ` James Bottomley
2024-12-03 14:07           ` Thomas Weißschuh
2024-12-03 14:56             ` Zijun Hu
2024-12-03 15:34               ` James Bottomley
2024-12-04 12:26                 ` Zijun Hu
2024-12-04 16:42                   ` James Bottomley
2024-12-05  0:07                     ` Zijun Hu

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 read-only IMAP folder(s) and NNTP newsgroup(s).