On Wed, Jun 8, 2022 at 1:54 PM Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > > On Wed, Jun 08, 2022 at 01:29:08PM +0200, Rafael J. Wysocki wrote: > > On Tue, Jun 7, 2022 at 10:22 PM Andy Shevchenko > > <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > > ... > > > I would define it as > > > > static int match_first(struct device *dev, void *) > > { > > return 1; > > } > > > > struct device *device_find_first_child(struct device *parent) > > { > > return device_find_first_child(parent, NULL, match_first); > > } > > EXPORT_SYMBOL_GPL(device_find_first_child); > > > > which is not that much more overhead. > > With this we actually may simply provide a match function and it will make the > clean ups (like patch 2 in the series) almost the same without introducing a > device core call. That works too, but IMO it would be a bit cleaner to have the wrapper defined as a proper function. > > Something like > > int device_match_any_for_find(struct device *dev, void *unused) > { > return 1; > } > > As I replied to Greg it's pity we can't use device_match_any()... Well, that only is a matter of adding one more variant of _match_any_ ...