[U-Boot] [BUG] checkpatch: false positive storage class location

Joe Perches joe at perches.com
Tue Jul 4 20:44:23 UTC 2017


On Tue, 2017-07-04 at 21:29 +0200, Heinrich Schuchardt wrote:
> The U-Boot project uses the same scripts/checkpatch.pl as the Linux
> kernel. I ran upon the problem below when working on U-Boot. But I
> guess it should be fixed in the Linux upstream.
> 
> Running checkpatch for this email produces
> WARNING: storage class should be at the beginning of the declaration
> 
> This relates to the parameter with asmlinkage.
> 
> asmlinkage is at the start of the parameter so I think this a false
> positive.
> 
> Signed-off-by: Heinrich.Schuchardt <xypron.glpk at gmx.de>
> ---
> 
>  cmd/bootefi.c | 22 +++++++++++++++++-----
>  1 file changed, 17 insertions(+), 5 deletions(-)
> 
> diff --git a/cmd/bootefi.c b/cmd/bootefi.c
> index 771300ee94..4df468307c 100644
> --- a/cmd/bootefi.c
> +++ b/cmd/bootefi.c
> @@ -147,6 +147,12 @@ static void *copy_fdt(void *fdt)
>  	return new_fdt;
>  }
>  
> +static ulong efi_do_enter(void *image_handle,
> +		struct efi_system_table *st, asmlinkage ulong (*entry)(
> +		void *image_handle, struct efi_system_table *st))
> +{
> +	return 0;
> +}
> +
>  /*
>  end
>  */

Perhaps this?
-------------------------

Allow storage class after comma for function pointers.

Miscellanea:

o Add missing semicolon after WARN statement
---
 scripts/checkpatch.pl | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 43171ed88115..c7490ab48ce1 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -5577,9 +5577,10 @@ sub process {
 		}
 
 # Check that the storage class is at the beginning of a declaration
-		if ($line =~ /\b$Storage\b/ && $line !~ /^.\s*$Storage\b/) {
+		if ($line =~ /\b$Storage\b/ &&
+		    $line !~ /^.\s*(?:.*,\s*)?$Storage\b/) {
 			WARN("STORAGE_CLASS",
-			     "storage class should be at the beginning of the declaration\n" . $herecurr)
+			     "storage class should be at the beginning of the declaration\n" . $herecurr);
 		}
 
 # check the location of the inline attribute, that it is between


More information about the U-Boot mailing list