Re: [PATCH 1/4] container_of: add container_of_const() that preserves const-ness of the pointer

From: Greg Kroah-Hartman
Date: Fri Dec 02 2022 - 01:42:10 EST


On Thu, Dec 01, 2022 at 08:46:12PM -0400, Jason Gunthorpe wrote:
> On Fri, Dec 02, 2022 at 12:50:05AM +0200, Andy Shevchenko wrote:
> > On Thu, Dec 01, 2022 at 08:30:54PM +0100, Greg Kroah-Hartman wrote:
> > > container_of does not preserve the const-ness of a pointer that is
> > > passed into it, which can cause C code that passes in a const pointer to
> > > get a pointer back that is not const and then scribble all over the data
> > > in it. To prevent this, container_of_const() will preserve the const
> > > status of the pointer passed into it using the newly available _Generic()
> > > method.
> > >
> > > Co-developed-by: Jason Gunthorpe <jgg@xxxxxxxx>
> >
> > I believe this tag requires SoB of the co-develper.
>
> Sure, Greg you can add whatever tags are required

I need you to send me a signed-off-by line, I can't add that on my own
for obvious reasons.

> Did you look at possibly just calling this "container_of" ?

Yes, but to do that would require all instances to be touched as this
call takes 4 parameters, while container_of() takes 3, so that can't be
done simply, AND there would be a lot of build errors all at once.

I'll work on moving code over to the new call as needed.

thanks,

greg k-h