RE: [PATCH v2] driver core: allow kobj_to_dev() to take a const pointer

From: David Laight
Date: Mon Oct 17 2022 - 07:24:45 EST


From: Greg Kroah-Hartman
> Sent: 17 October 2022 09:04
>
> On Mon, Oct 17, 2022 at 07:54:52AM +0000, Sakari Ailus wrote:
> > Hi Greg,
> >
> > On Sun, Oct 16, 2022 at 12:41:26PM +0200, Greg Kroah-Hartman wrote:
> > > If a const * to a kobject is passed to kobj_to_dev(), we want to return
> > > back a const * to a device as the driver core shouldn't be modifying a
> > > constant structure. But when dealing with container_of() the pointer
> > > const attribute is cast away, so we need to manually handle this by
> > > determining the type of the pointer passed in to know the type of the
> > > pointer to pass out.
> >
> > Alternatively container_of() could be fixed, but that will likely produce
> > lots of warnings currently.
>
> Yeah, we can not do that because, as you found out, there's just too
> many warnings that it would cause. Let's work on the individual
> subsystems to clean them all up first before worrying about the core
> container_of() macro as that should fix the majority of the build
> warnings.

Is it possible to generate a fixed container_of() with a
different name and then use that to clean up the subsystems?
Then finally rename it back?

That you probably be a lot less churn.

David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)