* [PATCH 2/2] Use char * for struct drm_dp_aux_msg's buffer @ 2018-05-21 23:36 Maya Rashish 2018-05-22 8:33 ` Jani Nikula 0 siblings, 1 reply; 6+ messages in thread From: Maya Rashish @ 2018-05-21 23:36 UTC (permalink / raw) To: dri-devel In drm_dp_i2c_drain_msg we do msg.buffer += err which isn't legal for void *. --- 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; }; -- 2.17.0 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] Use char * for struct drm_dp_aux_msg's buffer 2018-05-21 23:36 [PATCH 2/2] Use char * for struct drm_dp_aux_msg's buffer Maya Rashish @ 2018-05-22 8:33 ` Jani Nikula 2018-05-23 9:09 ` Daniel Vetter 0 siblings, 1 reply; 6+ messages in thread From: Jani Nikula @ 2018-05-22 8:33 UTC (permalink / raw) To: Maya Rashish, dri-devel On Mon, 21 May 2018, Maya Rashish <coypu@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. 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@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] Use char * for struct drm_dp_aux_msg's buffer 2018-05-22 8:33 ` Jani Nikula @ 2018-05-23 9:09 ` Daniel Vetter 2018-05-23 9:56 ` Jani Nikula 2018-05-23 10:09 ` coypu 0 siblings, 2 replies; 6+ messages in thread From: Daniel Vetter @ 2018-05-23 9:09 UTC (permalink / raw) To: Jani Nikula; +Cc: Maya Rashish, dri-devel On Tue, May 22, 2018 at 11:33:35AM +0300, Jani Nikula wrote: > On Mon, 21 May 2018, Maya Rashish <coypu@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. I thought C99 even deprecated char * as the generic pointer, recommending void * instead, which guarantees the exact same pointer arithmetic as char * (but has the special casting rules). Which static checker came up with this? -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@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] Use char * for struct drm_dp_aux_msg's buffer 2018-05-23 9:09 ` Daniel Vetter @ 2018-05-23 9:56 ` Jani Nikula 2018-05-24 8:12 ` Daniel Vetter 2018-05-23 10:09 ` coypu 1 sibling, 1 reply; 6+ messages in thread From: Jani Nikula @ 2018-05-23 9:56 UTC (permalink / raw) To: Daniel Vetter; +Cc: Maya Rashish, dri-devel On Wed, 23 May 2018, Daniel Vetter <daniel@ffwll.ch> wrote: > On Tue, May 22, 2018 at 11:33:35AM +0300, Jani Nikula wrote: >> On Mon, 21 May 2018, Maya Rashish <coypu@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. > (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. 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@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] Use char * for struct drm_dp_aux_msg's buffer 2018-05-23 9:56 ` Jani Nikula @ 2018-05-24 8:12 ` Daniel Vetter 0 siblings, 0 replies; 6+ messages in thread From: Daniel Vetter @ 2018-05-24 8:12 UTC (permalink / raw) To: Jani Nikula; +Cc: Maya Rashish, dri-devel On Wed, May 23, 2018 at 12:56:25PM +0300, Jani Nikula wrote: > On Wed, 23 May 2018, Daniel Vetter <daniel@ffwll.ch> wrote: > > On Tue, May 22, 2018 at 11:33:35AM +0300, Jani Nikula wrote: > >> On Mon, 21 May 2018, Maya Rashish <coypu@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@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 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] Use char * for struct drm_dp_aux_msg's buffer 2018-05-23 9:09 ` Daniel Vetter 2018-05-23 9:56 ` Jani Nikula @ 2018-05-23 10:09 ` coypu 1 sibling, 0 replies; 6+ messages in thread From: coypu @ 2018-05-23 10:09 UTC (permalink / raw) To: Daniel Vetter; +Cc: dri-devel It's GCC's -Wpointer-arith. I'm stealing your code for another project that happened to have it on by default. I'm trying to look for opportunities to contribute back positive changes :-) On Wed, May 23, 2018 at 11:09:28AM +0200, Daniel Vetter wrote: > On Tue, May 22, 2018 at 11:33:35AM +0300, Jani Nikula wrote: > > On Mon, 21 May 2018, Maya Rashish <coypu@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. > > I thought C99 even deprecated char * as the generic pointer, recommending > void * instead, which guarantees the exact same pointer arithmetic as char > * (but has the special casting rules). > > Which static checker came up with this? > -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@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-05-24 8:13 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-05-21 23:36 [PATCH 2/2] Use char * for struct drm_dp_aux_msg's buffer Maya Rashish 2018-05-22 8:33 ` Jani Nikula 2018-05-23 9:09 ` Daniel Vetter 2018-05-23 9:56 ` Jani Nikula 2018-05-24 8:12 ` Daniel Vetter 2018-05-23 10:09 ` coypu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).