lkml.org 
[lkml]   [2020]   [Jun]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] docs: deprecated.rst: Add note to the use of struct_size() helper
On Thu, Jun 04, 2020 at 01:25:26PM -0700, Kees Cook wrote:
> On Thu, Jun 04, 2020 at 01:21:23PM -0500, Gustavo A. R. Silva wrote:
> > Yeah. My reasoning for is that it will take a while --at least one
> > development cycle more-- to completely get rid of all the 0/1-arrays.
>
> Right -- but we need a place to point people when we tell them "please
> don't use 0-byte and 1-byte arrays", and the deprecated.rst is the place
> for that.
>
> Having it in deprecated.rst once they're all gone only serves to explain
> why various compiler flags are enabled, etc. But while they're being
> removed, it serves as a single place to document the issue (as in, much
> of the flex-array patch commit log "boilerplate" can actually be
> repeated in deprecated.rst.
>
> > But I think we can add this note while I continue working on the flexible-array
> > conversions. Once that work is complete, I can go back and update the
> > documentation. :)
> >
> > What do you think?
>
> I think we need to document it at the beginning of the work (and I
> should have asked for this earlier). So let's just add a new section on
> dynamic array usage, etc. It can include a note about struct_size() as
> an example for why 1-byte arrays are so weird. :)
>

Got ya. :)

One last thing... I was thinking on adding such section (dynamic array
usage) to coding-style.rst, explaining how to use struct_size() and
transform the different open-coded versions we currently have in the
kernel, e.g. I have seen people use offsetof() --and sometimes open-coded
versions of sizeof_field()-- and its open-coded version to do arithmetic
in allocator arguments.

Thanks
--
Gustavo

\
 
 \ /
  Last update: 2020-06-04 23:15    [W:0.147 / U:0.012 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site