WSL2-Linux-Kernel/scripts
Joe Perches 8716de383b checkpatch: add test for positional misuse of section specifiers like __initdata
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>
2013-09-11 15:58:49 -07:00
..
basic kbuild: fixdep: support concatenated dep files 2013-04-05 12:22:58 -06:00
coccinelle Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2013-09-07 19:47:35 -07:00
dtc dtc: ensure #line directives don't consume data from the next line 2013-06-13 22:12:15 +01:00
genksyms genksyms: pass symbol-prefix instead of arch 2013-03-20 11:27:27 +10:30
kconfig kconfig: do not allow more than one symbol to have 'option modules' 2013-09-05 11:10:08 +02:00
ksymoops
mod scripts/mod/modpost.c: permit '.cranges' secton for sh64 architecture. 2013-08-20 15:37:40 +09:30
package Provide version number for Debian firmware package 2013-08-15 18:01:18 +02:00
rt-tester
selinux
tracing
.gitignore
Kbuild.include kbuild: fix ld-option function 2013-04-08 11:47:41 +02:00
Lindent
Makefile
Makefile.asm-generic uapi: Allow automatic generation of uapi/asm/ header files 2012-10-17 12:25:44 +01:00
Makefile.build genksyms: pass symbol-prefix instead of arch 2013-03-20 11:27:27 +10:30
Makefile.clean
Makefile.fwinst kbuild: Fix accidental revert in commit fe04ddf 2012-10-15 13:01:05 -07:00
Makefile.headersinst kbuild: fix make headers_install when path is too long 2013-05-17 22:10:35 +02:00
Makefile.help
Makefile.host
Makefile.lib Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2013-07-10 16:05:40 -07:00
Makefile.modbuiltin
Makefile.modinst modules: don't break modules_install on external modules with no key. 2012-11-06 11:52:24 +10:30
Makefile.modpost modpost: handle huge numbers of modules. 2013-04-05 11:48:10 +10:30
Makefile.modsign MODSIGN: Add modules_sign make target 2012-12-14 13:05:28 +10:30
asn1_compiler.c
bin2c.c
bloat-o-meter
bootgraph.pl
checkincludes.pl
checkkconfigsymbols.sh scripts/checkkconfigsymbols.sh: replace echo -e with printf 2013-08-28 17:00:47 +02:00
checkpatch.pl checkpatch: add test for positional misuse of section specifiers like __initdata 2013-09-11 15:58:49 -07:00
checkstack.pl scripts/checkstack.pl: Add metag support 2013-03-02 20:09:55 +00:00
checksyscalls.sh
checkversion.pl
cleanfile
cleanpatch
coccicheck Coccinelle: Update information about the minimal version required 2013-07-03 22:58:20 +02:00
config scripts/config: use sed's POSIX interface 2013-08-15 22:48:07 +02:00
conmakehash.c
decodecode scripts/decodecode: make faulting insn ptr more robust 2013-04-29 15:54:27 -07:00
depmod.sh depmod: pass -P $CONFIG_SYMBOL_PREFIX 2013-02-22 11:52:31 +01:00
diffconfig diffconfig: Update script to support python versions 2.5 through 3.3 2013-09-01 21:24:51 +02:00
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 get_maintainer: use filename-only regex match for Tegra 2013-04-29 18:28:14 -07:00
gfp-translate
headerdep.pl
headers.sh
headers_check.pl
headers_install.sh kbuild: fix make headers_install when path is too long 2013-05-17 22:10:35 +02:00
kallsyms.c
kernel-doc scripts/kernel-doc: handle struct member __aligned without numbers 2013-02-27 19:10:09 -08:00
link-vmlinux.sh CONFIG_SYMBOL_PREFIX: cleanup. 2013-03-15 15:09:43 +10:30
makelst
markup_oops.pl
mkcompile_h
mkmakefile
mksysmap
mkuboot.sh
mkversion
module-common.lds
namespace.pl
patch-kernel
pnmtologo.c scripts/pnmtologo: fix for plain PBM 2012-11-20 11:58:03 +01:00
profile2linkerlist.pl
recordmcount.c metag: ftrace support 2013-03-02 20:09:55 +00:00
recordmcount.h
recordmcount.pl tile: support ftrace on tilegx 2013-08-30 10:20:13 -04:00
setlocalversion scripts/setlocalversion on write-protected source tree 2013-06-24 00:08:01 +02:00
show_delta
sign-file MODSIGN: Add -s <signature> option to sign-file 2013-01-25 16:55:36 +10:30
sortextable.c scripts: remove unused function in sortextable.c 2013-07-25 16:20:33 +02:00
sortextable.h scripts/sortextable: silence script output 2013-02-14 15:04:41 +01:00
tags.sh scripts/tags.sh: Add magic for OFFSET and DEFINE 2013-03-27 14:22:03 +01:00
unifdef.c
ver_linux
xz_wrap.sh