mirror of https://github.com/torvalds/linux.git
As discussed recently on the arm [1] and lm-sensors [2] lists, it is
possible to use section markers on variables in a way which gcc doesn't
understand (or at least not the way the developer intended):
static struct __initdata samsung_pll_clock exynos4_plls[nr_plls] = {
does NOT put exynos4_plls in the .initdata section. The __initdata marker
can be virtually anywhere on the line, EXCEPT right after "struct". The
preferred location is before the "=" sign if there is one, or before the
trailing ";" otherwise.
[1] http://permalink.gmane.org/gmane.linux.ports.arm.kernel/258149
[2] http://lists.lm-sensors.org/pipermail/lm-sensors/2013-August/039836.html
So, update checkpatch to find these misuses and report an error when it's
immediately after struct or union, and a warning when it's otherwise not
immediately before the ; or =.
A similar patch was suggested by Andi Kleen
https://lkml.org/lkml/2013/8/5/648
Signed-off-by: Joe Perches <joe@perches.com>
Suggested-by: Jean Delvare <khali@linux-fr.org>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Cc: Andi Kleen <andi@firstfloor.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||
|---|---|---|
| .. | ||
| basic | ||
| coccinelle | ||
| dtc | ||
| genksyms | ||
| kconfig | ||
| ksymoops | ||
| mod | ||
| package | ||
| rt-tester | ||
| selinux | ||
| tracing | ||
| .gitignore | ||
| Kbuild.include | ||
| Lindent | ||
| Makefile | ||
| Makefile.asm-generic | ||
| Makefile.build | ||
| Makefile.clean | ||
| Makefile.fwinst | ||
| Makefile.headersinst | ||
| Makefile.help | ||
| Makefile.host | ||
| Makefile.lib | ||
| Makefile.modbuiltin | ||
| Makefile.modinst | ||
| Makefile.modpost | ||
| Makefile.modsign | ||
| asn1_compiler.c | ||
| bin2c.c | ||
| bloat-o-meter | ||
| bootgraph.pl | ||
| checkincludes.pl | ||
| checkkconfigsymbols.sh | ||
| checkpatch.pl | ||
| checkstack.pl | ||
| checksyscalls.sh | ||
| checkversion.pl | ||
| cleanfile | ||
| cleanpatch | ||
| coccicheck | ||
| config | ||
| conmakehash.c | ||
| decodecode | ||
| depmod.sh | ||
| diffconfig | ||
| docproc.c | ||
| export_report.pl | ||
| extract-ikconfig | ||
| extract-vmlinux | ||
| gcc-goto.sh | ||
| gcc-version.sh | ||
| gcc-x86_32-has-stack-protector.sh | ||
| gcc-x86_64-has-stack-protector.sh | ||
| gen_initramfs_list.sh | ||
| get_maintainer.pl | ||
| gfp-translate | ||
| headerdep.pl | ||
| headers.sh | ||
| headers_check.pl | ||
| headers_install.sh | ||
| kallsyms.c | ||
| kernel-doc | ||
| link-vmlinux.sh | ||
| makelst | ||
| markup_oops.pl | ||
| mkcompile_h | ||
| mkmakefile | ||
| mksysmap | ||
| mkuboot.sh | ||
| mkversion | ||
| module-common.lds | ||
| namespace.pl | ||
| patch-kernel | ||
| pnmtologo.c | ||
| profile2linkerlist.pl | ||
| recordmcount.c | ||
| recordmcount.h | ||
| recordmcount.pl | ||
| setlocalversion | ||
| show_delta | ||
| sign-file | ||
| sortextable.c | ||
| sortextable.h | ||
| tags.sh | ||
| unifdef.c | ||
| ver_linux | ||
| xz_wrap.sh | ||