checkpatch: add *_ON_STACK to $declaration_macros

Message ID 1498550116-12475-1-git-send-email-gilad@benyossef.com
State New
Headers show

Commit Message

Gilad Ben-Yossef June 27, 2017, 7:55 a.m.
Add the crypto API *_ON_STACK to $declaration_macros.

Resolves the following false warning:

WARNING: Missing a blank line after declarations
+			int err;
+			SHASH_DESC_ON_STACK(desc, ctx_p->shash_tfm);

Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>

---
 scripts/checkpatch.pl | 1 +
 1 file changed, 1 insertion(+)

-- 
2.1.4

Comments

Joe Perches Dec. 20, 2017, 9:41 a.m. | #1
On Tue, 2017-06-27 at 10:55 +0300, Gilad Ben-Yossef wrote:
> Add the crypto API *_ON_STACK to $declaration_macros.

> 

> Resolves the following false warning:

> 

> WARNING: Missing a blank line after declarations

> +			int err;

> +			SHASH_DESC_ON_STACK(desc, ctx_p->shash_tfm);

[]
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl

[]
> @@ -733,6 +733,7 @@ our $FuncArg = qr{$Typecast{0,1}($LvalOrFunc|$Constant|$String)};

>  our $declaration_macros = qr{(?x:

>  	(?:$Storage\s+)?(?:[A-Z_][A-Z0-9]*_){0,2}(?:DEFINE|DECLARE)(?:_[A-Z0-9]+){1,6}\s*\(|

>  	(?:$Storage\s+)?LIST_HEAD\s*\(|

> +	(?:$Storage\s+)?[A-Z_]*_ON_STACK\(|


A few things:

The crypto _ON_STACK declarations cannot have a $Storage type.

There should be a \s* between the ON_STACK and the open parenthesis

There are other _ON_STACK types than the crypto uses

$ grep -rP --include=*.[ch] -oh "\b[A-Z_]+_ON_STACK\b" * | \
  sort | uniq -c | sort -rn
     68 SKCIPHER_REQUEST_ON_STACK
     45 SHASH_DESC_ON_STACK
     10 AHASH_REQUEST_ON_STACK
      4 PC_LOC_ON_STACK
      4 DECLARE_DPM_WATCHDOG_ON_STACK
      3 HISI_SAS_DECLARE_RST_WORK_ON_STACK
      3 CONFIG_ARCH_TASK_STRUCT_ON_STACK
      1 PT_SIZE_ON_STACK
      1 ALLOC_PT_GPREGS_ON_STACK

So perhaps:

	(?:SKCIPHER_REQUEST|SHASH_DESC|AHASH_REQUEST)_ON_STACK\s*\(
Gilad Ben-Yossef Jan. 8, 2018, 8:22 a.m. | #2
On Wed, Dec 20, 2017 at 11:41 AM, Joe Perches <joe@perches.com> wrote:
> On Tue, 2017-06-27 at 10:55 +0300, Gilad Ben-Yossef wrote:

>> Add the crypto API *_ON_STACK to $declaration_macros.

>>

>> Resolves the following false warning:

>>

>> WARNING: Missing a blank line after declarations

>> +                     int err;

>> +                     SHASH_DESC_ON_STACK(desc, ctx_p->shash_tfm);

> []

>> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl

> []

>> @@ -733,6 +733,7 @@ our $FuncArg = qr{$Typecast{0,1}($LvalOrFunc|$Constant|$String)};

>>  our $declaration_macros = qr{(?x:

>>       (?:$Storage\s+)?(?:[A-Z_][A-Z0-9]*_){0,2}(?:DEFINE|DECLARE)(?:_[A-Z0-9]+){1,6}\s*\(|

>>       (?:$Storage\s+)?LIST_HEAD\s*\(|

>> +     (?:$Storage\s+)?[A-Z_]*_ON_STACK\(|

>

> A few things:

>

> The crypto _ON_STACK declarations cannot have a $Storage type.

>

> There should be a \s* between the ON_STACK and the open parenthesis

>

> There are other _ON_STACK types than the crypto uses

>

> $ grep -rP --include=*.[ch] -oh "\b[A-Z_]+_ON_STACK\b" * | \

>   sort | uniq -c | sort -rn

>      68 SKCIPHER_REQUEST_ON_STACK

>      45 SHASH_DESC_ON_STACK

>      10 AHASH_REQUEST_ON_STACK

>       4 PC_LOC_ON_STACK

>       4 DECLARE_DPM_WATCHDOG_ON_STACK

>       3 HISI_SAS_DECLARE_RST_WORK_ON_STACK

>       3 CONFIG_ARCH_TASK_STRUCT_ON_STACK

>       1 PT_SIZE_ON_STACK

>       1 ALLOC_PT_GPREGS_ON_STACK

>

> So perhaps:

>

>         (?:SKCIPHER_REQUEST|SHASH_DESC|AHASH_REQUEST)_ON_STACK\s*\(

>



Yes, it's better.

I'll send a v2.

Thanks,
Gilad

-- 
Gilad Ben-Yossef
Chief Coffee Drinker

"If you take a class in large-scale robotics, can you end up in a
situation where the homework eats your dog?"
 -- Jean-Baptiste Queru

Patch

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 4b9569f..b42eb62 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -733,6 +733,7 @@  our $FuncArg = qr{$Typecast{0,1}($LvalOrFunc|$Constant|$String)};
 our $declaration_macros = qr{(?x:
 	(?:$Storage\s+)?(?:[A-Z_][A-Z0-9]*_){0,2}(?:DEFINE|DECLARE)(?:_[A-Z0-9]+){1,6}\s*\(|
 	(?:$Storage\s+)?LIST_HEAD\s*\(|
+	(?:$Storage\s+)?[A-Z_]*_ON_STACK\(|
 	(?:$Storage\s+)?${Type}\s+uninitialized_var\s*\(
 )};