diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4310-drm-amdgpu-enable-msse2-for-GCC-7.1-users.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4310-drm-amdgpu-enable-msse2-for-GCC-7.1-users.patch | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4310-drm-amdgpu-enable-msse2-for-GCC-7.1-users.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4310-drm-amdgpu-enable-msse2-for-GCC-7.1-users.patch new file mode 100644 index 00000000..2925348d --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4310-drm-amdgpu-enable-msse2-for-GCC-7.1-users.patch @@ -0,0 +1,122 @@ +From 89ebce5861f64bd3fcd1aa17d12e6d181632234e Mon Sep 17 00:00:00 2001 +From: Nick Desaulniers <ndesaulniers@google.com> +Date: Wed, 16 Oct 2019 16:02:09 -0700 +Subject: [PATCH 4310/4736] drm/amdgpu: enable -msse2 for GCC 7.1+ users + +A final attempt at enabling sse2 for GCC users. + +Orininally attempted in: +commit 10117450735c ("drm/amd/display: add -msse2 to prevent Clang from emitting libcalls to undefined SW FP routines") + +Reverted due to "reported instability" in: +commit 193392ed9f69 ("Revert "drm/amd/display: add -msse2 to prevent Clang from emitting libcalls to undefined SW FP routines"") + +Re-added just for Clang in: +commit 0f0727d971f6 ("drm/amd/display: readd -msse2 to prevent Clang from emitting libcalls to undefined SW FP routines") + +The original report didn't have enough information to know if the GPF +was due to misalignment, but I suspect that it was. (The missing +information was the disassembly of the function at the bottom of the +trace, to see if the instruction pointer pointed to an instruction with +16B alignment memory operand requirements. The stack trace does show +the stack was only 8B but not 16B aligned though, which makes this a +strong possibility). + +Now that the stack misalignment issue has been fixed for users of GCC +7.1+, reattempt adding -msse2. This matches Clang. + +It will likely never be safe to enable this for pre-GCC 7.1 AND use a +16B aligned stack in these translation units. + +This is only a functional change for GCC 7.1+ users, and should be boot +tested. + +Link: https://bugs.freedesktop.org/show_bug.cgi?id=109487 +Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/display/dc/calcs/Makefile | 4 +--- + drivers/gpu/drm/amd/display/dc/dcn20/Makefile | 4 +--- + drivers/gpu/drm/amd/display/dc/dcn21/Makefile | 4 +--- + drivers/gpu/drm/amd/display/dc/dml/Makefile | 4 +--- + drivers/gpu/drm/amd/display/dc/dsc/Makefile | 4 +--- + 5 files changed, 5 insertions(+), 15 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/calcs/Makefile b/drivers/gpu/drm/amd/display/dc/calcs/Makefile +index 393215ef9f98..e59a7f356188 100644 +--- a/drivers/gpu/drm/amd/display/dc/calcs/Makefile ++++ b/drivers/gpu/drm/amd/display/dc/calcs/Makefile +@@ -37,9 +37,7 @@ ifdef IS_OLD_GCC + # GCC < 7.1 cannot compile code using `double` and -mpreferred-stack-boundary=3 + # (8B stack alignment). + calcs_ccflags += -mpreferred-stack-boundary=4 +-endif +- +-ifdef CONFIG_CC_IS_CLANG ++else + calcs_ccflags += -msse2 + endif + +diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/Makefile b/drivers/gpu/drm/amd/display/dc/dcn20/Makefile +index d684cb912d92..be3a614963c6 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn20/Makefile ++++ b/drivers/gpu/drm/amd/display/dc/dcn20/Makefile +@@ -23,9 +23,7 @@ ifdef IS_OLD_GCC + # GCC < 7.1 cannot compile code using `double` and -mpreferred-stack-boundary=3 + # (8B stack alignment). + CFLAGS_dcn20_resource.o += -mpreferred-stack-boundary=4 +-endif +- +-ifdef CONFIG_CC_IS_CLANG ++else + CFLAGS_dcn20_resource.o += -msse2 + endif + +diff --git a/drivers/gpu/drm/amd/display/dc/dcn21/Makefile b/drivers/gpu/drm/amd/display/dc/dcn21/Makefile +index 72609a40c6a3..feb7e705e792 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn21/Makefile ++++ b/drivers/gpu/drm/amd/display/dc/dcn21/Makefile +@@ -16,9 +16,7 @@ ifdef IS_OLD_GCC + # GCC < 7.1 cannot compile code using `double` and -mpreferred-stack-boundary=3 + # (8B stack alignment). + CFLAGS_dcn21_resource.o += -mpreferred-stack-boundary=4 +-endif +- +-ifdef CONFIG_CC_IS_CLANG ++else + CFLAGS_dcn21_resource.o += -msse2 + endif + +diff --git a/drivers/gpu/drm/amd/display/dc/dml/Makefile b/drivers/gpu/drm/amd/display/dc/dml/Makefile +index f85f2bb1b0c7..9cc2fe56ed64 100644 +--- a/drivers/gpu/drm/amd/display/dc/dml/Makefile ++++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile +@@ -37,9 +37,7 @@ ifdef IS_OLD_GCC + # GCC < 7.1 cannot compile code using `double` and -mpreferred-stack-boundary=3 + # (8B stack alignment). + dml_ccflags += -mpreferred-stack-boundary=4 +-endif +- +-ifdef CONFIG_CC_IS_CLANG ++else + dml_ccflags += -msse2 + endif + +diff --git a/drivers/gpu/drm/amd/display/dc/dsc/Makefile b/drivers/gpu/drm/amd/display/dc/dsc/Makefile +index ec2ebee0078f..2fff8c1f1a78 100644 +--- a/drivers/gpu/drm/amd/display/dc/dsc/Makefile ++++ b/drivers/gpu/drm/amd/display/dc/dsc/Makefile +@@ -14,9 +14,7 @@ ifdef IS_OLD_GCC + # GCC < 7.1 cannot compile code using `double` and -mpreferred-stack-boundary=3 + # (8B stack alignment). + dsc_ccflags += -mpreferred-stack-boundary=4 +-endif +- +-ifdef CONFIG_CC_IS_CLANG ++else + dsc_ccflags += -msse2 + endif + +-- +2.17.1 + |