Commit b45ed06f authored by Zijun Hu's avatar Zijun Hu Committed by Greg Kroah-Hartman
Browse files

drivers/base: Introduce device_match_t for device finding APIs



There are several drivers/base APIs for finding a specific device, and
they currently use the following good type for the @match parameter:
int (*match)(struct device *dev, const void *data)

Since these operations do not modify the caller-provided @*data, this
type is worthy of a dedicated typedef:
typedef int (*device_match_t)(struct device *dev, const void *data)

Advantages of using device_match_t:
 - Shorter API declarations and definitions
 - Prevent further APIs from using a bad type for @match

So introduce device_match_t and apply it to the existing
(bus|class|driver|auxiliary)_find_device() APIs.

Signed-off-by: default avatarZijun Hu <quic_zijuhu@quicinc.com>
Link: https://lore.kernel.org/r/20240813-dev_match_api-v3-1-6c6878a99b9f@quicinc.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f0e5311a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -352,7 +352,7 @@ EXPORT_SYMBOL_GPL(__auxiliary_device_add);
 */
struct auxiliary_device *auxiliary_find_device(struct device *start,
					       const void *data,
					       int (*match)(struct device *dev, const void *data))
					       device_match_t match)
{
	struct device *dev;

+1 −1
Original line number Diff line number Diff line
@@ -391,7 +391,7 @@ EXPORT_SYMBOL_GPL(bus_for_each_dev);
 */
struct device *bus_find_device(const struct bus_type *bus,
			       struct device *start, const void *data,
			       int (*match)(struct device *dev, const void *data))
			       device_match_t match)
{
	struct subsys_private *sp = bus_to_subsys(bus);
	struct klist_iter i;
+1 −2
Original line number Diff line number Diff line
@@ -433,8 +433,7 @@ EXPORT_SYMBOL_GPL(class_for_each_device);
 * code.  There's no locking restriction.
 */
struct device *class_find_device(const struct class *class, const struct device *start,
				 const void *data,
				 int (*match)(struct device *, const void *))
				 const void *data, device_match_t match)
{
	struct subsys_private *sp = class_to_subsys(class);
	struct class_dev_iter iter;
+1 −1
Original line number Diff line number Diff line
@@ -150,7 +150,7 @@ EXPORT_SYMBOL_GPL(driver_for_each_device);
 */
struct device *driver_find_device(const struct device_driver *drv,
				  struct device *start, const void *data,
				  int (*match)(struct device *dev, const void *data))
				  device_match_t match)
{
	struct klist_iter i;
	struct device *dev;
+1 −1
Original line number Diff line number Diff line
@@ -271,6 +271,6 @@ void auxiliary_driver_unregister(struct auxiliary_driver *auxdrv);

struct auxiliary_device *auxiliary_find_device(struct device *start,
					       const void *data,
					       int (*match)(struct device *dev, const void *data));
					       device_match_t match);

#endif /* _AUXILIARY_BUS_H_ */
Loading