Maxime Ripard <maxime@xxxxxxxxxx> writes: Hello Maxime, > container_of_const() allows to preserve the pointer constness and is > thus more flexible than inline functions. > > Let's switch all our instances of container_of() to > container_of_const(). > > Signed-off-by: Maxime Ripard <maxime@xxxxxxxxxx> > --- [...] > -static inline struct vc4_dpi * > -to_vc4_dpi(struct drm_encoder *encoder) > -{ > - return container_of(encoder, struct vc4_dpi, encoder.base); > -} > +#define to_vc4_dpi(_encoder) \ > + container_of_const(_encoder, struct vc4_dpi, encoder.base) > A disadvantage of this approach though is that the type checking is lost. Since you already had these, I would probably had changed them to return a const pointer and just replace container_of() for container_of_const(). But I see that there are a lot of patches from Greg all over the kernel that do exactly this, dropping static inline functions in favor of using container_of_const() directly. So it seems the convention is what you do. Reviewed-by: Javier Martinez Canillas <javierm@xxxxxxxxxx> -- Best regards, Javier Martinez Canillas Core Platforms Red Hat