From mboxrd@z Thu Jan 1 00:00:00 1970 From: Aleksa Sarai Subject: Re: [PATCH] cgroup: reorder flexible array members of struct cgroup_root Date: Sun, 22 Oct 2017 02:59:33 +1100 Message-ID: <85d7f6eb-7869-551d-01b1-fa1712f4bd40@suse.de> References: <20171017063322.11455-1-nick.desaulniers@gmail.com> <20171018133010.GD1302522@devbig577.frc2.facebook.com> <20171021153253.GG1302522@devbig577.frc2.facebook.com> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20171021153253.GG1302522-4dN5La/x3IkLX0oZNxdnEQ2O0Ztt9esIQQ4Iyu8u01E@public.gmane.org> Content-Language: en-US Sender: cgroups-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-ID: Content-Type: text/plain; charset="us-ascii"; format="flowed" To: Tejun Heo , Nick Desaulniers Cc: Li Zefan , Johannes Weiner , cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Linux Kernel Mailing List , Matthias Kaehlcke , Michael Davidson , Greg Hackmann , android-llvm-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org > Here, not necessarily but I don't want to move it for a bogus reason. > Why would we disallow embedding structs with flexible members in the > middle when it can be done and is useful? If we want to discuss > whether we want to avoid such usages in the kernel (but why?), sure, > let's have that discussion but we can't decide that on "clang warns on > it by default". There was a talk a few years ago by the clang folks[1] saying that while trying to build a kernel with clang, they discovered that several places in the kernel uses "VLAIS" (variable Length Arrays In Structs") and argued that this is a violation of the C specification, despite it being a GNU extension. They also submitted several patches that removed this code (even working around a user-space visible usage of VLAIS). [1]: https://www.linuxplumbersconf.org/2013/ocw/system/presentations/1221/original/VLAIS.pdf -- Aleksa Sarai Senior Software Engineer (Containers) SUSE Linux GmbH https://www.cyphar.com/