Re: Build regressions/improvements in v5.12-rc1

From: Christophe Leroy
Date: Fri Mar 05 2021 - 06:17:50 EST




Le 02/03/2021 à 21:01, Geert Uytterhoeven a écrit :
Hi Alex,

On Tue, Mar 2, 2021 at 8:30 PM Alex Deucher <alexdeucher@xxxxxxxxx> wrote:
On Mon, Mar 1, 2021 at 9:21 AM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
On Mon, 1 Mar 2021, Geert Uytterhoeven wrote:
Below is the list of build error/warning regressions/improvements in
v5.12-rc1[1] compared to v5.11[2].

Summarized:
- build errors: +2/-0

[1] http://kisskb.ellerman.id.au/kisskb/branch/linus/head/fe07bfda2fb9cdef8a4d4008a409bb02f35f1bd8/ (all 192 configs)
[2] http://kisskb.ellerman.id.au/kisskb/branch/linus/head/f40ddce88593482919761f74910f42f4b84c004b/ (all 192 configs)


*** ERRORS ***

2 error regressions:
+ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c: error: implicit declaration of function 'disable_kernel_vsx' [-Werror=implicit-function-declaration]: => 674:2
+ /kisskb/src/drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c: error: implicit declaration of function 'enable_kernel_vsx' [-Werror=implicit-function-declaration]: => 638:2

powerpc-gcc4.9/ppc64_book3e_allmodconfig

This was fixed in v5.11-rc1, but reappeared in v5.12-rc1?

Do you know what fixed in for 5.11? I guess for PPC64 we depend on CONFIG_VSX?

Looking at the kisskb build logs for v5.11*, it seems compilation never
got to drivers/gpu/drm/ due to internal compiler errors that weren't caught
by my scripts. So the errors listed above were not really fixed.


As far as I can see, the problem has been there for any config without CONFIG_VSX from the beginning ie since https://github.com/linuxppc/linux/commit/16a9dea110a6

The following should fix it up:

diff --git a/arch/powerpc/include/asm/switch_to.h b/arch/powerpc/include/asm/switch_to.h
index fdab93428372..9d1fbd8be1c7 100644
--- a/arch/powerpc/include/asm/switch_to.h
+++ b/arch/powerpc/include/asm/switch_to.h
@@ -71,6 +71,16 @@ static inline void disable_kernel_vsx(void)
{
msr_check_and_clear(MSR_FP|MSR_VEC|MSR_VSX);
}
+#else
+static inline void enable_kernel_vsx(void)
+{
+ BUILD_BUG();
+}
+
+static inline void disable_kernel_vsx(void)
+{
+ BUILD_BUG();
+}
#endif

#ifdef CONFIG_SPE
---
Christophe
Christophe