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

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

From: Andreas Dilger <hidden>
Date: 2019-06-11 21:28:06
Also in: bpf, dri-devel, intel-gfx, kvm, linux-arm-kernel, linux-ext4, linux-mips, linux-mm, linux-sctp, lkml

On Jun 11, 2019, at 3:09 PM, Andrew Morton [off-list ref] wrote:
On Tue, 11 Jun 2019 15:00:10 -0600 Andreas Dilger [off-list ref] wrote:
quoted
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.
quoted
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().
The real question is whether we want to live with a sub-standard macro for
the next 20 years rather than taking the opportunity to clean it up now?
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?
Cheers, Andreas




Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help