Re: false positives with checkpatch

From: Joe Perches
Date: Fri Aug 07 2015 - 11:37:53 EST


On Fri, 2015-08-07 at 09:01 -0600, Ross Zwisler wrote:
> When running checkpatch.pl against my latest patch set, I hit what I think are
> two false positives. Here are the related lines:
>
> +static inline void flush_cache_pmem(void __pmem *addr, size_t size)
> +{
> + if (arch_has_pmem_api())
> + arch_flush_cache_pmem(addr, size);
> +}
>
> The error was:
>
> ERROR: need consistent spacing around '*' (ctx:WxV)
> #88: FILE: include/linux/pmem.h:167:
> +static inline void flush_cache_pmem(void __pmem *addr, size_t size)
> ^
> The (void __annotation *variable) syntax is correct, I believe, and is used
> consistently for both __iomem and __pmem annotations.

checkpatch doesn't know what a __pmem is.
Neither did I until a second ago.

Are there any other sparse annotations that were
added by this subsystem? (I don't notice any)

They need to be added to checkpatch's $Sparse use
so there's a patch proposal below this.

It looks like compiler.h's #define __safe is unused
in the linux kernel and it could be deleted as it's
not a gcc attribute.

Does anyone know?

Linus' commit is unrevealing.

commit e6b8f25bd950947d06c59432cbafd320dda66abf
Author: Linus Torvalds <torvalds@xxxxxxxxxxxx>
Date: Fri Apr 16 03:49:32 2004 -0700

Add sparse __safe annotation

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

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index fd8e502..6362ec3 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -264,6 +264,7 @@ our $Sparse = qr{
__kernel|
__force|
__iomem|
+ __pmem|
__must_check|
__init_refok|
__kprobes|


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/