# git rev-parse -q --verify 1a288d0d920dfb9747bbefc8d601a971885f470f^{commit} 1a288d0d920dfb9747bbefc8d601a971885f470f already have revision, skipping fetch # git checkout -q -f -B kisskb 1a288d0d920dfb9747bbefc8d601a971885f470f # git clean -qxdf # < git log -1 # commit 1a288d0d920dfb9747bbefc8d601a971885f470f # Author: Denis Efremov # Date: Sun Jul 28 13:09:06 2019 +0300 # # modpost: check for static EXPORT_SYMBOL* functions # # This patch adds a check to warn about static EXPORT_SYMBOL* functions # during the modpost. In most of the cases, a static symbol marked for # exporting is an odd combination that should be fixed either by deleting # the exporting mark or by removing the static attribute and adding the # appropriate declaration to headers. # # This check could help to detect the following problems: # 1. 550113d4e9f5 ("i2c: add newly exported functions to the header, too") # 2. 54638c6eaf44 ("net: phy: make exported variables non-static") # 3. 98ef2046f28b ("mm: remove the exporting of totalram_pages") # 4. 73df167c819e ("s390/zcrypt: remove the exporting of ap_query_configuration") # 5. a57caf8c527f ("sunrpc/cache: remove the exporting of cache_seq_next") # 6. e4e4730698c9 ("crypto: skcipher - remove the exporting of skcipher_walk_next") # 7. 14b4c48bb1ce ("gve: Remove the exporting of gve_probe") # 8. 9b79ee9773a8 ("scsi: libsas: remove the exporting of sas_wait_eh") # 9. ... # # Build time impact, allmodconfig, Dell XPS 15 9570 (measurements 3x): # $ make mrproper; make allmodconfig; time make -j12; \ # git checkout HEAD~1; \ # make mrproper; make allmodconfig; time make -j12 # 1. # (with patch) 17635,94s user 1895,54s system 1085% cpu 29:59,22 total # (w/o patch) 17275,42s user 1803,87s system 1112% cpu 28:35,66 total # 2. # (with patch) 17369,51s user 1763,28s system 1111% cpu 28:41,47 total # (w/o patch) 16880,50s user 1670,93s system 1113% cpu 27:46,56 total # 3. # (with patch) 17937,88s user 1842,53s system 1109% cpu 29:42,26 total # (w/o patch) 17267,55s user 1725,09s system 1111% cpu 28:28,17 total # # Thus, the current implementation adds approx. 1 min for allmodconfig. # # Acked-by: Emil Velikov # Signed-off-by: Denis Efremov # Signed-off-by: Masahiro Yamada # < /opt/cross/kisskb/gcc-4.6.3-nolibc/sh4-linux/bin/sh4-linux-gcc --version # < /opt/cross/kisskb/gcc-4.6.3-nolibc/sh4-linux/bin/sh4-linux-ld --version # < git log --format=%s --max-count=1 1a288d0d920dfb9747bbefc8d601a971885f470f # < make -s -j 24 ARCH=sh O=/kisskb/build/kbuild_sh-defconfig_sh4 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/sh4-linux/bin/sh4-linux- defconfig # make -s -j 24 ARCH=sh O=/kisskb/build/kbuild_sh-defconfig_sh4 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/sh4-linux/bin/sh4-linux- Generating include/generated/machtypes.h :1511:2: warning: #warning syscall clone3 not implemented [-Wcpp] /kisskb/src/arch/sh/kernel/cpu/sh4/../sh3/../../entry-common.S: Assembler messages: /kisskb/src/arch/sh/kernel/cpu/sh4/../sh3/../../entry-common.S:385: Warning: overflow in branch to syscall_exit_work; converted into longer instruction sequence /kisskb/src/arch/sh/kernel/cpu/sh4/../sh3/../../entry-common.S:388: Warning: overflow in branch to syscall_exit_work; converted into longer instruction sequence /kisskb/src/kernel/rcu/srcutree.c: In function 'init_srcu_struct_fields': /kisskb/src/kernel/rcu/srcutree.c:140:32: warning: 'levelspread[]' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/kernel/rcu/srcutree.c:88:6: note: 'levelspread[]' was declared here /kisskb/src/mm/vmstat.c: In function 'sysctl_vm_numa_stat_handler': /kisskb/src/mm/vmstat.c:90:5: warning: 'oldval' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/kernel/printk/printk.c: In function 'devkmsg_sysctl_set_loglvl': /kisskb/src/kernel/printk/printk.c:194:16: warning: 'old' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/base/regmap/regmap.c: In function 'regmap_raw_read': /kisskb/src/drivers/base/regmap/regmap.c:2591:6: warning: 'ret' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/base/regmap/regmap.c: In function '_regmap_raw_write': /kisskb/src/drivers/base/regmap/regmap.c:1852:6: warning: 'ret' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/fs/ext4/readpage.c: In function 'ext4_mpage_readpages': /kisskb/src/fs/ext4/readpage.c:295:1: warning: the frame size of 1200 bytes is larger than 1024 bytes [-Wframe-larger-than=] /kisskb/src/fs/proc/inode.c: In function 'proc_reg_open': /kisskb/src/include/linux/list.h:65:12: warning: 'pdeo' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/fs/proc/inode.c:338:21: note: 'pdeo' was declared here /kisskb/src/mm/hugetlb.c: In function 'alloc_pool_huge_page': /kisskb/src/mm/hugetlb.c:1465:5: warning: 'page' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/fs/mpage.c: In function 'do_mpage_readpage': /kisskb/src/fs/mpage.c:338:1: warning: the frame size of 1108 bytes is larger than 1024 bytes [-Wframe-larger-than=] /kisskb/src/fs/mpage.c: In function '__mpage_writepage': /kisskb/src/fs/mpage.c:690:1: warning: the frame size of 1148 bytes is larger than 1024 bytes [-Wframe-larger-than=] /kisskb/src/drivers/sh/clk/cpg.c: In function 'r8': /kisskb/src/drivers/sh/clk/cpg.c:41:2: warning: passing argument 1 of 'ioread8' discards 'const' qualifier from pointer target type [enabled by default] /kisskb/src/include/asm-generic/iomap.h:29:21: note: expected 'void *' but argument is of type 'const void *' /kisskb/src/drivers/sh/clk/cpg.c: In function 'r16': /kisskb/src/drivers/sh/clk/cpg.c:46:2: warning: passing argument 1 of 'ioread16' discards 'const' qualifier from pointer target type [enabled by default] /kisskb/src/include/asm-generic/iomap.h:30:21: note: expected 'void *' but argument is of type 'const void *' /kisskb/src/drivers/sh/clk/cpg.c: In function 'r32': /kisskb/src/drivers/sh/clk/cpg.c:51:2: warning: passing argument 1 of 'ioread32' discards 'const' qualifier from pointer target type [enabled by default] /kisskb/src/include/asm-generic/iomap.h:32:21: note: expected 'void *' but argument is of type 'const void *' /kisskb/src/drivers/usb/core/devio.c: In function 'async_completed': /kisskb/src/drivers/usb/core/devio.c:613:23: warning: 'errno' may be used uninitialized in this function [-Wuninitialized] WARNING: "csum_partial" [vmlinux] is the static EXPORT_SYMBOL WARNING: "memmove" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI12" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI44" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_12" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_22" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI16" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI40" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI48" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashlsi3" [vmlinux] is the static EXPORT_SYMBOL WARNING: "csum_partial_copy_generic" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__lshrsi3_r0" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashrsi3_r0" [vmlinux] is the static EXPORT_SYMBOL WARNING: "memset" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI12_i4" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__udiv_qrnnd_16" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI8" [vmlinux] is the static EXPORT_SYMBOL WARNING: "memcpy" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__clear_user" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI24" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI56" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_11" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_21" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_6" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_7" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_8" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_9" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstr" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_27" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmem_i4_even" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI20" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI28" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmem_i4_odd" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI52" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__lshrsi3" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashrsi3" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI36" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI60" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_10" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_20" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_30" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI32" [vmlinux] is the static EXPORT_SYMBOL WARNING: "copy_page" [vmlinux] is the static EXPORT_SYMBOL WARNING: "ftrace_set_clr_event" [vmlinux] is the static EXPORT_SYMBOL_GPL WARNING: "__movmemSI16" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI40" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI48" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_15" [vmlinux] is the static EXPORT_SYMBOL WARNING: "empty_zero_page" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI12" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI44" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmem" [vmlinux] is the static EXPORT_SYMBOL WARNING: "jiffies" [vmlinux] is the static EXPORT_SYMBOL WARNING: "strlen" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI20" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI28" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI52" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI12_i4" [vmlinux] is the static EXPORT_SYMBOL WARNING: "memchr" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_14" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_24" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI8" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI24" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI56" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__copy_user" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstr_i4_even" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstr_i4_odd" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashlsi3_r0" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI32" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_13" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_23" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI36" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI60" [vmlinux] is the static EXPORT_SYMBOL WARNING: "csum_partial" [vmlinux] is the static EXPORT_SYMBOL WARNING: "memmove" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI12" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI44" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_12" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_22" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI16" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI40" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI48" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashlsi3" [vmlinux] is the static EXPORT_SYMBOL WARNING: "csum_partial_copy_generic" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__lshrsi3_r0" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashrsi3_r0" [vmlinux] is the static EXPORT_SYMBOL WARNING: "memset" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI12_i4" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__udiv_qrnnd_16" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI8" [vmlinux] is the static EXPORT_SYMBOL WARNING: "memcpy" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__clear_user" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI24" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI56" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_11" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_21" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_6" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_7" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_8" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_9" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstr" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_27" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmem_i4_even" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI20" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI28" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmem_i4_odd" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI52" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__lshrsi3" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashrsi3" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI36" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI60" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_10" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_20" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_30" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI32" [vmlinux] is the static EXPORT_SYMBOL WARNING: "copy_page" [vmlinux] is the static EXPORT_SYMBOL WARNING: "ftrace_set_clr_event" [vmlinux] is the static EXPORT_SYMBOL_GPL WARNING: "__movmemSI16" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI40" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI48" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_15" [vmlinux] is the static EXPORT_SYMBOL WARNING: "empty_zero_page" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI12" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI44" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmem" [vmlinux] is the static EXPORT_SYMBOL WARNING: "strlen" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI20" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI28" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI52" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI12_i4" [vmlinux] is the static EXPORT_SYMBOL WARNING: "memchr" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_14" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_24" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI8" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI24" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI56" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__copy_user" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstr_i4_even" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstr_i4_odd" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashlsi3_r0" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movmemSI32" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_13" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__ashiftrt_r4_23" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI36" [vmlinux] is the static EXPORT_SYMBOL WARNING: "__movstrSI60" [vmlinux] is the static EXPORT_SYMBOL Kernel: arch/sh/boot/zImage is ready Completed OK # rm -rf /kisskb/build/kbuild_sh-defconfig_sh4 # Build took: 0:00:52.390288