[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAJZ5v0jqD-nwUXFeDMm8w122jonaKJ5y9oBwHh3f6khmKy6Hqg@mail.gmail.com>
Date: Wed, 8 Jun 2022 15:32:06 +0200
From: "Rafael J. Wysocki" <rafael@...nel.org>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: "Rafael J. Wysocki" <rafael@...nel.org>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Mark Brown <broonie@...nel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
linux-spi <linux-spi@...r.kernel.org>
Subject: Re: [PATCH v1 1/2] driver core: Introduce device_find_first_child() helper
On Wed, Jun 8, 2022 at 2:23 PM Greg Kroah-Hartman
<gregkh@...uxfoundation.org> wrote:
>
> On Wed, Jun 08, 2022 at 02:15:19PM +0200, Rafael J. Wysocki wrote:
> > On Wed, Jun 8, 2022 at 2:04 PM Greg Kroah-Hartman
> > <gregkh@...uxfoundation.org> wrote:
> > >
> > > On Wed, Jun 08, 2022 at 02:53:28PM +0300, Andy Shevchenko 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@...ux.intel.com> 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.
> > > >
> > > > 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()...
> > >
> > > int device_match_any(struct device *dev, const void *unused)
> > >
> > > How is that not ok to use here?
> >
> > Because of the const that will be frowned upon by the compiler.
> >
> > We need to define another device_match_any_relaxed() taking (void *)
> > as the second argument for this.
>
> Or we could cast it away :)
I'm not sure what exactly you mean. The function pointer signature
doesn't match here.
Powered by blists - more mailing lists