# git rev-parse -q --verify 8a96efd384e6d0797a06a34503ebf21f133c74cb^{commit} # git fetch -q -n -f git://gitlab.ozlabs.ibm.com/linuxppc/linux.git next-test warning: The last gc run reported the following. Please correct the root cause and remove .git/gc.log. Automatic cleanup will not be performed until the file is removed. warning: There are too many unreachable loose objects; run 'git prune' to remove them. # git rev-parse -q --verify 8a96efd384e6d0797a06a34503ebf21f133c74cb^{commit} 8a96efd384e6d0797a06a34503ebf21f133c74cb # git checkout -q -f -B kisskb 8a96efd384e6d0797a06a34503ebf21f133c74cb # git clean -qxdf # < git log -1 # commit 8a96efd384e6d0797a06a34503ebf21f133c74cb # Author: Madhavan Srinivasan # Date: Tue Aug 27 15:46:35 2019 +0530 # # powerpc/imc: Dont create debugfs files for cpu-less nodes # # Commit <684d984038aa> ('powerpc/powernv: Add debugfs interface for # imc-mode and imc') added debugfs interface for the nest imc pmu # devices to support changing of different ucode modes. Primarily adding # this capability for debug. But when doing so, the code did not # consider the case of cpu-less nodes. So when reading the _cmd_ or # _mode_ file of a cpu-less node will create this crash. # # Faulting instruction address: 0xc0000000000d0d58 # Oops: Kernel access of bad area, sig: 11 [#1] # ... # CPU: 67 PID: 5301 Comm: cat Not tainted 5.2.0-rc6-next-20190627+ #19 # NIP: c0000000000d0d58 LR: c00000000049aa18 CTR:c0000000000d0d50 # REGS: c00020194548f9e0 TRAP: 0300 Not tainted (5.2.0-rc6-next-20190627+) # MSR: 9000000000009033 CR:28022822 XER: 00000000 # CFAR: c00000000049aa14 DAR: 000000000003fc08 DSISR:40000000 IRQMASK: 0 # ... # NIP imc_mem_get+0x8/0x20 # LR simple_attr_read+0x118/0x170 # Call Trace: # simple_attr_read+0x70/0x170 (unreliable) # debugfs_attr_read+0x6c/0xb0 # __vfs_read+0x3c/0x70 # vfs_read+0xbc/0x1a0 # ksys_read+0x7c/0x140 # system_call+0x5c/0x70 # # Patch fixes the issue with a more robust check for vbase to NULL. # # Before patch, ls output for the debugfs imc directory # # # ls /sys/kernel/debug/powerpc/imc/ # imc_cmd_0 imc_cmd_251 imc_cmd_253 imc_cmd_255 imc_mode_0 imc_mode_251 imc_mode_253 imc_mode_255 # imc_cmd_250 imc_cmd_252 imc_cmd_254 imc_cmd_8 imc_mode_250 imc_mode_252 imc_mode_254 imc_mode_8 # # After patch, ls output for the debugfs imc directory # # # ls /sys/kernel/debug/powerpc/imc/ # imc_cmd_0 imc_cmd_8 imc_mode_0 imc_mode_8 # # Actual bug here is that, we have two loops with potentially different # loop counts. That is, in imc_get_mem_addr_nest(), loop count is # obtained from the dt entries. But in case of export_imc_mode_and_cmd(), # loop was based on for_each_nid() count. Patch fixes the loop count in # latter based on the struct mem_info. Ideally it would be better to # have array size in struct imc_pmu. # # Fixes: 684d984038aa ('powerpc/powernv: Add debugfs interface for imc-mode and imc') # Reported-by: Qian Cai # Suggested-by: Michael Ellerman # Signed-off-by: Madhavan Srinivasan # Signed-off-by: Michael Ellerman # Link: https://lore.kernel.org/r/20190827101635.6942-1-maddy@linux.vnet.ibm.com # < /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 8a96efd384e6d0797a06a34503ebf21f133c74cb # < make -s -j 40 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_powerpc-randconfig_powerpc-gcc4.6 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- randconfig KCONFIG_SEED=0xF09ADC60 # 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 # Added to kconfig CONFIG_UBSAN=n # yes \n | make -s -j 40 ARCH=powerpc O=/kisskb/build/powerpc-next-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 40 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_powerpc-randconfig_powerpc-gcc4.6 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- In file included from /kisskb/src/arch/powerpc/xmon/xmon.c:63:0: /kisskb/src/arch/powerpc/xmon/dis-asm.h: In function 'print_insn_powerpc': /kisskb/src/arch/powerpc/xmon/dis-asm.h:16:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] /kisskb/src/arch/powerpc/xmon/dis-asm.h: In function 'print_insn_spu': /kisskb/src/arch/powerpc/xmon/dis-asm.h:22:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] /kisskb/src/arch/powerpc/kernel/syscall_64.c: In function 'system_call_exception': /kisskb/src/arch/powerpc/kernel/syscall_64.c:40:2: error: implicit declaration of function 'kuap_check_amr' [-Werror=implicit-function-declaration] /kisskb/src/arch/powerpc/kernel/syscall_64.c:73:6: error: 'NR_syscalls' undeclared (first use in this function) /kisskb/src/arch/powerpc/kernel/syscall_64.c:73:6: note: each undeclared identifier is reported only once for each function it appears in /kisskb/src/arch/powerpc/kernel/syscall_64.c: In function 'syscall_exit_prepare': /kisskb/src/arch/powerpc/kernel/syscall_64.c:161:2: error: implicit declaration of function '__mtmsrd' [-Werror=implicit-function-declaration] cc1: some warnings being treated as errors make[3]: *** [/kisskb/src/scripts/Makefile.build:274: arch/powerpc/kernel/syscall_64.o] Error 1 make[3]: *** Waiting for unfinished jobs.... /kisskb/src/lib/mpi/mpicoder.c: In function 'mpi_read_raw_from_sgl': /kisskb/src/lib/mpi/mpicoder.c:352:8: warning: 'buff' may be used uninitialized in this function [-Wuninitialized] make[2]: *** [/kisskb/src/scripts/Makefile.build:490: arch/powerpc/kernel] Error 2 make[1]: *** [/kisskb/src/Makefile:1079: arch/powerpc] Error 2 make[1]: *** Waiting for unfinished jobs.... /kisskb/src/sound/core/pcm_iec958.c: In function 'create_iec958_consumer': /kisskb/src/sound/core/pcm_iec958.c:77:9: warning: 'ws' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/kernel/rcu/srcutree.c: In function 'init_srcu_struct_nodes': /kisskb/src/kernel/rcu/srcutree.c:121:34: warning: 'levelspread[]' 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/lib/rhashtable.c: In function 'rhashtable_rehash_one.isra.8': /kisskb/src/include/linux/rhashtable.h:110:10: warning: 'next' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/lib/rhashtable.c:222:28: note: 'next' was declared here /kisskb/src/fs/gfs2/bmap.c: In function 'gfs2_iomap_get': /kisskb/src/fs/gfs2/bmap.c:918:18: warning: 'height' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/fs/gfs2/bmap.c:913:7: warning: 'len' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/mm/hmm.c: In function 'hmm_vma_walk_pud': /kisskb/src/mm/hmm.c:753:3: error: implicit declaration of function 'pud_pfn' [-Werror=implicit-function-declaration] cc1: some warnings being treated as errors make[2]: *** [/kisskb/src/scripts/Makefile.build:273: mm/hmm.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [/kisskb/src/Makefile:1079: mm] Error 2 /kisskb/src/drivers/hwspinlock/hwspinlock_core.c: In function 'of_hwspin_lock_get_id': /kisskb/src/drivers/hwspinlock/hwspinlock_core.c:345:6: warning: 'id' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/gpu/drm/scheduler/sched_main.c: In function 'drm_sched_resubmit_jobs': /kisskb/src/drivers/gpu/drm/scheduler/sched_main.c:490:20: warning: 'guilty_context' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/gpu/drm/drm_atomic.c: In function 'drm_atomic_connector_check': /kisskb/src/drivers/gpu/drm/drm_atomic.c:426:38: warning: 'crtc_state' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/iio/imu/bmi160/bmi160_core.c: In function 'bmi160_config_pin.constprop.9': /kisskb/src/drivers/iio/imu/bmi160/bmi160_core.c:618:3: warning: 'pin_name' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/iio/imu/bmi160/bmi160_core.c:606:29: warning: 'int_map_mask' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/iio/imu/bmi160/bmi160_core.c:599:29: warning: 'int_latch_mask' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/iio/imu/bmi160/bmi160_core.c:577:47: warning: 'int_out_ctrl_shift' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/video/backlight/adp8860_bl.c: In function 'adp8860_bl_ambient_light_level_show': /kisskb/src/drivers/video/backlight/adp8860_bl.c:578:10: warning: 'ret_val' may be used uninitialized in this function [-Wuninitialized] make: *** [Makefile:179: sub-make] Error 2 Command 'make -s -j 40 ARCH=powerpc O=/kisskb/build/powerpc-next-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/powerpc-next-rand_powerpc-randconfig_powerpc-gcc4.6 # Build took: 0:01:03.709388