# git rev-parse -q --verify 66be4e66a7f422128748e3c3ef6ee72b20a6197b^{commit} 66be4e66a7f422128748e3c3ef6ee72b20a6197b already have revision, skipping fetch # git checkout -q -f -B kisskb 66be4e66a7f422128748e3c3ef6ee72b20a6197b # git clean -qxdf # < git log -1 # commit 66be4e66a7f422128748e3c3ef6ee72b20a6197b # Author: Linus Torvalds # Date: Mon Jun 3 13:26:20 2019 -0700 # # rcu: locking and unlocking need to always be at least barriers # # Herbert Xu pointed out that commit bb73c52bad36 ("rcu: Don't disable # preemption for Tiny and Tree RCU readers") was incorrect in making the # preempt_disable/enable() be conditional on CONFIG_PREEMPT_COUNT. # # If CONFIG_PREEMPT_COUNT isn't enabled, the preemption enable/disable is # a no-op, but still is a compiler barrier. # # And RCU locking still _needs_ that compiler barrier. # # It is simply fundamentally not true that RCU locking would be a complete # no-op: we still need to guarantee (for example) that things that can # trap and cause preemption cannot migrate into the RCU locked region. # # The way we do that is by making it a barrier. # # See for example commit 386afc91144b ("spinlocks and preemption points # need to be at least compiler barriers") from back in 2013 that had # similar issues with spinlocks that become no-ops on UP: they must still # constrain the compiler from moving other operations into the critical # region. # # Now, it is true that a lot of RCU operations already use READ_ONCE() and # WRITE_ONCE() (which in practice likely would never be re-ordered wrt # anything remotely interesting), but it is also true that that is not # globally the case, and that it's not even necessarily always possible # (ie bitfields etc). # # Reported-by: Herbert Xu # Fixes: bb73c52bad36 ("rcu: Don't disable preemption for Tiny and Tree RCU readers") # Cc: stable@kernel.org # Cc: Boqun Feng # Cc: Paul E. McKenney # Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux-gcc --version # < /opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux-ld --version # < git log --format=%s --max-count=1 66be4e66a7f422128748e3c3ef6ee72b20a6197b # < make -s -j 10 ARCH=powerpc O=/kisskb/build/linus-rand_powerpc-randconfig_powerpc-gcc4.6 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- randconfig KCONFIG_SEED=0x19FFA98 # Added to kconfig CONFIG_STANDALONE=y # Added to kconfig CONFIG_BUILD_DOCSRC=n # Added to kconfig CONFIG_MODULE_SIG=n # Added to kconfig CONFIG_CPU_BIG_ENDIAN=y # Added to kconfig CONFIG_PPC64=y # Added to kconfig CONFIG_PPC_DISABLE_WERROR=y # Added to kconfig CONFIG_SECTION_MISMATCH_WARN_ONLY=y # Added to kconfig CONFIG_PREVENT_FIRMWARE_BUILD=y # Added to kconfig CONFIG_CC_STACKPROTECTOR_STRONG=n # Added to kconfig CONFIG_GCC_PLUGINS=n # Added to kconfig CONFIG_LD_HEAD_STUB_CATCH=y # Added to kconfig CONFIG_TRIM_UNUSED_KSYMS=n # yes \n | make -s -j 10 ARCH=powerpc O=/kisskb/build/linus-rand_powerpc-randconfig_powerpc-gcc4.6 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- oldconfig yes: standard output: Broken pipe # make -s -j 10 ARCH=powerpc O=/kisskb/build/linus-rand_powerpc-randconfig_powerpc-gcc4.6 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- /kisskb/src/fs/proc/inode.c: In function 'proc_reg_open': /kisskb/src/fs/proc/inode.c:363:15: warning: 'pdeo' 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:1850:6: warning: 'ret' 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:2589:6: warning: 'ret' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/base/regmap/regcache-rbtree.c: In function 'regcache_rbtree_write': /kisskb/src/drivers/base/regmap/regcache-rbtree.c:274:20: warning: 'new_top_reg' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/base/regmap/regcache-rbtree.c:389:30: note: 'new_top_reg' was declared here /kisskb/src/drivers/base/regmap/regcache-rbtree.c:274:20: warning: 'new_base_reg' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/base/regmap/regcache-rbtree.c:389:16: note: 'new_base_reg' was declared here /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/kernel/time/tick-sched.c: In function 'tick_nohz_idle_exit': /kisskb/src/kernel/time/tick-sched.c:1180:32: warning: 'now' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/hid/hid-asus.c: In function 'asus_input_configured': /kisskb/src/drivers/hid/hid-asus.c:422:2: warning: 'kbd_func' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/hid/hid-asus.c:408:16: note: 'kbd_func' was declared here /kisskb/src/drivers/hwtracing/intel_th/msu.c: In function 'msc_buffer_win_alloc': /kisskb/src/drivers/hwtracing/intel_th/msu.c:783:21: warning: unused variable 'i' [-Wunused-variable] /kisskb/src/drivers/hwtracing/intel_th/msu.c: In function 'msc_buffer_win_free': /kisskb/src/drivers/hwtracing/intel_th/msu.c:863:6: warning: unused variable 'i' [-Wunused-variable] /kisskb/src/drivers/hwmon/lochnagar-hwmon.c: In function 'read_sensor': /kisskb/src/drivers/hwmon/lochnagar-hwmon.c:74:6: warning: 'data' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/hwmon/lochnagar-hwmon.c:180:6: note: 'data' was declared here /kisskb/src/drivers/iio/accel/mma9551_core.c: In function 'mma9551_gpio_config': /kisskb/src/drivers/iio/accel/mma9551_core.c:590:6: warning: 'pol_mask' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/iio/accel/mma9551.c: In function 'mma9551_event_handler': /kisskb/src/drivers/iio/accel/mma9551.c:381:6: warning: 'reg' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/lib/kobject_uevent.c: In function 'kobject_synth_uevent': /kisskb/src/lib/kobject_uevent.c:223:7: warning: 'env' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/lib/kobject_uevent.c:142:10: warning: 'action_args' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/lib/kobject_uevent.c:196:14: note: 'action_args' was declared here /kisskb/src/drivers/iio/adc/qcom-spmi-adc5.c: In function 'adc5_read_raw': /kisskb/src/drivers/iio/adc/qcom-spmi-adc5.c:398:7: warning: 'adc_code_volt' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/kernel/kexec.c: In function 'do_kexec_load': /kisskb/src/kernel/kexec.c:157:7: warning: 'image' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/kernel/seccomp.c: In function '__seccomp_filter': /kisskb/src/kernel/seccomp.c:917:1: warning: no return statement in function returning non-void [-Wreturn-type] /kisskb/src/drivers/input/touchscreen/s6sy761.c: In function 's6sy761_probe': /kisskb/src/drivers/input/touchscreen/s6sy761.c:437:22: warning: 'max_y' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/input/touchscreen/s6sy761.c:436:22: warning: 'max_x' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/iio/light/lv0104cs.c: In function 'lv0104cs_read_raw': /kisskb/src/drivers/iio/light/lv0104cs.c:202:21: warning: 'adc_output' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/iio/light/lv0104cs.c:164:6: note: 'adc_output' was declared here /kisskb/src/drivers/iio/pressure/bmp280-core.c: In function 'bmp180_read_temp': /kisskb/src/drivers/iio/pressure/bmp280-core.c:815:18: warning: 'adc_temp' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/iio/pressure/bmp280-core.c:825:6: note: 'adc_temp' was declared here /kisskb/src/drivers/iio/pressure/bmp280-core.c: In function 'bmp180_read_press': /kisskb/src/drivers/iio/pressure/bmp280-core.c:886:8: warning: 'adc_press' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/iio/pressure/bmp280-core.c:903:6: note: 'adc_press' was declared here /kisskb/src/drivers/iio/proximity/srf08.c: In function 'srf08_write_sensitivity': /kisskb/src/drivers/iio/proximity/srf08.c:370:6: warning: 'regval' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/iio/temperature/mlx90632.c: In function 'mlx90632_read_raw': /kisskb/src/drivers/iio/temperature/mlx90632.c:349:37: warning: 'object_old_raw' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/iio/temperature/mlx90632.c:430:56: note: 'object_old_raw' was declared here /kisskb/src/drivers/iio/temperature/mlx90632.c:349:37: warning: 'object_new_raw' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/iio/temperature/mlx90632.c:430:40: note: 'object_new_raw' was declared here /kisskb/src/drivers/mtd/ubi/eba.c: In function 'try_write_vid_and_data': /kisskb/src/drivers/mtd/ubi/eba.c:988:7: warning: 'opnum' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/rtc/rtc-tps65910.c: In function 'tps65910_read_offset': /kisskb/src/drivers/rtc/rtc-tps65910.c:289:20: warning: 'calibration' may be used uninitialized in this function [-Wuninitialized] WARNING: vmlinux.o(.text+0x39e): Section mismatch in reference from the variable start_here_multiplatform to the function .init.text:.early_setup() The function start_here_multiplatform() references the function __init .early_setup(). This is often because start_here_multiplatform lacks a __init annotation or the annotation of .early_setup is wrong. arch/powerpc/perf/perf_regs.o: In function `.perf_reg_value': (.text+0x9c): undefined reference to `.is_sier_available' make[1]: *** [/kisskb/src/Makefile:1052: vmlinux] Error 1 make: *** [Makefile:179: sub-make] Error 2 Command 'make -s -j 10 ARCH=powerpc O=/kisskb/build/linus-rand_powerpc-randconfig_powerpc-gcc4.6 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/linus-rand_powerpc-randconfig_powerpc-gcc4.6 # Build took: 0:01:31.397969