[PATCH 2/2] Use char * for struct drm_dp_aux_msg's buffer

Daniel Vetter daniel at ffwll.ch
Thu May 24 08:12:59 UTC 2018


On Wed, May 23, 2018 at 12:56:25PM +0300, Jani Nikula wrote:
> On Wed, 23 May 2018, Daniel Vetter <daniel at ffwll.ch> wrote:
> > On Tue, May 22, 2018 at 11:33:35AM +0300, Jani Nikula wrote:
> >> On Mon, 21 May 2018, Maya Rashish <coypu at sdf.org> wrote:
> >> > In drm_dp_i2c_drain_msg we do msg.buffer += err which isn't
> >> > legal for void *.
> >> 
> >> Well, this isn't pedantic C, it's GCC. There are tons of pointer
> >> arithmetics for void pointers all over the kernel.
> >
> 
> TTBOMK,
> 
> > I thought C99 even deprecated char * as the generic pointer, recommending
> > void * instead,
> 
> True.
> 
> > which guarantees the exact same pointer arithmetic as char *
> 
> False.

Indeed:

https://stackoverflow.com/questions/3523145/pointer-arithmetic-for-void-pointer-in-c

TIL

> > (but has the special casting rules).
> 
> True.
> 
> Void pointer arithmetics is still just a GCC extension, also supported
> by Clang for compatibility.
> 
> > Which static checker came up with this?
> 
> Should be enough to turn GCC warning knobs to 11. But I don't imagine
> being able to change this in the kernel code base.

Yeah, I think kernel is so full of gccism that this won't work. I think
we'll just leave this as-is. Especially since the stackoverflow answer
suggests I'm by far not the only one who got tricked by the standard's
wording.
-Daniel
> 
> BR,
> Jani.
> 
> > -Daniel
> >
> >> 
> >> BR,
> >> Jani.
> >> 
> >> > ---
> >> >  include/drm/drm_dp_helper.h | 2 +-
> >> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >> >
> >> > diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
> >> > index 62903bae..06f9a61f 100644
> >> > --- a/include/drm/drm_dp_helper.h
> >> > +++ b/include/drm/drm_dp_helper.h
> >> > @@ -1058,7 +1058,7 @@ struct drm_dp_aux_msg {
> >> >  	unsigned int address;
> >> >  	u8 request;
> >> >  	u8 reply;
> >> > -	void *buffer;
> >> > +	char *buffer;
> >> >  	size_t size;
> >> >  };
> >> 
> >> -- 
> >> Jani Nikula, Intel Open Source Graphics Center
> >> _______________________________________________
> >> dri-devel mailing list
> >> dri-devel at lists.freedesktop.org
> >> https://lists.freedesktop.org/mailman/listinfo/dri-devel
> 
> -- 
> Jani Nikula, Intel Open Source Graphics Center

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list