# git rev-parse -q --verify 07a361072378fb3ae116db86244372dbd68f9ea3^{commit} 07a361072378fb3ae116db86244372dbd68f9ea3 already have revision, skipping fetch # git checkout -q -f -B kisskb 07a361072378fb3ae116db86244372dbd68f9ea3 # git clean -qxdf # < git log -1 # commit 07a361072378fb3ae116db86244372dbd68f9ea3 # Author: Daniel Henrique Barboza # Date: Tue Mar 23 17:50:56 2021 -0300 # # powerpc/pseries/hotplug-cpu: Show 'last online CPU' error in dlpar_cpu_offline() # # One of the reasons that dlpar_cpu_offline can fail is when attempting to # offline the last online CPU of the kernel. This can be observed in a # pseries QEMU guest that has hotplugged CPUs. If the user offlines all # other CPUs of the guest, and a hotplugged CPU is now the last online # CPU, trying to reclaim it will fail. # # The current error message in this situation returns rc with -EBUSY and a # generic explanation, e.g.: # # pseries-hotplug-cpu: Failed to offline CPU PowerPC,POWER9, rc: -16 # # EBUSY can be caused by other conditions, such as cpu_hotplug_disable # being true. Throwing a more specific error message for this case, # instead of just "Failed to offline CPU", makes it clearer that the error # is in fact a known error situation instead of other generic/unknown # cause. # # This patch adds a 'last online' check in dlpar_cpu_offline() to catch # the 'last online CPU' offline error, eturning a more informative error # message: # # pseries-hotplug-cpu: Unable to remove last online CPU PowerPC,POWER9 # # Signed-off-by: Daniel Henrique Barboza # Signed-off-by: Michael Ellerman # Link: https://lore.kernel.org/r/20210323205056.52768-2-danielhb413@gmail.com # < /opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 07a361072378fb3ae116db86244372dbd68f9ea3 # < make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_powerpc-randconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- randconfig KCONFIG_SEED=0xDD09C048 # 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 # < make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_powerpc-randconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_powerpc-randconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig .config:4480:warning: override: reassigning to symbol PPC_DISABLE_WERROR .config:4482:warning: override: reassigning to symbol PREVENT_FIRMWARE_BUILD # make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_powerpc-randconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- /kisskb/src/arch/powerpc/platforms/cell/spufs/sched.c:1056:12: warning: 'show_spu_loadavg' defined but not used [-Wunused-function] static int show_spu_loadavg(struct seq_file *s, void *private) ^ /kisskb/src/drivers/macintosh/via-pmu.c:861:12: warning: 'pmu_info_proc_show' defined but not used [-Wunused-function] static int pmu_info_proc_show(struct seq_file *m, void *v) ^ /kisskb/src/drivers/macintosh/via-pmu.c:872:12: warning: 'pmu_irqstats_proc_show' defined but not used [-Wunused-function] static int pmu_irqstats_proc_show(struct seq_file *m, void *v) ^ /kisskb/src/drivers/macintosh/via-pmu.c:898:12: warning: 'pmu_battery_proc_show' defined but not used [-Wunused-function] static int pmu_battery_proc_show(struct seq_file *m, void *v) ^ /kisskb/src/fs/btrfs/tree-checker.c: In function 'check_root_item': /kisskb/src/fs/btrfs/tree-checker.c:1071:9: warning: missing braces around initializer [-Wmissing-braces] struct btrfs_root_item ri = { 0 }; ^ /kisskb/src/fs/btrfs/tree-checker.c:1071:9: warning: (near initialization for 'ri.inode') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/navi10_ppt.c: In function 'navi10_get_gpu_metrics': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/navi10_ppt.c:2297:2: warning: missing braces around initializer [-Wmissing-braces] SmuMetrics_NV12_t nv12_metrics = { 0 }; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/navi10_ppt.c:2297:2: warning: (near initialization for 'nv12_metrics.CurrClock') [-Wmissing-braces] /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:9863: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:9863:9: warning: (near initialization for 'params.triggers') [-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/clk_mgr/dcn301/dcn301_smu.c: In function 'dcn301_smu_enable_phy_refclk_pwrdwn': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/dcn301_smu.c:198:8: warning: missing braces around initializer [-Wmissing-braces] union display_idle_optimization_u idle_info = { 0 }; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/dcn301_smu.c:198:8: warning: (near initialization for 'idle_info.idle_info') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c: In function 'vg_update_clocks': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c:116:11: warning: missing braces around initializer [-Wmissing-braces] union display_idle_optimization_u idle_info = { 0 }; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c:116:11: warning: (near initialization for 'idle_info.idle_info') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c:129:10: warning: missing braces around initializer [-Wmissing-braces] union display_idle_optimization_u idle_info = { 0 }; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c:129:10: warning: (near initialization for 'idle_info.idle_info') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c: At top level: /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c:704:15: warning: missing braces around initializer [-Wmissing-braces] static struct watermarks dummy_wms = { 0 }; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.c:704:15: warning: (near initialization for 'dummy_wms.WatermarkRow') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn21/rn_clk_mgr.c: In function 'rn_clk_mgr_construct': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn21/rn_clk_mgr.c:880:9: warning: missing braces around initializer [-Wmissing-braces] struct dpm_clocks clock_table = { 0 }; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn21/rn_clk_mgr.c:880:9: warning: (near initialization for 'clock_table.DcfClocks') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_hubp.c: In function 'hubp2_validate_dml_output': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_hubp.c:1273:9: warning: missing braces around initializer [-Wmissing-braces] struct _vcs_dpi_display_rq_regs_st rq_regs = {0}; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_hubp.c:1273:9: warning: (near initialization for 'rq_regs.rq_regs_l') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_hwseq.c: In function 'dcn20_pipe_control_lock': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_hwseq.c:1229:9: warning: missing braces around initializer [-Wmissing-braces] union dmub_hw_lock_flags hw_locks = { 0 }; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_hwseq.c:1229:9: warning: (near initialization for 'hw_locks.bits') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_resource.c:451:15: warning: missing braces around initializer [-Wmissing-braces] static struct _vcs_dpi_soc_bounding_box_st dcn2_0_nv12_soc = { 0 }; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_resource.c:451:15: warning: (near initialization for 'dcn2_0_nv12_soc.clock_limits') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c: In function 'dcn10_cursor_lock': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:1802:9: warning: missing braces around initializer [-Wmissing-braces] union dmub_hw_lock_flags hw_locks = { 0 }; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_hw_sequencer.c:1802:9: warning: (near initialization for 'hw_locks.bits') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn21/dcn21_hubp.c: In function 'hubp21_validate_dml_output': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn21/dcn21_hubp.c:258:9: warning: missing braces around initializer [-Wmissing-braces] struct _vcs_dpi_display_rq_regs_st rq_regs = {0}; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn21/dcn21_hubp.c:258:9: warning: (near initialization for 'rq_regs.rq_regs_l') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_hwseq.c: In function 'dcn30_mmhubbub_warmup': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_hwseq.c:264:9: warning: missing braces around initializer [-Wmissing-braces] struct mcif_warmup_params warmup_params = {0}; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/dcn30/dcn30_hwseq.c:264:9: warning: (near initialization for 'warmup_params.start_address') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc.c: In function 'commit_planes_for_stream': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc.c:2483:11: warning: missing braces around initializer [-Wmissing-braces] union dmub_hw_lock_flags hw_locks = { 0 }; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc.c:2483:11: warning: (near initialization for 'hw_locks.bits') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc.c:2664:11: warning: missing braces around initializer [-Wmissing-braces] union dmub_hw_lock_flags hw_locks = { 0 }; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc.c:2664:11: warning: (near initialization for 'hw_locks.bits') [-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:2821: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:2821: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:2823: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:2823:8: warning: (near initialization for 'dpcd_pattern_period[0]') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c: In function 'dc_link_dp_set_test_pattern': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c:4161:11: warning: missing braces around initializer [-Wmissing-braces] union dmub_hw_lock_flags hw_locks = { 0 }; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c:4161:11: warning: (near initialization for 'hw_locks.bits') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c:4205:11: warning: missing braces around initializer [-Wmissing-braces] union dmub_hw_lock_flags hw_locks = { 0 }; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c:4205:11: warning: (near initialization for 'hw_locks.bits') [-Wmissing-braces] /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn20.c: In function 'dmub_dcn20_enable_dmub_boot_options': /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn20.c:333:8: warning: missing braces around initializer [-Wmissing-braces] union dmub_fw_boot_options boot_options = {0}; ^ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dmub/src/dmub_dcn20.c:333:8: warning: (near initialization for 'boot_options.bits') [-Wmissing-braces] arch/powerpc/../../virt/kvm/vfio.o: In function `kvm_vfio_group_set_kvm': /kisskb/src/arch/powerpc/kvm/../../../virt/kvm/vfio.c:85:(.text+0x13e): relocation truncated to fit: R_PPC64_TOC16_HA against undefined symbol `vfio_group_set_kvm' arch/powerpc/../../virt/kvm/vfio.o: In function `kvm_vfio_group_put_external_user': /kisskb/src/arch/powerpc/kvm/../../../virt/kvm/vfio.c:72:(.text+0x1a2): relocation truncated to fit: R_PPC64_TOC16_HA against undefined symbol `vfio_group_put_external_user' arch/powerpc/../../virt/kvm/vfio.o: In function `kvm_vfio_group_is_coherent': /kisskb/src/arch/powerpc/kvm/../../../virt/kvm/vfio.c:99:(.text+0x28e): relocation truncated to fit: R_PPC64_TOC16_HA against undefined symbol `vfio_external_check_extension' arch/powerpc/../../virt/kvm/vfio.o: In function `kvm_vfio_group_get_external_user': /kisskb/src/arch/powerpc/kvm/../../../virt/kvm/vfio.c:41:(.text+0x88e): relocation truncated to fit: R_PPC64_TOC16_HA against undefined symbol `vfio_group_get_external_user' arch/powerpc/../../virt/kvm/vfio.o: In function `kvm_vfio_external_group_match_file': /kisskb/src/arch/powerpc/kvm/../../../virt/kvm/vfio.c:57:(.text+0xc46): relocation truncated to fit: R_PPC64_TOC16_HA against undefined symbol `vfio_external_group_match_file' /opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux-ld: final link failed: Bad value make[1]: *** [/kisskb/src/Makefile:1199: vmlinux] Error 1 make: *** [Makefile:215: __sub-make] Error 2 Command 'make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_powerpc-randconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/powerpc-next-rand_powerpc-randconfig_powerpc-gcc4.9 # Build took: 0:04:14.246542