# git rev-parse -q --verify 8c1684bb81f173543599f1848c29a2a3b1ee5907^{commit} 8c1684bb81f173543599f1848c29a2a3b1ee5907 already have revision, skipping fetch # git checkout -q -f -B kisskb 8c1684bb81f173543599f1848c29a2a3b1ee5907 # git clean -qxdf # < git log -1 # commit 8c1684bb81f173543599f1848c29a2a3b1ee5907 # Merge: f44d5c489051 3f2c788a1314 # Author: Linus Torvalds # Date: Thu May 14 11:52:28 2020 -0700 # # Merge tag 'for-linus-2020-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux # # Pull thread fix from Christian Brauner: # "This contains a single fix for all exported legacy fork helpers to # block accidental access to clone3() features in the upper 32 bits of # their respective flags arguments. # # I got Cced on a glibc issue where someone reported consistent failures # for the legacy clone() syscall on ppc64le when sign extension was # performed (since the clone() syscall in glibc exposes the flags # argument as an int whereas the kernel uses unsigned long). # # The legacy clone() syscall is odd in a bunch of ways and here two # things interact: # # - First, legacy clone's flag argument is word-size dependent, i.e. # it's an unsigned long whereas most system calls with flag arguments # use int or unsigned int. # # - Second, legacy clone() ignores unknown and deprecated flags. # # The two of them taken together means that users on 64bit systems can # pass garbage for the upper 32bit of the clone() syscall since forever # and things would just work fine. # # The following program compiled on a 64bit kernel prior to v5.7-rc1 # will succeed and will fail post v5.7-rc1 with EBADF: # # int main(int argc, char *argv[]) # { # pid_t pid; # # /* Note that legacy clone() has different argument ordering on # * different architectures so this won't work everywhere. # * # * Only set the upper 32 bits. # */ # pid = syscall(__NR_clone, 0xffffffff00000000 | SIGCHLD, # NULL, NULL, NULL, NULL); # if (pid < 0) # exit(EXIT_FAILURE); # if (pid == 0) # exit(EXIT_SUCCESS); # if (wait(NULL) != pid) # exit(EXIT_FAILURE); # # exit(EXIT_SUCCESS); # } # # Since legacy clone() couldn't be extended this was not a problem so # far and nobody really noticed or cared since nothing in the kernel # ever bothered to look at the upper 32 bits. # # But once we introduced clone3() and expanded the flag argument in # struct clone_args to 64 bit we opened this can of worms. With the # first flag-based extension to clone3() making use of the upper 32 bits # of the flag argument we've effectively made it possible for the legacy # clone() syscall to reach clone3() only flags on accident. The sign # extension scenario is just the odd corner-case that we needed to # figure this out. # # The reason we just realized this now and not already when we # introduced CLONE_CLEAR_SIGHAND was that CLONE_INTO_CGROUP assumes that # a valid cgroup file descriptor has been given - whereas # CLONE_CLEAR_SIGHAND doesn't need to verify anything. It just silently # resets the signal handlers to SIG_DFL. # # So the sign extension (or the user accidently passing garbage for the # upper 32 bits) caused the CLONE_INTO_CGROUP bit to be raised and the # kernel to error out when it didn't find a valid cgroup file # descriptor. # # Note, I'm also capping kernel_thread()'s flag argument mainly because # none of the new features make sense for kernel_thread() and we # shouldn't risk them being accidently activated however unlikely. If we # wanted to, we could even make kernel_thread() yell when an unknown # flag has been set which it doesn't do right now. But it's not worth # risking this in a bugfix imho" # # * tag 'for-linus-2020-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux: # fork: prevent accidental access to clone3 features # < /opt/cross/kisskb/korg/gcc-4.9.4-nolibc/s390-linux/bin/s390-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-4.9.4-nolibc/s390-linux/bin/s390-linux-ld --version # < git log --format=%s --max-count=1 8c1684bb81f173543599f1848c29a2a3b1ee5907 # < make -s -j 24 ARCH=s390 O=/kisskb/build/linus_s390-allyesconfig_s390x-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/s390-linux/bin/s390-linux- allyesconfig # Added to kconfig CONFIG_BUILD_DOCSRC=n # Added to kconfig CONFIG_MODULE_SIG=n # < make -s -j 24 ARCH=s390 O=/kisskb/build/linus_s390-allyesconfig_s390x-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/s390-linux/bin/s390-linux- help # make -s -j 24 ARCH=s390 O=/kisskb/build/linus_s390-allyesconfig_s390x-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/s390-linux/bin/s390-linux- olddefconfig # make -s -j 24 ARCH=s390 O=/kisskb/build/linus_s390-allyesconfig_s390x-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/s390-linux/bin/s390-linux- /kisskb/src/arch/s390/kernel/perf_cpum_sf.c: In function 'perf_push_sample': /kisskb/src/arch/s390/kernel/perf_cpum_sf.c:1136:1: warning: 'perf_push_sample' uses dynamic stack allocation } ^ /kisskb/src/arch/s390/kernel/perf_cpum_cf_diag.c: In function 'cf_diag_push_sample': /kisskb/src/arch/s390/kernel/perf_cpum_cf_diag.c:519:1: warning: 'cf_diag_push_sample' uses dynamic stack allocation } ^ /kisskb/src/kernel/dma/debug.c: In function 'debug_dma_sync_single_for_cpu': /kisskb/src/kernel/dma/debug.c:1554:1: warning: 'debug_dma_sync_single_for_cpu' uses dynamic stack allocation } ^ /kisskb/src/kernel/dma/debug.c: In function 'debug_dma_sync_single_for_device': /kisskb/src/kernel/dma/debug.c:1574:1: warning: 'debug_dma_sync_single_for_device' uses dynamic stack allocation } ^ /kisskb/src/kernel/dma/debug.c: In function 'debug_dma_sync_sg_for_cpu': /kisskb/src/kernel/dma/debug.c:1607:1: warning: 'debug_dma_sync_sg_for_cpu' uses dynamic stack allocation } ^ /kisskb/src/kernel/dma/debug.c: In function 'debug_dma_sync_sg_for_device': /kisskb/src/kernel/dma/debug.c:1639:1: warning: 'debug_dma_sync_sg_for_device' uses dynamic stack allocation } ^ /kisskb/src/kernel/dma/debug.c: In function 'debug_dma_unmap_page': /kisskb/src/kernel/dma/debug.c:1341:1: warning: 'debug_dma_unmap_page' uses dynamic stack allocation } ^ /kisskb/src/kernel/dma/debug.c: In function 'debug_dma_unmap_resource': /kisskb/src/kernel/dma/debug.c:1535:1: warning: 'debug_dma_unmap_resource' uses dynamic stack allocation } ^ /kisskb/src/kernel/dma/debug.c: In function 'debug_dma_unmap_sg': /kisskb/src/kernel/dma/debug.c:1431:1: warning: 'debug_dma_unmap_sg' uses dynamic stack allocation } ^ /kisskb/src/kernel/dma/debug.c: In function 'debug_dma_free_coherent': /kisskb/src/kernel/dma/debug.c:1493:1: warning: 'debug_dma_free_coherent' uses dynamic stack allocation } ^ /kisskb/src/kernel/bpf/syscall.c: In function 'bpf_prog_show_fdinfo': /kisskb/src/kernel/bpf/syscall.c:1787:1: warning: 'bpf_prog_show_fdinfo' uses dynamic stack allocation } ^ /kisskb/src/kernel/bpf/syscall.c: In function 'bpf_prog_get_info_by_fd.isra.23': /kisskb/src/kernel/bpf/syscall.c:3256:1: warning: 'bpf_prog_get_info_by_fd.isra.23' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/core.c: In function 'perf_log_throttle': /kisskb/src/kernel/events/core.c:8426:1: warning: 'perf_log_throttle' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/core.c: In function 'perf_event_bpf_output': /kisskb/src/kernel/events/core.c:8560:1: warning: 'perf_event_bpf_output' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/core.c: In function 'perf_log_itrace_start': /kisskb/src/kernel/events/core.c:8667:1: warning: 'perf_log_itrace_start' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/core.c: In function 'perf_event_switch_output': /kisskb/src/kernel/events/core.c:8355:1: warning: 'perf_event_switch_output' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/core.c: In function 'perf_event_task_output': /kisskb/src/kernel/events/core.c:7515:1: warning: 'perf_event_task_output' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/core.c: In function 'perf_event_namespaces_output': /kisskb/src/kernel/events/core.c:7708:1: warning: 'perf_event_namespaces_output' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/core.c: In function 'perf_event_ksymbol_output': /kisskb/src/kernel/events/core.c:8471:1: warning: 'perf_event_ksymbol_output' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/core.c: In function 'perf_event_cgroup_output': /kisskb/src/kernel/events/core.c:7831:1: warning: 'perf_event_cgroup_output' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/core.c: In function 'perf_event_comm_output': /kisskb/src/kernel/events/core.c:7609:1: warning: 'perf_event_comm_output' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/core.c: In function 'perf_swevent_hrtimer': /kisskb/src/kernel/events/core.c:10135:1: warning: 'perf_swevent_hrtimer' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/core.c: In function 'perf_event_mmap_output': /kisskb/src/kernel/events/core.c:7972:1: warning: 'perf_event_mmap_output' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/core.c: In function 'perf_event_read_event': /kisskb/src/kernel/events/core.c:7228:1: warning: 'perf_event_read_event' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/ring_buffer.c: In function 'perf_output_begin_forward': /kisskb/src/kernel/events/ring_buffer.c:269:1: warning: 'perf_output_begin_forward' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/ring_buffer.c: In function 'perf_output_begin_backward': /kisskb/src/kernel/events/ring_buffer.c:275:1: warning: 'perf_output_begin_backward' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/ring_buffer.c: In function 'perf_output_begin': /kisskb/src/kernel/events/ring_buffer.c:283:1: warning: 'perf_output_begin' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/core.c: In function 'perf_event_aux_event': /kisskb/src/kernel/events/core.c:8263:1: warning: 'perf_event_aux_event' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/core.c: In function 'perf_log_lost_samples': /kisskb/src/kernel/events/core.c:8296:1: warning: 'perf_log_lost_samples' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/core.c: In function 'perf_tp_event': /kisskb/src/kernel/events/core.c:9306:1: warning: 'perf_tp_event' uses dynamic stack allocation } ^ /kisskb/src/kernel/events/core.c: In function '___perf_sw_event': /kisskb/src/kernel/events/core.c:8992:1: warning: '___perf_sw_event' uses dynamic stack allocation } ^ /kisskb/src/mm/slub.c: In function 'unfreeze_partials.isra.40': /kisskb/src/mm/slub.c:2271:1: warning: 'unfreeze_partials.isra.40' uses dynamic stack allocation } ^ /kisskb/src/mm/slub.c: In function 'get_partial_node.isra.41': /kisskb/src/mm/slub.c:1910:1: warning: 'get_partial_node.isra.41' uses dynamic stack allocation } ^ /kisskb/src/mm/slub.c: In function 'deactivate_slab.isra.42': /kisskb/src/mm/slub.c:2203:1: warning: 'deactivate_slab.isra.42' uses dynamic stack allocation } ^ /kisskb/src/mm/slub.c: In function '__slab_free': /kisskb/src/mm/slub.c:2978:1: warning: '__slab_free' uses dynamic stack allocation } ^ /kisskb/src/mm/slub.c: In function '___slab_alloc': /kisskb/src/mm/slub.c:2665:1: warning: '___slab_alloc' uses dynamic stack allocation } ^ /kisskb/src/lib/crypto/chacha20poly1305.c: In function 'chacha20poly1305_crypt_sg_inplace': /kisskb/src/lib/crypto/chacha20poly1305.c:335:1: warning: 'chacha20poly1305_crypt_sg_inplace' uses dynamic stack allocation } ^ /kisskb/src/fs/nfs/super.c: In function 'nfs_show_stats': /kisskb/src/fs/nfs/super.c:687:1: warning: 'nfs_show_stats' uses dynamic stack allocation } ^ /kisskb/src/kernel/smp.c: In function 'smp_call_function_single': /kisskb/src/kernel/smp.c:316:1: warning: 'smp_call_function_single' uses dynamic stack allocation } ^ /kisskb/src/drivers/s390/net/ism_drv.c: In function 'ism_signal_ieq': /kisskb/src/drivers/s390/net/ism_drv.c:357:1: warning: 'ism_signal_ieq' uses dynamic stack allocation } ^ /kisskb/src/drivers/s390/net/ism_drv.c: In function 'ism_del_vlan_id': /kisskb/src/drivers/s390/net/ism_drv.c:329:1: warning: 'ism_del_vlan_id' uses dynamic stack allocation } ^ /kisskb/src/drivers/s390/net/ism_drv.c: In function 'ism_add_vlan_id': /kisskb/src/drivers/s390/net/ism_drv.c:315:1: warning: 'ism_add_vlan_id' uses dynamic stack allocation } ^ /kisskb/src/drivers/s390/net/ism_drv.c: In function 'ism_query_rgid': /kisskb/src/drivers/s390/net/ism_drv.c:214:1: warning: 'ism_query_rgid' uses dynamic stack allocation } ^ /kisskb/src/drivers/s390/net/ism_drv.c: In function 'ism_unregister_dmb': /kisskb/src/drivers/s390/net/ism_drv.c:301:1: warning: 'ism_unregister_dmb' uses dynamic stack allocation } ^ /kisskb/src/drivers/s390/net/ism_drv.c: In function 'ism_register_dmb': /kisskb/src/drivers/s390/net/ism_drv.c:280:1: warning: 'ism_register_dmb' uses dynamic stack allocation } ^ /kisskb/src/drivers/s390/net/ism_drv.c: In function 'query_info': /kisskb/src/drivers/s390/net/ism_drv.c:83:1: warning: 'query_info' uses dynamic stack allocation } ^ /kisskb/src/drivers/s390/net/ism_drv.c: In function 'ism_probe': /kisskb/src/drivers/s390/net/ism_drv.c:544:1: warning: 'ism_probe' uses dynamic stack allocation } ^ /kisskb/src/lib/test_stackinit.c: In function 'leaf_big_hole_static_all': /kisskb/src/lib/test_stackinit.c:255:15: warning: 'leaf_big_hole_static_all' uses dynamic stack allocation struct test_ ## name, STRUCT, init) ^ /kisskb/src/lib/test_stackinit.c:168:2: note: in definition of macro 'DEFINE_TEST' var_type var INIT_ ## which ## _ ## init_level; \ ^ /kisskb/src/lib/test_stackinit.c:259:3: note: in expansion of macro 'DEFINE_STRUCT_TEST' DEFINE_STRUCT_TEST(big_hole, init); \ ^ /kisskb/src/lib/test_stackinit.c:268:1: note: in expansion of macro 'DEFINE_STRUCT_TESTS' DEFINE_STRUCT_TESTS(static_all); ^ /kisskb/src/lib/test_stackinit.c: In function 'test_big_hole_static_all': /kisskb/src/lib/test_stackinit.c:255:15: warning: 'test_big_hole_static_all' uses dynamic stack allocation struct test_ ## name, STRUCT, init) ^ /kisskb/src/lib/test_stackinit.c:101:2: note: in definition of macro 'DEFINE_TEST_DRIVER' var_type zero INIT_CLONE_ ## which; \ ^ /kisskb/src/lib/test_stackinit.c:254:3: note: in expansion of macro 'DEFINE_TEST' DEFINE_TEST(name ## _ ## init, \ ^ /kisskb/src/lib/test_stackinit.c:259:3: note: in expansion of macro 'DEFINE_STRUCT_TEST' DEFINE_STRUCT_TEST(big_hole, init); \ ^ /kisskb/src/lib/test_stackinit.c:268:1: note: in expansion of macro 'DEFINE_STRUCT_TESTS' DEFINE_STRUCT_TESTS(static_all); ^ /kisskb/src/lib/test_stackinit.c: In function 'leaf_big_hole_dynamic_all': /kisskb/src/lib/test_stackinit.c:255:15: warning: 'leaf_big_hole_dynamic_all' uses dynamic stack allocation struct test_ ## name, STRUCT, init) ^ /kisskb/src/lib/test_stackinit.c:168:2: note: in definition of macro 'DEFINE_TEST' var_type var INIT_ ## which ## _ ## init_level; \ ^ /kisskb/src/lib/test_stackinit.c:259:3: note: in expansion of macro 'DEFINE_STRUCT_TEST' DEFINE_STRUCT_TEST(big_hole, init); \ ^ /kisskb/src/lib/test_stackinit.c:271:1: note: in expansion of macro 'DEFINE_STRUCT_TESTS' DEFINE_STRUCT_TESTS(dynamic_all); ^ /kisskb/src/lib/test_stackinit.c: In function 'test_big_hole_dynamic_all': /kisskb/src/lib/test_stackinit.c:255:15: warning: 'test_big_hole_dynamic_all' uses dynamic stack allocation struct test_ ## name, STRUCT, init) ^ /kisskb/src/lib/test_stackinit.c:101:2: note: in definition of macro 'DEFINE_TEST_DRIVER' var_type zero INIT_CLONE_ ## which; \ ^ /kisskb/src/lib/test_stackinit.c:254:3: note: in expansion of macro 'DEFINE_TEST' DEFINE_TEST(name ## _ ## init, \ ^ /kisskb/src/lib/test_stackinit.c:259:3: note: in expansion of macro 'DEFINE_STRUCT_TEST' DEFINE_STRUCT_TEST(big_hole, init); \ ^ /kisskb/src/lib/test_stackinit.c:271:1: note: in expansion of macro 'DEFINE_STRUCT_TESTS' DEFINE_STRUCT_TESTS(dynamic_all); ^ /kisskb/src/lib/test_stackinit.c: In function 'leaf_big_hole_zero.isra.9': /kisskb/src/lib/test_stackinit.c:255:15: warning: 'leaf_big_hole_zero.isra.9' uses dynamic stack allocation struct test_ ## name, STRUCT, init) ^ /kisskb/src/lib/test_stackinit.c:168:2: note: in definition of macro 'DEFINE_TEST' var_type var INIT_ ## which ## _ ## init_level; \ ^ /kisskb/src/lib/test_stackinit.c:259:3: note: in expansion of macro 'DEFINE_STRUCT_TEST' DEFINE_STRUCT_TEST(big_hole, init); \ ^ /kisskb/src/lib/test_stackinit.c:265:1: note: in expansion of macro 'DEFINE_STRUCT_TESTS' DEFINE_STRUCT_TESTS(zero); ^ /kisskb/src/lib/test_stackinit.c: In function 'test_big_hole_zero': /kisskb/src/lib/test_stackinit.c:255:15: warning: 'test_big_hole_zero' uses dynamic stack allocation struct test_ ## name, STRUCT, init) ^ /kisskb/src/lib/test_stackinit.c:101:2: note: in definition of macro 'DEFINE_TEST_DRIVER' var_type zero INIT_CLONE_ ## which; \ ^ /kisskb/src/lib/test_stackinit.c:254:3: note: in expansion of macro 'DEFINE_TEST' DEFINE_TEST(name ## _ ## init, \ ^ /kisskb/src/lib/test_stackinit.c:259:3: note: in expansion of macro 'DEFINE_STRUCT_TEST' DEFINE_STRUCT_TEST(big_hole, init); \ ^ /kisskb/src/lib/test_stackinit.c:265:1: note: in expansion of macro 'DEFINE_STRUCT_TESTS' DEFINE_STRUCT_TESTS(zero); ^ /kisskb/src/lib/test_stackinit.c: In function 'leaf_big_hole_static_partial.isra.17': /kisskb/src/lib/test_stackinit.c:255:15: warning: 'leaf_big_hole_static_partial.isra.17' uses dynamic stack allocation struct test_ ## name, STRUCT, init) ^ /kisskb/src/lib/test_stackinit.c:168:2: note: in definition of macro 'DEFINE_TEST' var_type var INIT_ ## which ## _ ## init_level; \ ^ /kisskb/src/lib/test_stackinit.c:259:3: note: in expansion of macro 'DEFINE_STRUCT_TEST' DEFINE_STRUCT_TEST(big_hole, init); \ ^ /kisskb/src/lib/test_stackinit.c:267:1: note: in expansion of macro 'DEFINE_STRUCT_TESTS' DEFINE_STRUCT_TESTS(static_partial); ^ /kisskb/src/lib/test_stackinit.c: In function 'test_big_hole_static_partial': /kisskb/src/lib/test_stackinit.c:255:15: warning: 'test_big_hole_static_partial' uses dynamic stack allocation struct test_ ## name, STRUCT, init) ^ /kisskb/src/lib/test_stackinit.c:101:2: note: in definition of macro 'DEFINE_TEST_DRIVER' var_type zero INIT_CLONE_ ## which; \ ^ /kisskb/src/lib/test_stackinit.c:254:3: note: in expansion of macro 'DEFINE_TEST' DEFINE_TEST(name ## _ ## init, \ ^ /kisskb/src/lib/test_stackinit.c:259:3: note: in expansion of macro 'DEFINE_STRUCT_TEST' DEFINE_STRUCT_TEST(big_hole, init); \ ^ /kisskb/src/lib/test_stackinit.c:267:1: note: in expansion of macro 'DEFINE_STRUCT_TESTS' DEFINE_STRUCT_TESTS(static_partial); ^ /kisskb/src/lib/test_stackinit.c: In function 'leaf_big_hole_dynamic_partial.isra.29': /kisskb/src/lib/test_stackinit.c:255:15: warning: 'leaf_big_hole_dynamic_partial.isra.29' uses dynamic stack allocation struct test_ ## name, STRUCT, init) ^ /kisskb/src/lib/test_stackinit.c:168:2: note: in definition of macro 'DEFINE_TEST' var_type var INIT_ ## which ## _ ## init_level; \ ^ /kisskb/src/lib/test_stackinit.c:259:3: note: in expansion of macro 'DEFINE_STRUCT_TEST' DEFINE_STRUCT_TEST(big_hole, init); \ ^ /kisskb/src/lib/test_stackinit.c:270:1: note: in expansion of macro 'DEFINE_STRUCT_TESTS' DEFINE_STRUCT_TESTS(dynamic_partial); ^ /kisskb/src/lib/test_stackinit.c: In function 'test_big_hole_dynamic_partial': /kisskb/src/lib/test_stackinit.c:255:15: warning: 'test_big_hole_dynamic_partial' uses dynamic stack allocation struct test_ ## name, STRUCT, init) ^ /kisskb/src/lib/test_stackinit.c:101:2: note: in definition of macro 'DEFINE_TEST_DRIVER' var_type zero INIT_CLONE_ ## which; \ ^ /kisskb/src/lib/test_stackinit.c:254:3: note: in expansion of macro 'DEFINE_TEST' DEFINE_TEST(name ## _ ## init, \ ^ /kisskb/src/lib/test_stackinit.c:259:3: note: in expansion of macro 'DEFINE_STRUCT_TEST' DEFINE_STRUCT_TEST(big_hole, init); \ ^ /kisskb/src/lib/test_stackinit.c:270:1: note: in expansion of macro 'DEFINE_STRUCT_TESTS' DEFINE_STRUCT_TESTS(dynamic_partial); ^ /kisskb/src/lib/test_stackinit.c: In function 'leaf_big_hole_runtime_partial.isra.41': /kisskb/src/lib/test_stackinit.c:255:15: warning: 'leaf_big_hole_runtime_partial.isra.41' uses dynamic stack allocation struct test_ ## name, STRUCT, init) ^ /kisskb/src/lib/test_stackinit.c:168:2: note: in definition of macro 'DEFINE_TEST' var_type var INIT_ ## which ## _ ## init_level; \ ^ /kisskb/src/lib/test_stackinit.c:259:3: note: in expansion of macro 'DEFINE_STRUCT_TEST' DEFINE_STRUCT_TEST(big_hole, init); \ ^ /kisskb/src/lib/test_stackinit.c:273:1: note: in expansion of macro 'DEFINE_STRUCT_TESTS' DEFINE_STRUCT_TESTS(runtime_partial); ^ /kisskb/src/lib/test_stackinit.c: In function 'test_big_hole_runtime_partial': /kisskb/src/lib/test_stackinit.c:255:15: warning: 'test_big_hole_runtime_partial' uses dynamic stack allocation struct test_ ## name, STRUCT, init) ^ /kisskb/src/lib/test_stackinit.c:101:2: note: in definition of macro 'DEFINE_TEST_DRIVER' var_type zero INIT_CLONE_ ## which; \ ^ /kisskb/src/lib/test_stackinit.c:254:3: note: in expansion of macro 'DEFINE_TEST' DEFINE_TEST(name ## _ ## init, \ ^ /kisskb/src/lib/test_stackinit.c:259:3: note: in expansion of macro 'DEFINE_STRUCT_TEST' DEFINE_STRUCT_TEST(big_hole, init); \ ^ /kisskb/src/lib/test_stackinit.c:273:1: note: in expansion of macro 'DEFINE_STRUCT_TESTS' DEFINE_STRUCT_TESTS(runtime_partial); ^ /kisskb/src/lib/test_stackinit.c: In function 'leaf_big_hole_runtime_all.isra.49': /kisskb/src/lib/test_stackinit.c:255:15: warning: 'leaf_big_hole_runtime_all.isra.49' uses dynamic stack allocation struct test_ ## name, STRUCT, init) ^ /kisskb/src/lib/test_stackinit.c:168:2: note: in definition of macro 'DEFINE_TEST' var_type var INIT_ ## which ## _ ## init_level; \ ^ /kisskb/src/lib/test_stackinit.c:259:3: note: in expansion of macro 'DEFINE_STRUCT_TEST' DEFINE_STRUCT_TEST(big_hole, init); \ ^ /kisskb/src/lib/test_stackinit.c:274:1: note: in expansion of macro 'DEFINE_STRUCT_TESTS' DEFINE_STRUCT_TESTS(runtime_all); ^ /kisskb/src/lib/test_stackinit.c: In function 'test_big_hole_runtime_all': /kisskb/src/lib/test_stackinit.c:255:15: warning: 'test_big_hole_runtime_all' uses dynamic stack allocation struct test_ ## name, STRUCT, init) ^ /kisskb/src/lib/test_stackinit.c:101:2: note: in definition of macro 'DEFINE_TEST_DRIVER' var_type zero INIT_CLONE_ ## which; \ ^ /kisskb/src/lib/test_stackinit.c:254:3: note: in expansion of macro 'DEFINE_TEST' DEFINE_TEST(name ## _ ## init, \ ^ /kisskb/src/lib/test_stackinit.c:259:3: note: in expansion of macro 'DEFINE_STRUCT_TEST' DEFINE_STRUCT_TEST(big_hole, init); \ ^ /kisskb/src/lib/test_stackinit.c:274:1: note: in expansion of macro 'DEFINE_STRUCT_TESTS' DEFINE_STRUCT_TESTS(runtime_all); ^ /kisskb/src/lib/test_stackinit.c: In function 'leaf_big_hole_none.isra.63': /kisskb/src/lib/test_stackinit.c:255:15: warning: 'leaf_big_hole_none.isra.63' uses dynamic stack allocation struct test_ ## name, STRUCT, init) ^ /kisskb/src/lib/test_stackinit.c:168:2: note: in definition of macro 'DEFINE_TEST' var_type var INIT_ ## which ## _ ## init_level; \ ^ /kisskb/src/lib/test_stackinit.c:259:3: note: in expansion of macro 'DEFINE_STRUCT_TEST' DEFINE_STRUCT_TEST(big_hole, init); \ ^ /kisskb/src/lib/test_stackinit.c:277:1: note: in expansion of macro 'DEFINE_STRUCT_TESTS' DEFINE_STRUCT_TESTS(none); ^ /kisskb/src/lib/test_stackinit.c: In function 'test_big_hole_none': /kisskb/src/lib/test_stackinit.c:255:15: warning: 'test_big_hole_none' uses dynamic stack allocation struct test_ ## name, STRUCT, init) ^ /kisskb/src/lib/test_stackinit.c:101:2: note: in definition of macro 'DEFINE_TEST_DRIVER' var_type zero INIT_CLONE_ ## which; \ ^ /kisskb/src/lib/test_stackinit.c:254:3: note: in expansion of macro 'DEFINE_TEST' DEFINE_TEST(name ## _ ## init, \ ^ /kisskb/src/lib/test_stackinit.c:259:3: note: in expansion of macro 'DEFINE_STRUCT_TEST' DEFINE_STRUCT_TEST(big_hole, init); \ ^ /kisskb/src/lib/test_stackinit.c:277:1: note: in expansion of macro 'DEFINE_STRUCT_TESTS' DEFINE_STRUCT_TESTS(none); ^ /kisskb/src/kernel/rseq.c: In function '__rseq_handle_notify_resume': /kisskb/src/kernel/rseq.c:281:1: warning: '__rseq_handle_notify_resume' uses dynamic stack allocation } ^ /kisskb/src/kernel/rseq.c: In function 'rseq_syscall': /kisskb/src/kernel/rseq.c:300:1: warning: 'rseq_syscall' uses dynamic stack allocation } ^ /kisskb/src/lib/test_kasan.c: In function 'kasan_alloca_oob_left': /kisskb/src/lib/test_kasan.c:547:1: warning: 'kasan_alloca_oob_left' uses dynamic stack allocation } ^ /kisskb/src/lib/test_kasan.c: In function 'kasan_alloca_oob_right': /kisskb/src/lib/test_kasan.c:557:1: warning: 'kasan_alloca_oob_right' uses dynamic stack allocation } ^ /kisskb/src/net/bridge/br_device.c: In function 'br_get_stats64': /kisskb/src/net/bridge/br_device.c:220:1: warning: 'br_get_stats64' uses dynamic stack allocation } ^ /kisskb/src/net/bridge/netfilter/ebtables.c: In function 'compat_copy_everything_to_user': /kisskb/src/net/bridge/netfilter/ebtables.c:1854:1: warning: 'compat_copy_everything_to_user' uses dynamic stack allocation } ^ /kisskb/src/drivers/target/iscsi/cxgbit/cxgbit_target.c: In function 'cxgbit_tx_datain_iso.isra.34': /kisskb/src/drivers/target/iscsi/cxgbit/cxgbit_target.c:498:1: warning: 'cxgbit_tx_datain_iso.isra.34' uses dynamic stack allocation } ^ /kisskb/src/drivers/target/iscsi/iscsi_target.c: In function 'iscsit_send_datain': /kisskb/src/drivers/target/iscsi/iscsi_target.c:2871:1: warning: 'iscsit_send_datain' uses dynamic stack allocation } ^ /kisskb/src/drivers/gpu/drm/drm_dp_mst_topology.c: In function 'drm_dp_mst_dsc_aux_for_port': /kisskb/src/drivers/gpu/drm/drm_dp_mst_topology.c:5502:9: warning: missing braces around initializer [-Wmissing-braces] struct drm_dp_desc desc = { 0 }; ^ /kisskb/src/drivers/gpu/drm/drm_dp_mst_topology.c:5502:9: warning: (near initialization for 'desc.ident') [-Wmissing-braces] /kisskb/src/drivers/input/joystick/analog.c:160:2: warning: #warning Precise timer not defined for this architecture. [-Wcpp] #warning Precise timer not defined for this architecture. ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c: In function 'amdgpu_dm_psr_enable': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8676:9: warning: missing braces around initializer [-Wmissing-braces] struct dc_static_screen_params params = {0}; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8676:9: warning: (near initialization for 'params.triggers') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table2.c: In function 'encoder_control_dmcub': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table2.c:116:9: warning: missing braces around initializer [-Wmissing-braces] struct dmub_rb_cmd_digx_encoder_control encoder_control = { 0 }; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table2.c:116:9: warning: (near initialization for 'encoder_control.header') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table2.c: In function 'set_pixel_clock_dmcub': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table2.c:342:9: warning: missing braces around initializer [-Wmissing-braces] struct dmub_rb_cmd_set_pixel_clock pixel_clock = { 0 }; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table2.c:342:9: warning: (near initialization for 'pixel_clock.header') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser2.c: In function 'bios_parser_get_i2c_info': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser2.c:297:9: warning: missing braces around initializer [-Wmissing-braces] struct atom_i2c_record dummy_record = {0}; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser2.c:297:9: warning: (near initialization for 'dummy_record.record_header') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c: In function 'dp_test_get_audio_test_data': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c:2695:8: warning: missing braces around initializer [-Wmissing-braces] union audio_test_mode dpcd_test_mode = {0}; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c:2695:8: warning: (near initialization for 'dpcd_test_mode.bits') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c:2697:8: warning: missing braces around initializer [-Wmissing-braces] union audio_test_pattern_period dpcd_pattern_period[AUDIO_CHANNELS_COUNT] = {0}; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c:2697:8: warning: (near initialization for 'dpcd_pattern_period[0]') [-Wmissing-braces] /kisskb/src/drivers/crypto/chelsio/chtls/chtls_cm.c: In function 'wait_for_states.constprop': /kisskb/src/drivers/crypto/chelsio/chtls/chtls_cm.c:403:1: warning: 'wait_for_states.constprop' uses dynamic stack allocation } ^ /kisskb/src/drivers/android/binderfs.c: In function 'binderfs_fill_super': /kisskb/src/drivers/android/binderfs.c:653:9: warning: missing braces around initializer [-Wmissing-braces] struct binderfs_device device_info = { 0 }; ^ /kisskb/src/drivers/android/binderfs.c:653:9: warning: (near initialization for 'device_info.name') [-Wmissing-braces] In file included from /kisskb/src/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c:40:0: /kisskb/src/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c: In function 'mvpp2_setup_bm_pool': /kisskb/src/drivers/net/ethernet/marvell/mvpp2/mvpp2.h:634:2: warning: overflow in implicit constant conversion [-Woverflow] ((total_size) - NET_SKB_PAD - MVPP2_SKB_SHINFO_SIZE) ^ /kisskb/src/drivers/net/ethernet/marvell/mvpp2/mvpp2.h:699:33: note: in expansion of macro 'MVPP2_RX_MAX_PKT_SIZE' #define MVPP2_BM_SHORT_PKT_SIZE MVPP2_RX_MAX_PKT_SIZE(MVPP2_BM_SHORT_FRAME_SIZE) ^ /kisskb/src/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c:580:41: note: in expansion of macro 'MVPP2_BM_SHORT_PKT_SIZE' mvpp2_pools[MVPP2_BM_SHORT].pkt_size = MVPP2_BM_SHORT_PKT_SIZE; ^ /kisskb/src/drivers/net/ethernet/neterion/vxge/vxge-config.c: In function 'vxge_hw_device_hw_info_get': /kisskb/src/drivers/net/ethernet/neterion/vxge/vxge-config.c:1089:1: warning: 'vxge_hw_device_hw_info_get' uses dynamic stack allocation } ^ /kisskb/src/arch/s390/boot/mem_detect.c: In function 'detect_memory': /kisskb/src/arch/s390/boot/mem_detect.c:175:1: warning: 'detect_memory' uses dynamic stack allocation } ^ Completed OK # rm -rf /kisskb/build/linus_s390-allyesconfig_s390x-gcc4.9 # Build took: 0:17:22.133913