All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
	"Danilo Krummrich" <dakr@kernel.org>,
	"Lyude Paul" <lyude@redhat.com>,
	"Alexander Lobakin" <aleksander.lobakin@intel.com>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Lukas Wunner" <lukas@wunner.de>,
	"Mark Brown" <broonie@kernel.org>,
	"Maíra Canal" <mairacanal@riseup.net>,
	"Robin Murphy" <robin.murphy@arm.com>,
	"Simona Vetter" <simona.vetter@ffwll.ch>,
	"Zijun Hu" <quic_zijuhu@quicinc.com>,
	linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
	rust-for-linux@vger.kernel.org
Subject: Re: [PATCH 1/3] driver core: add a faux bus for use when a simple device/bus is needed
Date: Mon, 3 Feb 2025 18:05:19 +0200	[thread overview]
Message-ID: <Z6DpP3qMNYZoKEP2@smile.fi.intel.com> (raw)
In-Reply-To: <2025020300-gown-outmatch-1343@gregkh>

On Mon, Feb 03, 2025 at 04:35:45PM +0100, Greg Kroah-Hartman wrote:
> On Mon, Feb 03, 2025 at 05:11:03PM +0200, Andy Shevchenko wrote:
> > On Mon, Feb 03, 2025 at 03:25:17PM +0100, Greg Kroah-Hartman wrote:

...

> > > +#include <linux/device/faux.h>
> > 
> > I would rather think that this goes after generic inclusions...
> > 
> > > +#include <linux/err.h>
> > > +#include <linux/init.h>
> > > +#include <linux/slab.h>
> > > +#include <linux/string.h>
> > 
> > ...somewhere here.
> > 
> > But looking into organisation of device.h and device/*.h,
> > I would rather think of the linux/faux_device.h.
> 
> It can go anywhere, there is no need to sort things :)

It's not about sorting, it's about grouping from more generic to less generic.

> > > +#include "base.h"
> > 
> > I don't remember by heart what it does include, I would go with IWYU principle
> > and list above all what we use.
> > 
> > container_of.h
> > device.h
> > export.h
> > printk.h
> > types.h
> 
> That's not what the driver core ever did, so no need to worry about it,
> thanks.

But it doesn't mean that driver code does its best. No big worries, of course.

...

> > > +	return (strcmp(faux_obj->name, drv->name) == 0);
> > 
> > Outer parentheses are not needed.
> 
> Makes me feel good as it is an assignment test, and that's what
> platform.c has for the past few decades.

Sure, it also can be written as

	return !strcmp(faux_obj->name, drv->name);

that makes the same without explicit comparing to 0. But it's matter of taste.

...

> > > +/**
> > > + * __faux_device_create - create and register a faux device and driver
> > > + * @name: name of the device and driver we are adding
> > > + * @faux_ops: struct faux_driver_ops that the new device will call back into, can be NULL
> > > + * @owner: module owner of the device/driver
> > > + *
> > > + * Create a new faux device and driver, both with the same name, and register
> > > + * them in the driver core properly.  The probe() callback of @faux_ops will be
> > > + * called with the new device that is created for the caller to do something
> > > + * with.
> > 
> > The kernel-doc will complain on missing Return: section.
> 
> Is that new?  Does that mean platform.c has lots of complaints in it as
> well?  What does platform_find_device_by_driver() give you for a
> documentation issue?
> 
> And as I didn't hook this up to the kernel documentation build yet, it
> shouldn't produce any warnings anywhere :)

I would rather say it's old.

Run

	kernel-doc -Wall -none -v ...your file...

and find the warning. During the kernel builds this is moved to extra warnings.

> > > + */

...

> > > +	faux_obj = kzalloc(sizeof(*faux_obj) + strlen(name) + 1, GFP_KERNEL);
> > 
> > Potential overflow. To avoid one may use struct_size() from overflow.h.
> 
> Users should not be providing the string here.  Again, this comes from
> platform.c.

I'm not sure I follow. The name parameter is not limited anyhow, so one may
provide non-terminated string and strlen() will return an arbitrary number.
Potentially this can lead to big numbers and become an overflow when gets
to a parameter for kmalloc(). This most likely never happen in real life,
but still the overflow is possible.

-- 
With Best Regards,
Andy Shevchenko



  parent reply	other threads:[~2025-02-03 16:05 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-03 14:25 [PATCH 0/3] Driver core: faux bus Greg Kroah-Hartman
2025-02-03 14:25 ` [PATCH 1/3] driver core: add a faux bus for use when a simple device/bus is needed Greg Kroah-Hartman
2025-02-03 15:11   ` Andy Shevchenko
2025-02-03 15:13     ` Andy Shevchenko
2025-02-03 15:35     ` Greg Kroah-Hartman
2025-02-03 15:46       ` Greg Kroah-Hartman
2025-02-03 16:05         ` Andy Shevchenko
2025-02-03 16:05       ` Andy Shevchenko [this message]
2025-02-03 16:10         ` Andy Shevchenko
2025-02-03 16:13         ` Greg Kroah-Hartman
2025-02-03 16:22           ` Andy Shevchenko
2025-02-04  9:25   ` Jonathan Cameron
2025-02-04 10:14     ` Greg Kroah-Hartman
2025-02-04 10:08   ` Thomas Weißschuh
2025-02-04 10:20     ` Greg Kroah-Hartman
2025-02-04 10:44       ` Thomas Weißschuh
2025-02-04 10:49         ` Greg Kroah-Hartman
2025-02-03 14:25 ` [PATCH 2/3] regulator: dummy: convert to use the faux bus Greg Kroah-Hartman
2025-02-03 15:39   ` Mark Brown
2025-02-03 15:46     ` Greg Kroah-Hartman
2025-02-03 16:11       ` Mark Brown
2025-02-03 14:25 ` [PATCH 3/3] USB: phy: convert usb_phy_generic logic to use a faux device Greg Kroah-Hartman
2025-02-03 15:15   ` Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Z6DpP3qMNYZoKEP2@smile.fi.intel.com \
    --to=andriy.shevchenko@linux.intel.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=aleksander.lobakin@intel.com \
    --cc=bhelgaas@google.com \
    --cc=broonie@kernel.org \
    --cc=dakr@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=lukas@wunner.de \
    --cc=lyude@redhat.com \
    --cc=mairacanal@riseup.net \
    --cc=quic_zijuhu@quicinc.com \
    --cc=rafael@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=simona.vetter@ffwll.ch \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.