Re: false positives with checkpatch

From: Andy Whitcroft
Date: Fri Aug 07 2015 - 12:12:27 EST


On Fri, Aug 07, 2015 at 08:37:47AM -0700, Joe Perches wrote:
> 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|

Looks good to me.

-apw
--
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/