From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Joe Perches <joe@perches.com>,
"Gustavo A. R. Silva" <gustavoars@kernel.org>
Cc: Elliot Berman <quic_eberman@quicinc.com>,
Andrew Morton <akpm@linux-foundation.org>,
Bjorn Andersson <quic_bjorande@quicinc.com>,
Murali Nalajala <quic_mnalajal@quicinc.com>,
Trilok Soni <quic_tsoni@quicinc.com>,
Srivatsa Vaddagiri <quic_svaddagi@quicinc.com>,
Carl van Schaik <quic_cvanscha@quicinc.com>,
Andy Gross <agross@kernel.org>,
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
Jassi Brar <jassisinghbrar@gmail.com>,
linux-arm-kernel@lists.infradead.org,
Mark Rutland <mark.rutland@arm.com>,
Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
Sudeep Holla <sudeep.holla@arm.com>,
Marc Zyngier <maz@kernel.org>, Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Jonathan Corbet <corbet@lwn.net>, Will Deacon <will@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Arnd Bergmann <arnd@arndb.de>,
devicetree@vger.kernel.org, linux-doc@vger.kernel.org,
linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: new checkpatch flexible array test ? (was Re: [PATCH v4 12/14] gunyah: rsc_mgr: Add RPC for console services)
Date: Mon, 31 Oct 2022 13:23:54 -0500 [thread overview]
Message-ID: <89eca382-fca3-28f9-eac7-f855f2efb598@embeddedor.com> (raw)
In-Reply-To: <04ade5f54bd3dc658cb8606c98b0b1fe34a97383.camel@perches.com>
On 10/3/22 00:38, Joe Perches wrote:
> On Mon, 2022-10-03 at 07:29 +0200, Greg Kroah-Hartman wrote:
>> On Sun, Oct 02, 2022 at 06:46:30PM -0700, Joe Perches wrote:
>>> On Fri, 2022-09-30 at 14:22 +0200, Greg Kroah-Hartman wrote:
>>>> On Wed, Sep 28, 2022 at 12:56:31PM -0700, Elliot Berman wrote:
>>>>> Gunyah resource manager defines a simple API for virtual machine log
>>>>> sharing with the console service.
>>> []
>>>>> diff --git a/include/linux/gunyah_rsc_mgr.h b/include/linux/gunyah_rsc_mgr.h
>>> []
>>>>> +struct gh_rm_notif_vm_console_chars {
>>>>> + u16 vmid;
>>>>> + u16 num_bytes;
>>>>> + u8 bytes[0];
>>>>
>>>> Please do not use [0] for new structures, otherwise we will just have to
>>>> fix them up again as we are trying to get rid of all of these from the
>>>> kernel. Just use "bytes[];" instead.
>>>
>>> Maybe a checkpatch addition like:
>>> ---
> []
>>> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> []
>>> @@ -3948,6 +3948,17 @@ sub process {
>>> }
>>> }
>>>
>>> +# check for zero length array declarations in likely structs
>>> + if ($line =~ /^\+\t($Declare\s*$Ident)\s*\[\s*0\s*\]\s*;\s*$/ &&
>>> + defined $lines[$linenr] &&
>>> + $lines[$linenr] =~ /^[\+ ]\}\s*(?:__\w+\s*(?:$balanced_parens)?)\s*;\s*$/) {
This sounds great. We need the same for one-element arrays. :)
Both zero-length and one-element arrays are deprecated.
>
> This should actually be:
>
> $lines[$linenr] =~ /^[\+ ]\}(?:\s*__\w+\s*(?:$balanced_parens)?)*\s*;\s*$/) {
I agree. Thanks.
>
> as it was missing a * for uses like
>
> int foo[0];
> } __packed __aligned(4);
>
> and uses without any attribute at all
>
>>> + if (WARN("FLEXIBLE_ARRAY_ZERO",
>>> + "Prefer flexible length array declarations with [] over [0]\n" . $herecurr) &&
>>> + $fix) {
>>> + $fixed[$fixlinenr] =~ s/\[\s*0\s*\]/[]/;
>>> + }
>>> + }
>>> +
>>> # check for multiple consecutive blank lines
>>> if ($prevline =~ /^[\+ ]\s*$/ &&
>>> $line =~ /^\+\s*$/ &&
>>
>> This is a question for Gustavo, who did all the work here. Gustavo,
>> does the above checkpatch change look good to you?
Yep; the idea is great. :)
Another alternative to stop those fake flex-arrays from entering the codebase
is to run Coccinelle scripts during linux-next builds, as suggested by Elena
Reshetova at LSSEU a couple of months ago.
However, if these can be stopped with checkpatch it'd be really helpful, as well.
Thanks
--
Gustavo
next prev parent reply other threads:[~2022-11-02 7:58 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-28 19:56 [PATCH v4 00/14] Drivers for gunyah hypervisor Elliot Berman
2022-09-28 19:56 ` [PATCH v4 01/14] docs: gunyah: Introduce Gunyah Hypervisor Elliot Berman
2022-09-29 3:43 ` Bagas Sanjaya
2022-09-29 4:02 ` Elliot Berman
2022-09-28 19:56 ` [PATCH v4 02/14] dt-bindings: Add binding for gunyah hypervisor Elliot Berman
2022-09-28 19:56 ` [PATCH v4 03/14] gunyah: Common types and error codes for Gunyah hypercalls Elliot Berman
2022-09-28 19:56 ` [PATCH v4 04/14] arm64: smccc: Include alternative-macros.h Elliot Berman
2022-09-28 19:56 ` [PATCH v4 05/14] virt: gunyah: Add hypercalls to identify Gunyah Elliot Berman
2022-09-28 19:56 ` [PATCH v4 06/14] virt: gunyah: Add sysfs nodes Elliot Berman
2022-09-30 12:09 ` Greg Kroah-Hartman
2022-10-04 23:50 ` Elliot Berman
2022-10-05 6:23 ` Greg Kroah-Hartman
2022-09-28 19:56 ` [PATCH v4 07/14] mailbox: Allow direct registration to a channel Elliot Berman
2022-09-28 19:56 ` [PATCH v4 08/14] virt: gunyah: msgq: Add hypercalls to send and receive messages Elliot Berman
2022-09-28 19:56 ` [PATCH v4 09/14] mailbox: Add Gunyah message queue mailbox Elliot Berman
2022-09-29 16:59 ` Bjorn Andersson
2022-09-29 17:37 ` Jassi Brar
2022-09-28 19:56 ` [PATCH v4 10/14] gunyah: sysfs: Add node to describe supported features Elliot Berman
2022-09-29 7:36 ` Joe Perches
2022-09-29 20:47 ` Elliot Berman
2022-10-02 23:30 ` Jeff Johnson
2022-10-02 23:58 ` Joe Perches
2022-09-30 12:06 ` Greg Kroah-Hartman
2022-10-04 23:53 ` Elliot Berman
2022-09-28 19:56 ` [PATCH v4 11/14] gunyah: rsc_mgr: Add resource manager RPC core Elliot Berman
2022-09-28 19:56 ` [PATCH v4 12/14] gunyah: rsc_mgr: Add RPC for console services Elliot Berman
2022-09-30 12:22 ` Greg Kroah-Hartman
2022-10-03 1:46 ` new checkpatch flexible array test ? (was Re: [PATCH v4 12/14] gunyah: rsc_mgr: Add RPC for console services) Joe Perches
2022-10-03 5:29 ` Greg Kroah-Hartman
2022-10-03 5:38 ` Joe Perches
2022-10-31 18:23 ` Gustavo A. R. Silva [this message]
2022-09-28 19:56 ` [PATCH v4 13/14] gunyah: rsc_mgr: Add auxiliary devices for console Elliot Berman
2022-09-30 12:19 ` Greg Kroah-Hartman
2022-10-04 23:49 ` Elliot Berman
2022-10-05 6:21 ` Greg Kroah-Hartman
2022-10-05 21:47 ` Elliot Berman
2022-10-06 6:28 ` Greg Kroah-Hartman
2022-09-28 19:56 ` [PATCH v4 14/14] tty: gunyah: Add tty console driver for RM Console Services Elliot Berman
2022-09-30 12:17 ` Greg Kroah-Hartman
2022-10-07 5:59 ` Elliot Berman
2022-10-07 7:40 ` Greg Kroah-Hartman
2022-10-09 20:59 ` Elliot Berman
2022-10-10 20:23 ` Greg Kroah-Hartman
2022-10-10 20:58 ` Elliot Berman
2022-10-11 6:22 ` Greg Kroah-Hartman
2022-10-11 22:04 ` Elliot Berman
2022-10-12 6:53 ` Greg Kroah-Hartman
2022-10-08 7:41 ` Zhou Furong
2022-10-08 9:52 ` Greg Kroah-Hartman
2022-10-03 7:01 ` Jiri Slaby
2022-10-10 18:06 ` Elliot Berman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=89eca382-fca3-28f9-eac7-f855f2efb598@embeddedor.com \
--to=gustavo@embeddedor.com \
--cc=agross@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=catalin.marinas@arm.com \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.baryshkov@linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=gustavoars@kernel.org \
--cc=jassisinghbrar@gmail.com \
--cc=joe@perches.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=mark.rutland@arm.com \
--cc=maz@kernel.org \
--cc=quic_bjorande@quicinc.com \
--cc=quic_cvanscha@quicinc.com \
--cc=quic_eberman@quicinc.com \
--cc=quic_mnalajal@quicinc.com \
--cc=quic_svaddagi@quicinc.com \
--cc=quic_tsoni@quicinc.com \
--cc=robh+dt@kernel.org \
--cc=sudeep.holla@arm.com \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).