Re: [PATCH v4] gpio: sim: don't fiddle with GPIOLIB private members

From: Andy Shevchenko
Date: Mon Sep 11 2023 - 18:22:00 EST


On Fri, Sep 08, 2023 at 02:39:28PM +0200, Bartosz Golaszewski wrote:
> On Thu, Sep 7, 2023 at 4:13 PM Andy Shevchenko
> <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
> > On Thu, Sep 07, 2023 at 10:27:51AM +0200, Bartosz Golaszewski wrote:

...

> > > #include <linux/completion.h>
> > > #include <linux/configfs.h>
> > > #include <linux/device.h>
> >
> > > +#include <linux/device/bus.h>
> >
> > No need, the device.h guarantees that.
>
> Wait, wasn't you the one who always suggests including headers
> directly if we're using any symbols defined in them? Like when I said
> that we don't need to include linux/notifier.h because it's already
> included in gpiolib.h and you argued the opposite? :)
>
> device_match_fwnode() is defined in linux/device/bus.h so I thought
> it's in order to include it.

Yes, but I am not radical with it, I am for a compromise when some headers
guarantee to include some others. That is the case I believe, I don't think
device.h ever will be broken to the parts that are not include each other
(too many things to change right now, if it happens, not in the feasible
future).

...

> > > +static int gpio_sim_dev_match_fwnode(struct device *dev, void *data)
> > > +{
> > > + /*
> > > + * We can't pass this directly to device_find_child() due to pointer
> > > + * type mismatch.
> > > + */
> >
> > Not sure if this comment adds any value.
>
> I disagree - I would have used device_match_fwnode() as argument
> passed directly to device_find_child() but I cannot due to pointer
> type mismatch error so we need this wrapper and it's useful to say
> why.

Yes, and we have dozen(s ?) of the similar wrappers without a comment.
So, I'm still for removing it.

> > > + return device_match_fwnode(dev, data);
> > > +}

--
With Best Regards,
Andy Shevchenko