Thread (12 messages) 12 messages, 8 authors, 2019-07-03

Re: [PATCH V2] include: linux: Regularise the use of FIELD_SIZEOF macro

From: Andrew Morton <akpm@linux-foundation.org>
Date: 2019-06-11 21:09:12
Also in: bpf, dri-devel, intel-gfx, kvm, linux-arm-kernel, linux-ext4, linux-mips, linux-mm, linux-sctp, lkml

On Tue, 11 Jun 2019 15:00:10 -0600 Andreas Dilger [off-list ref] wrote:
quoted
quoted
to FIELD_SIZEOF
As Alexey has pointed out, C structs and unions don't have fields -
they have members.  So this is an opportunity to switch everything to
a new member_sizeof().

What do people think of that and how does this impact the patch footprint?
I did a check, and FIELD_SIZEOF() is used about 350x, while sizeof_field()
is about 30x, and SIZEOF_FIELD() is only about 5x.
Erk.  Sorry, I should have grepped.
That said, I'm much more in favour of "sizeof_field()" or "sizeof_member()"
than FIELD_SIZEOF().  Not only does that better match "offsetof()", with
which it is closely related, but is also closer to the original "sizeof()".

Since this is a rather trivial change, it can be split into a number of
patches to get approval/landing via subsystem maintainers, and there is no
huge urgency to remove the original macros until the users are gone.  It
would make sense to remove SIZEOF_FIELD() and sizeof_field() quickly so
they don't gain more users, and the remaining FIELD_SIZEOF() users can be
whittled away as the patches come through the maintainer trees.
In that case I'd say let's live with FIELD_SIZEOF() and remove
sizeof_field() and SIZEOF_FIELD().

I'm a bit surprised that the FIELD_SIZEOF() definition ends up in
stddef.h rather than in kernel.h where such things are normally
defined.  Why is that?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help