* [PATCH] arm64/alternatives: move length validation inside the subsection @ 2020-07-29 21:51 ` Sami Tolvanen 0 siblings, 0 replies; 22+ messages in thread From: Sami Tolvanen @ 2020-07-29 21:51 UTC (permalink / raw) To: Catalin Marinas, Will Deacon, Ard Biesheuvel Cc: Nick Desaulniers, Kees Cook, linux-arm-kernel, linux-kernel, clang-built-linux, Sami Tolvanen, stable Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement sequences") breaks LLVM's integrated assembler, because due to its one-pass design, it cannot compute instruction sequence lengths before the layout for the subsection has been finalized. This change fixes the build by moving the .org directives inside the subsection, so they are processed after the subsection layout is known. Link: https://github.com/ClangBuiltLinux/linux/issues/1078 Cc: <stable@vger.kernel.org> # 4.14+ Signed-off-by: Sami Tolvanen <samitolvanen@google.com> --- arch/arm64/include/asm/alternative.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/include/asm/alternative.h b/arch/arm64/include/asm/alternative.h index 12f0eb56a1cc..619db9b4c9d5 100644 --- a/arch/arm64/include/asm/alternative.h +++ b/arch/arm64/include/asm/alternative.h @@ -77,9 +77,9 @@ static inline void apply_alternatives_module(void *start, size_t length) { } "663:\n\t" \ newinstr "\n" \ "664:\n\t" \ - ".previous\n\t" \ ".org . - (664b-663b) + (662b-661b)\n\t" \ - ".org . - (662b-661b) + (664b-663b)\n" \ + ".org . - (662b-661b) + (664b-663b)\n\t" \ + ".previous\n" \ ".endif\n" #define __ALTERNATIVE_CFG_CB(oldinstr, feature, cfg_enabled, cb) \ base-commit: 6ba1b005ffc388c2aeaddae20da29e4810dea298 -- 2.28.0.163.g6104cc2f0b6-goog ^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH] arm64/alternatives: move length validation inside the subsection @ 2020-07-29 21:51 ` Sami Tolvanen 0 siblings, 0 replies; 22+ messages in thread From: Sami Tolvanen @ 2020-07-29 21:51 UTC (permalink / raw) To: Catalin Marinas, Will Deacon, Ard Biesheuvel Cc: Kees Cook, Nick Desaulniers, linux-kernel, stable, clang-built-linux, Sami Tolvanen, linux-arm-kernel Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement sequences") breaks LLVM's integrated assembler, because due to its one-pass design, it cannot compute instruction sequence lengths before the layout for the subsection has been finalized. This change fixes the build by moving the .org directives inside the subsection, so they are processed after the subsection layout is known. Link: https://github.com/ClangBuiltLinux/linux/issues/1078 Cc: <stable@vger.kernel.org> # 4.14+ Signed-off-by: Sami Tolvanen <samitolvanen@google.com> --- arch/arm64/include/asm/alternative.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/include/asm/alternative.h b/arch/arm64/include/asm/alternative.h index 12f0eb56a1cc..619db9b4c9d5 100644 --- a/arch/arm64/include/asm/alternative.h +++ b/arch/arm64/include/asm/alternative.h @@ -77,9 +77,9 @@ static inline void apply_alternatives_module(void *start, size_t length) { } "663:\n\t" \ newinstr "\n" \ "664:\n\t" \ - ".previous\n\t" \ ".org . - (664b-663b) + (662b-661b)\n\t" \ - ".org . - (662b-661b) + (664b-663b)\n" \ + ".org . - (662b-661b) + (664b-663b)\n\t" \ + ".previous\n" \ ".endif\n" #define __ALTERNATIVE_CFG_CB(oldinstr, feature, cfg_enabled, cb) \ base-commit: 6ba1b005ffc388c2aeaddae20da29e4810dea298 -- 2.28.0.163.g6104cc2f0b6-goog _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH] arm64/alternatives: move length validation inside the subsection 2020-07-29 21:51 ` Sami Tolvanen @ 2020-07-30 12:22 ` Catalin Marinas -1 siblings, 0 replies; 22+ messages in thread From: Catalin Marinas @ 2020-07-30 12:22 UTC (permalink / raw) To: Sami Tolvanen Cc: Will Deacon, Ard Biesheuvel, Nick Desaulniers, Kees Cook, linux-arm-kernel, linux-kernel, clang-built-linux, stable On Wed, Jul 29, 2020 at 02:51:52PM -0700, Sami Tolvanen wrote: > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > sequences") breaks LLVM's integrated assembler, because due to its > one-pass design, it cannot compute instruction sequence lengths before the > layout for the subsection has been finalized. This change fixes the build > by moving the .org directives inside the subsection, so they are processed > after the subsection layout is known. > > Link: https://github.com/ClangBuiltLinux/linux/issues/1078 > Cc: <stable@vger.kernel.org> # 4.14+ Commit f7b93d42945c went in 5.8-rc4. Why is this cc stable from 4.14? If Will picks it up for 5.8, it doesn't even need a cc stable. Please add a Fixes: tag as well. -- Catalin ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] arm64/alternatives: move length validation inside the subsection @ 2020-07-30 12:22 ` Catalin Marinas 0 siblings, 0 replies; 22+ messages in thread From: Catalin Marinas @ 2020-07-30 12:22 UTC (permalink / raw) To: Sami Tolvanen Cc: Kees Cook, Nick Desaulniers, linux-kernel, stable, clang-built-linux, Will Deacon, Ard Biesheuvel, linux-arm-kernel On Wed, Jul 29, 2020 at 02:51:52PM -0700, Sami Tolvanen wrote: > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > sequences") breaks LLVM's integrated assembler, because due to its > one-pass design, it cannot compute instruction sequence lengths before the > layout for the subsection has been finalized. This change fixes the build > by moving the .org directives inside the subsection, so they are processed > after the subsection layout is known. > > Link: https://github.com/ClangBuiltLinux/linux/issues/1078 > Cc: <stable@vger.kernel.org> # 4.14+ Commit f7b93d42945c went in 5.8-rc4. Why is this cc stable from 4.14? If Will picks it up for 5.8, it doesn't even need a cc stable. Please add a Fixes: tag as well. -- Catalin _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] arm64/alternatives: move length validation inside the subsection 2020-07-30 12:22 ` Catalin Marinas @ 2020-07-30 15:13 ` Sami Tolvanen -1 siblings, 0 replies; 22+ messages in thread From: Sami Tolvanen @ 2020-07-30 15:13 UTC (permalink / raw) To: Catalin Marinas Cc: Will Deacon, Ard Biesheuvel, Nick Desaulniers, Kees Cook, linux-arm-kernel, LKML, clang-built-linux, stable On Thu, Jul 30, 2020 at 5:22 AM Catalin Marinas <catalin.marinas@arm.com> wrote: > > On Wed, Jul 29, 2020 at 02:51:52PM -0700, Sami Tolvanen wrote: > > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > > sequences") breaks LLVM's integrated assembler, because due to its > > one-pass design, it cannot compute instruction sequence lengths before the > > layout for the subsection has been finalized. This change fixes the build > > by moving the .org directives inside the subsection, so they are processed > > after the subsection layout is known. > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/1078 > > Cc: <stable@vger.kernel.org> # 4.14+ > > Commit f7b93d42945c went in 5.8-rc4. Why is this cc stable from 4.14? If > Will picks it up for 5.8, it doesn't even need a cc stable. Greg or Sasha can probably answer why, but this patch is in 4.14.189, 4.19.134, 5.4.53, and 5.7.10, which ended up breaking some downstream Android kernel builds. > Please add a Fixes: tag as well. Sure, I'll send v2 shortly with the tag. Thanks. Sami ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] arm64/alternatives: move length validation inside the subsection @ 2020-07-30 15:13 ` Sami Tolvanen 0 siblings, 0 replies; 22+ messages in thread From: Sami Tolvanen @ 2020-07-30 15:13 UTC (permalink / raw) To: Catalin Marinas Cc: Kees Cook, Nick Desaulniers, LKML, stable, clang-built-linux, Will Deacon, Ard Biesheuvel, linux-arm-kernel On Thu, Jul 30, 2020 at 5:22 AM Catalin Marinas <catalin.marinas@arm.com> wrote: > > On Wed, Jul 29, 2020 at 02:51:52PM -0700, Sami Tolvanen wrote: > > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > > sequences") breaks LLVM's integrated assembler, because due to its > > one-pass design, it cannot compute instruction sequence lengths before the > > layout for the subsection has been finalized. This change fixes the build > > by moving the .org directives inside the subsection, so they are processed > > after the subsection layout is known. > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/1078 > > Cc: <stable@vger.kernel.org> # 4.14+ > > Commit f7b93d42945c went in 5.8-rc4. Why is this cc stable from 4.14? If > Will picks it up for 5.8, it doesn't even need a cc stable. Greg or Sasha can probably answer why, but this patch is in 4.14.189, 4.19.134, 5.4.53, and 5.7.10, which ended up breaking some downstream Android kernel builds. > Please add a Fixes: tag as well. Sure, I'll send v2 shortly with the tag. Thanks. Sami _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] arm64/alternatives: move length validation inside the subsection 2020-07-30 15:13 ` Sami Tolvanen @ 2020-07-30 15:23 ` Catalin Marinas -1 siblings, 0 replies; 22+ messages in thread From: Catalin Marinas @ 2020-07-30 15:23 UTC (permalink / raw) To: Sami Tolvanen Cc: Will Deacon, Ard Biesheuvel, Nick Desaulniers, Kees Cook, linux-arm-kernel, LKML, clang-built-linux, stable On Thu, Jul 30, 2020 at 08:13:05AM -0700, Sami Tolvanen wrote: > On Thu, Jul 30, 2020 at 5:22 AM Catalin Marinas <catalin.marinas@arm.com> wrote: > > > > On Wed, Jul 29, 2020 at 02:51:52PM -0700, Sami Tolvanen wrote: > > > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > > > sequences") breaks LLVM's integrated assembler, because due to its > > > one-pass design, it cannot compute instruction sequence lengths before the > > > layout for the subsection has been finalized. This change fixes the build > > > by moving the .org directives inside the subsection, so they are processed > > > after the subsection layout is known. > > > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/1078 > > > Cc: <stable@vger.kernel.org> # 4.14+ > > > > Commit f7b93d42945c went in 5.8-rc4. Why is this cc stable from 4.14? If > > Will picks it up for 5.8, it doesn't even need a cc stable. > > Greg or Sasha can probably answer why, but this patch is in 4.14.189, > 4.19.134, 5.4.53, and 5.7.10, which ended up breaking some downstream > Android kernel builds. I see but I don't think we need the explicit cc stable for 4.14. That's why the Fixes tag is important. If a patch was back-ported, the subsequent fixes should be picked by the stable maintainers as well. -- Catalin ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] arm64/alternatives: move length validation inside the subsection @ 2020-07-30 15:23 ` Catalin Marinas 0 siblings, 0 replies; 22+ messages in thread From: Catalin Marinas @ 2020-07-30 15:23 UTC (permalink / raw) To: Sami Tolvanen Cc: Kees Cook, Nick Desaulniers, LKML, stable, clang-built-linux, Will Deacon, Ard Biesheuvel, linux-arm-kernel On Thu, Jul 30, 2020 at 08:13:05AM -0700, Sami Tolvanen wrote: > On Thu, Jul 30, 2020 at 5:22 AM Catalin Marinas <catalin.marinas@arm.com> wrote: > > > > On Wed, Jul 29, 2020 at 02:51:52PM -0700, Sami Tolvanen wrote: > > > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > > > sequences") breaks LLVM's integrated assembler, because due to its > > > one-pass design, it cannot compute instruction sequence lengths before the > > > layout for the subsection has been finalized. This change fixes the build > > > by moving the .org directives inside the subsection, so they are processed > > > after the subsection layout is known. > > > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/1078 > > > Cc: <stable@vger.kernel.org> # 4.14+ > > > > Commit f7b93d42945c went in 5.8-rc4. Why is this cc stable from 4.14? If > > Will picks it up for 5.8, it doesn't even need a cc stable. > > Greg or Sasha can probably answer why, but this patch is in 4.14.189, > 4.19.134, 5.4.53, and 5.7.10, which ended up breaking some downstream > Android kernel builds. I see but I don't think we need the explicit cc stable for 4.14. That's why the Fixes tag is important. If a patch was back-ported, the subsequent fixes should be picked by the stable maintainers as well. -- Catalin _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] arm64/alternatives: move length validation inside the subsection 2020-07-30 15:23 ` Catalin Marinas @ 2020-07-31 6:49 ` Greg KH -1 siblings, 0 replies; 22+ messages in thread From: Greg KH @ 2020-07-31 6:49 UTC (permalink / raw) To: Catalin Marinas Cc: Sami Tolvanen, Will Deacon, Ard Biesheuvel, Nick Desaulniers, Kees Cook, linux-arm-kernel, LKML, clang-built-linux, stable On Thu, Jul 30, 2020 at 04:23:31PM +0100, Catalin Marinas wrote: > On Thu, Jul 30, 2020 at 08:13:05AM -0700, Sami Tolvanen wrote: > > On Thu, Jul 30, 2020 at 5:22 AM Catalin Marinas <catalin.marinas@arm.com> wrote: > > > > > > On Wed, Jul 29, 2020 at 02:51:52PM -0700, Sami Tolvanen wrote: > > > > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > > > > sequences") breaks LLVM's integrated assembler, because due to its > > > > one-pass design, it cannot compute instruction sequence lengths before the > > > > layout for the subsection has been finalized. This change fixes the build > > > > by moving the .org directives inside the subsection, so they are processed > > > > after the subsection layout is known. > > > > > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/1078 > > > > Cc: <stable@vger.kernel.org> # 4.14+ > > > > > > Commit f7b93d42945c went in 5.8-rc4. Why is this cc stable from 4.14? If > > > Will picks it up for 5.8, it doesn't even need a cc stable. > > > > Greg or Sasha can probably answer why, but this patch is in 4.14.189, > > 4.19.134, 5.4.53, and 5.7.10, which ended up breaking some downstream > > Android kernel builds. > > I see but I don't think we need the explicit cc stable for 4.14. That's > why the Fixes tag is important. If a patch was back-ported, the > subsequent fixes should be picked by the stable maintainers as well. If you know it ahead of time, the explict "# kernel.version" hint is always nice to have as it ensures I will try to backport it that far, and if I have problems, I will ask for help. thanks, greg k-h ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] arm64/alternatives: move length validation inside the subsection @ 2020-07-31 6:49 ` Greg KH 0 siblings, 0 replies; 22+ messages in thread From: Greg KH @ 2020-07-31 6:49 UTC (permalink / raw) To: Catalin Marinas Cc: Kees Cook, Nick Desaulniers, LKML, stable, clang-built-linux, Sami Tolvanen, Will Deacon, Ard Biesheuvel, linux-arm-kernel On Thu, Jul 30, 2020 at 04:23:31PM +0100, Catalin Marinas wrote: > On Thu, Jul 30, 2020 at 08:13:05AM -0700, Sami Tolvanen wrote: > > On Thu, Jul 30, 2020 at 5:22 AM Catalin Marinas <catalin.marinas@arm.com> wrote: > > > > > > On Wed, Jul 29, 2020 at 02:51:52PM -0700, Sami Tolvanen wrote: > > > > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > > > > sequences") breaks LLVM's integrated assembler, because due to its > > > > one-pass design, it cannot compute instruction sequence lengths before the > > > > layout for the subsection has been finalized. This change fixes the build > > > > by moving the .org directives inside the subsection, so they are processed > > > > after the subsection layout is known. > > > > > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/1078 > > > > Cc: <stable@vger.kernel.org> # 4.14+ > > > > > > Commit f7b93d42945c went in 5.8-rc4. Why is this cc stable from 4.14? If > > > Will picks it up for 5.8, it doesn't even need a cc stable. > > > > Greg or Sasha can probably answer why, but this patch is in 4.14.189, > > 4.19.134, 5.4.53, and 5.7.10, which ended up breaking some downstream > > Android kernel builds. > > I see but I don't think we need the explicit cc stable for 4.14. That's > why the Fixes tag is important. If a patch was back-ported, the > subsequent fixes should be picked by the stable maintainers as well. If you know it ahead of time, the explict "# kernel.version" hint is always nice to have as it ensures I will try to backport it that far, and if I have problems, I will ask for help. thanks, greg k-h _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] arm64/alternatives: move length validation inside the subsection 2020-07-31 6:49 ` Greg KH @ 2020-07-31 9:31 ` Catalin Marinas -1 siblings, 0 replies; 22+ messages in thread From: Catalin Marinas @ 2020-07-31 9:31 UTC (permalink / raw) To: Greg KH Cc: Sami Tolvanen, Will Deacon, Ard Biesheuvel, Nick Desaulniers, Kees Cook, linux-arm-kernel, LKML, clang-built-linux, stable On Fri, Jul 31, 2020 at 08:49:15AM +0200, Greg Kroah-Hartman wrote: > On Thu, Jul 30, 2020 at 04:23:31PM +0100, Catalin Marinas wrote: > > On Thu, Jul 30, 2020 at 08:13:05AM -0700, Sami Tolvanen wrote: > > > On Thu, Jul 30, 2020 at 5:22 AM Catalin Marinas <catalin.marinas@arm.com> wrote: > > > > > > > > On Wed, Jul 29, 2020 at 02:51:52PM -0700, Sami Tolvanen wrote: > > > > > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > > > > > sequences") breaks LLVM's integrated assembler, because due to its > > > > > one-pass design, it cannot compute instruction sequence lengths before the > > > > > layout for the subsection has been finalized. This change fixes the build > > > > > by moving the .org directives inside the subsection, so they are processed > > > > > after the subsection layout is known. > > > > > > > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/1078 > > > > > Cc: <stable@vger.kernel.org> # 4.14+ > > > > > > > > Commit f7b93d42945c went in 5.8-rc4. Why is this cc stable from 4.14? If > > > > Will picks it up for 5.8, it doesn't even need a cc stable. > > > > > > Greg or Sasha can probably answer why, but this patch is in 4.14.189, > > > 4.19.134, 5.4.53, and 5.7.10, which ended up breaking some downstream > > > Android kernel builds. > > > > I see but I don't think we need the explicit cc stable for 4.14. That's > > why the Fixes tag is important. If a patch was back-ported, the > > subsequent fixes should be picked by the stable maintainers as well. > > If you know it ahead of time, the explict "# kernel.version" hint is > always nice to have as it ensures I will try to backport it that far, > and if I have problems, I will ask for help. Good to know. Thanks for the clarification. -- Catalin ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] arm64/alternatives: move length validation inside the subsection @ 2020-07-31 9:31 ` Catalin Marinas 0 siblings, 0 replies; 22+ messages in thread From: Catalin Marinas @ 2020-07-31 9:31 UTC (permalink / raw) To: Greg KH Cc: Kees Cook, Nick Desaulniers, LKML, stable, clang-built-linux, Sami Tolvanen, Will Deacon, Ard Biesheuvel, linux-arm-kernel On Fri, Jul 31, 2020 at 08:49:15AM +0200, Greg Kroah-Hartman wrote: > On Thu, Jul 30, 2020 at 04:23:31PM +0100, Catalin Marinas wrote: > > On Thu, Jul 30, 2020 at 08:13:05AM -0700, Sami Tolvanen wrote: > > > On Thu, Jul 30, 2020 at 5:22 AM Catalin Marinas <catalin.marinas@arm.com> wrote: > > > > > > > > On Wed, Jul 29, 2020 at 02:51:52PM -0700, Sami Tolvanen wrote: > > > > > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > > > > > sequences") breaks LLVM's integrated assembler, because due to its > > > > > one-pass design, it cannot compute instruction sequence lengths before the > > > > > layout for the subsection has been finalized. This change fixes the build > > > > > by moving the .org directives inside the subsection, so they are processed > > > > > after the subsection layout is known. > > > > > > > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/1078 > > > > > Cc: <stable@vger.kernel.org> # 4.14+ > > > > > > > > Commit f7b93d42945c went in 5.8-rc4. Why is this cc stable from 4.14? If > > > > Will picks it up for 5.8, it doesn't even need a cc stable. > > > > > > Greg or Sasha can probably answer why, but this patch is in 4.14.189, > > > 4.19.134, 5.4.53, and 5.7.10, which ended up breaking some downstream > > > Android kernel builds. > > > > I see but I don't think we need the explicit cc stable for 4.14. That's > > why the Fixes tag is important. If a patch was back-ported, the > > subsequent fixes should be picked by the stable maintainers as well. > > If you know it ahead of time, the explict "# kernel.version" hint is > always nice to have as it ensures I will try to backport it that far, > and if I have problems, I will ask for help. Good to know. Thanks for the clarification. -- Catalin _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v2] arm64/alternatives: move length validation inside the subsection 2020-07-29 21:51 ` Sami Tolvanen @ 2020-07-30 15:37 ` Sami Tolvanen -1 siblings, 0 replies; 22+ messages in thread From: Sami Tolvanen @ 2020-07-30 15:37 UTC (permalink / raw) To: Catalin Marinas, Will Deacon, Ard Biesheuvel Cc: Nick Desaulniers, Kees Cook, linux-arm-kernel, linux-kernel, clang-built-linux, Sami Tolvanen Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement sequences") breaks LLVM's integrated assembler, because due to its one-pass design, it cannot compute instruction sequence lengths before the layout for the subsection has been finalized. This change fixes the build by moving the .org directives inside the subsection, so they are processed after the subsection layout is known. Link: https://github.com/ClangBuiltLinux/linux/issues/1078 Fixes: f7b93d42945c ("arm64/alternatives: use subsections for replacement sequences") Signed-off-by: Sami Tolvanen <samitolvanen@google.com> --- v1 -> v2: - Added the missing Fixes tag and dropped CC: stable@. --- arch/arm64/include/asm/alternative.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/include/asm/alternative.h b/arch/arm64/include/asm/alternative.h index 12f0eb56a1cc..619db9b4c9d5 100644 --- a/arch/arm64/include/asm/alternative.h +++ b/arch/arm64/include/asm/alternative.h @@ -77,9 +77,9 @@ static inline void apply_alternatives_module(void *start, size_t length) { } "663:\n\t" \ newinstr "\n" \ "664:\n\t" \ - ".previous\n\t" \ ".org . - (664b-663b) + (662b-661b)\n\t" \ - ".org . - (662b-661b) + (664b-663b)\n" \ + ".org . - (662b-661b) + (664b-663b)\n\t" \ + ".previous\n" \ ".endif\n" #define __ALTERNATIVE_CFG_CB(oldinstr, feature, cfg_enabled, cb) \ base-commit: 83bdc7275e6206f560d247be856bceba3e1ed8f2 -- 2.28.0.163.g6104cc2f0b6-goog ^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2] arm64/alternatives: move length validation inside the subsection @ 2020-07-30 15:37 ` Sami Tolvanen 0 siblings, 0 replies; 22+ messages in thread From: Sami Tolvanen @ 2020-07-30 15:37 UTC (permalink / raw) To: Catalin Marinas, Will Deacon, Ard Biesheuvel Cc: Kees Cook, Nick Desaulniers, linux-kernel, clang-built-linux, Sami Tolvanen, linux-arm-kernel Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement sequences") breaks LLVM's integrated assembler, because due to its one-pass design, it cannot compute instruction sequence lengths before the layout for the subsection has been finalized. This change fixes the build by moving the .org directives inside the subsection, so they are processed after the subsection layout is known. Link: https://github.com/ClangBuiltLinux/linux/issues/1078 Fixes: f7b93d42945c ("arm64/alternatives: use subsections for replacement sequences") Signed-off-by: Sami Tolvanen <samitolvanen@google.com> --- v1 -> v2: - Added the missing Fixes tag and dropped CC: stable@. --- arch/arm64/include/asm/alternative.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/include/asm/alternative.h b/arch/arm64/include/asm/alternative.h index 12f0eb56a1cc..619db9b4c9d5 100644 --- a/arch/arm64/include/asm/alternative.h +++ b/arch/arm64/include/asm/alternative.h @@ -77,9 +77,9 @@ static inline void apply_alternatives_module(void *start, size_t length) { } "663:\n\t" \ newinstr "\n" \ "664:\n\t" \ - ".previous\n\t" \ ".org . - (664b-663b) + (662b-661b)\n\t" \ - ".org . - (662b-661b) + (664b-663b)\n" \ + ".org . - (662b-661b) + (664b-663b)\n\t" \ + ".previous\n" \ ".endif\n" #define __ALTERNATIVE_CFG_CB(oldinstr, feature, cfg_enabled, cb) \ base-commit: 83bdc7275e6206f560d247be856bceba3e1ed8f2 -- 2.28.0.163.g6104cc2f0b6-goog _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH v2] arm64/alternatives: move length validation inside the subsection 2020-07-30 15:37 ` Sami Tolvanen @ 2020-07-30 16:52 ` Will Deacon -1 siblings, 0 replies; 22+ messages in thread From: Will Deacon @ 2020-07-30 16:52 UTC (permalink / raw) To: Ard Biesheuvel, Catalin Marinas, Sami Tolvanen Cc: kernel-team, Will Deacon, linux-arm-kernel, Nick Desaulniers, clang-built-linux, Kees Cook, linux-kernel On Thu, 30 Jul 2020 08:37:01 -0700, Sami Tolvanen wrote: > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > sequences") breaks LLVM's integrated assembler, because due to its > one-pass design, it cannot compute instruction sequence lengths before the > layout for the subsection has been finalized. This change fixes the build > by moving the .org directives inside the subsection, so they are processed > after the subsection layout is known. Applied to arm64 (for-next/fixes), thanks! [1/1] arm64/alternatives: move length validation inside the subsection https://git.kernel.org/arm64/c/966a0acce2fc Cheers, -- Will https://fixes.arm64.dev https://next.arm64.dev https://will.arm64.dev ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] arm64/alternatives: move length validation inside the subsection @ 2020-07-30 16:52 ` Will Deacon 0 siblings, 0 replies; 22+ messages in thread From: Will Deacon @ 2020-07-30 16:52 UTC (permalink / raw) To: Ard Biesheuvel, Catalin Marinas, Sami Tolvanen Cc: Kees Cook, kernel-team, Nick Desaulniers, linux-kernel, clang-built-linux, Will Deacon, linux-arm-kernel On Thu, 30 Jul 2020 08:37:01 -0700, Sami Tolvanen wrote: > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > sequences") breaks LLVM's integrated assembler, because due to its > one-pass design, it cannot compute instruction sequence lengths before the > layout for the subsection has been finalized. This change fixes the build > by moving the .org directives inside the subsection, so they are processed > after the subsection layout is known. Applied to arm64 (for-next/fixes), thanks! [1/1] arm64/alternatives: move length validation inside the subsection https://git.kernel.org/arm64/c/966a0acce2fc Cheers, -- Will https://fixes.arm64.dev https://next.arm64.dev https://will.arm64.dev _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] arm64/alternatives: move length validation inside the subsection 2020-07-30 15:37 ` Sami Tolvanen @ 2020-07-30 16:57 ` Nathan Chancellor -1 siblings, 0 replies; 22+ messages in thread From: Nathan Chancellor @ 2020-07-30 16:57 UTC (permalink / raw) To: Sami Tolvanen Cc: Catalin Marinas, Will Deacon, Ard Biesheuvel, Nick Desaulniers, Kees Cook, linux-arm-kernel, linux-kernel, clang-built-linux On Thu, Jul 30, 2020 at 08:37:01AM -0700, 'Sami Tolvanen' via Clang Built Linux wrote: > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > sequences") breaks LLVM's integrated assembler, because due to its > one-pass design, it cannot compute instruction sequence lengths before the > layout for the subsection has been finalized. This change fixes the build > by moving the .org directives inside the subsection, so they are processed > after the subsection layout is known. > > Link: https://github.com/ClangBuiltLinux/linux/issues/1078 > Fixes: f7b93d42945c ("arm64/alternatives: use subsections for replacement sequences") > Signed-off-by: Sami Tolvanen <samitolvanen@google.com> > --- > v1 -> v2: > - Added the missing Fixes tag and dropped CC: stable@. I think that the cc to stable should have been kept even with the addition of the fixes tag. AUTOSEL will still most likely pick this up (or even Chrome OS's patch bot that they now have) but the cc to stable would have made it clear that we do need it there and the fixes tag would have guided how far back it should go (rather than an explicit version that is added). Something for the future I supppose. Cheers, Nathan ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] arm64/alternatives: move length validation inside the subsection @ 2020-07-30 16:57 ` Nathan Chancellor 0 siblings, 0 replies; 22+ messages in thread From: Nathan Chancellor @ 2020-07-30 16:57 UTC (permalink / raw) To: Sami Tolvanen Cc: Kees Cook, Catalin Marinas, Nick Desaulniers, linux-kernel, clang-built-linux, Will Deacon, Ard Biesheuvel, linux-arm-kernel On Thu, Jul 30, 2020 at 08:37:01AM -0700, 'Sami Tolvanen' via Clang Built Linux wrote: > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > sequences") breaks LLVM's integrated assembler, because due to its > one-pass design, it cannot compute instruction sequence lengths before the > layout for the subsection has been finalized. This change fixes the build > by moving the .org directives inside the subsection, so they are processed > after the subsection layout is known. > > Link: https://github.com/ClangBuiltLinux/linux/issues/1078 > Fixes: f7b93d42945c ("arm64/alternatives: use subsections for replacement sequences") > Signed-off-by: Sami Tolvanen <samitolvanen@google.com> > --- > v1 -> v2: > - Added the missing Fixes tag and dropped CC: stable@. I think that the cc to stable should have been kept even with the addition of the fixes tag. AUTOSEL will still most likely pick this up (or even Chrome OS's patch bot that they now have) but the cc to stable would have made it clear that we do need it there and the fixes tag would have guided how far back it should go (rather than an explicit version that is added). Something for the future I supppose. Cheers, Nathan _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] arm64/alternatives: move length validation inside the subsection 2020-07-30 15:37 ` Sami Tolvanen @ 2020-07-30 17:24 ` Catalin Marinas -1 siblings, 0 replies; 22+ messages in thread From: Catalin Marinas @ 2020-07-30 17:24 UTC (permalink / raw) To: Sami Tolvanen Cc: Will Deacon, Ard Biesheuvel, Nick Desaulniers, Kees Cook, linux-arm-kernel, linux-kernel, clang-built-linux On Thu, Jul 30, 2020 at 08:37:01AM -0700, Sami Tolvanen wrote: > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > sequences") breaks LLVM's integrated assembler, because due to its > one-pass design, it cannot compute instruction sequence lengths before the > layout for the subsection has been finalized. This change fixes the build > by moving the .org directives inside the subsection, so they are processed > after the subsection layout is known. > > Link: https://github.com/ClangBuiltLinux/linux/issues/1078 > Fixes: f7b93d42945c ("arm64/alternatives: use subsections for replacement sequences") > Signed-off-by: Sami Tolvanen <samitolvanen@google.com> > --- > v1 -> v2: > - Added the missing Fixes tag and dropped CC: stable@. > > --- > arch/arm64/include/asm/alternative.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/include/asm/alternative.h b/arch/arm64/include/asm/alternative.h > index 12f0eb56a1cc..619db9b4c9d5 100644 > --- a/arch/arm64/include/asm/alternative.h > +++ b/arch/arm64/include/asm/alternative.h > @@ -77,9 +77,9 @@ static inline void apply_alternatives_module(void *start, size_t length) { } > "663:\n\t" \ > newinstr "\n" \ > "664:\n\t" \ > - ".previous\n\t" \ > ".org . - (664b-663b) + (662b-661b)\n\t" \ > - ".org . - (662b-661b) + (664b-663b)\n" \ > + ".org . - (662b-661b) + (664b-663b)\n\t" \ > + ".previous\n" \ > ".endif\n" Acked-by: Catalin Marinas <catalin.marinas@arm.com> There are a few instances of the .org test outside the subsection, though using in .S files. Are those ok? -- Catalin ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] arm64/alternatives: move length validation inside the subsection @ 2020-07-30 17:24 ` Catalin Marinas 0 siblings, 0 replies; 22+ messages in thread From: Catalin Marinas @ 2020-07-30 17:24 UTC (permalink / raw) To: Sami Tolvanen Cc: Kees Cook, Nick Desaulniers, linux-kernel, clang-built-linux, Will Deacon, Ard Biesheuvel, linux-arm-kernel On Thu, Jul 30, 2020 at 08:37:01AM -0700, Sami Tolvanen wrote: > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > sequences") breaks LLVM's integrated assembler, because due to its > one-pass design, it cannot compute instruction sequence lengths before the > layout for the subsection has been finalized. This change fixes the build > by moving the .org directives inside the subsection, so they are processed > after the subsection layout is known. > > Link: https://github.com/ClangBuiltLinux/linux/issues/1078 > Fixes: f7b93d42945c ("arm64/alternatives: use subsections for replacement sequences") > Signed-off-by: Sami Tolvanen <samitolvanen@google.com> > --- > v1 -> v2: > - Added the missing Fixes tag and dropped CC: stable@. > > --- > arch/arm64/include/asm/alternative.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/include/asm/alternative.h b/arch/arm64/include/asm/alternative.h > index 12f0eb56a1cc..619db9b4c9d5 100644 > --- a/arch/arm64/include/asm/alternative.h > +++ b/arch/arm64/include/asm/alternative.h > @@ -77,9 +77,9 @@ static inline void apply_alternatives_module(void *start, size_t length) { } > "663:\n\t" \ > newinstr "\n" \ > "664:\n\t" \ > - ".previous\n\t" \ > ".org . - (664b-663b) + (662b-661b)\n\t" \ > - ".org . - (662b-661b) + (664b-663b)\n" \ > + ".org . - (662b-661b) + (664b-663b)\n\t" \ > + ".previous\n" \ > ".endif\n" Acked-by: Catalin Marinas <catalin.marinas@arm.com> There are a few instances of the .org test outside the subsection, though using in .S files. Are those ok? -- Catalin _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] arm64/alternatives: move length validation inside the subsection 2020-07-30 17:24 ` Catalin Marinas @ 2020-07-30 17:34 ` Sami Tolvanen -1 siblings, 0 replies; 22+ messages in thread From: Sami Tolvanen @ 2020-07-30 17:34 UTC (permalink / raw) To: Catalin Marinas Cc: Will Deacon, Ard Biesheuvel, Nick Desaulniers, Kees Cook, linux-arm-kernel, LKML, clang-built-linux On Thu, Jul 30, 2020 at 10:24 AM Catalin Marinas <catalin.marinas@arm.com> wrote: > > On Thu, Jul 30, 2020 at 08:37:01AM -0700, Sami Tolvanen wrote: > > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > > sequences") breaks LLVM's integrated assembler, because due to its > > one-pass design, it cannot compute instruction sequence lengths before the > > layout for the subsection has been finalized. This change fixes the build > > by moving the .org directives inside the subsection, so they are processed > > after the subsection layout is known. > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/1078 > > Fixes: f7b93d42945c ("arm64/alternatives: use subsections for replacement sequences") > > Signed-off-by: Sami Tolvanen <samitolvanen@google.com> > > --- > > v1 -> v2: > > - Added the missing Fixes tag and dropped CC: stable@. > > > > --- > > arch/arm64/include/asm/alternative.h | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/arch/arm64/include/asm/alternative.h b/arch/arm64/include/asm/alternative.h > > index 12f0eb56a1cc..619db9b4c9d5 100644 > > --- a/arch/arm64/include/asm/alternative.h > > +++ b/arch/arm64/include/asm/alternative.h > > @@ -77,9 +77,9 @@ static inline void apply_alternatives_module(void *start, size_t length) { } > > "663:\n\t" \ > > newinstr "\n" \ > > "664:\n\t" \ > > - ".previous\n\t" \ > > ".org . - (664b-663b) + (662b-661b)\n\t" \ > > - ".org . - (662b-661b) + (664b-663b)\n" \ > > + ".org . - (662b-661b) + (664b-663b)\n\t" \ > > + ".previous\n" \ > > ".endif\n" > > Acked-by: Catalin Marinas <catalin.marinas@arm.com> > > There are a few instances of the .org test outside the subsection, > though using in .S files. Are those ok? Yes, this only appears to be a problem when used in inline assembly. Sami ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] arm64/alternatives: move length validation inside the subsection @ 2020-07-30 17:34 ` Sami Tolvanen 0 siblings, 0 replies; 22+ messages in thread From: Sami Tolvanen @ 2020-07-30 17:34 UTC (permalink / raw) To: Catalin Marinas Cc: Kees Cook, Nick Desaulniers, LKML, clang-built-linux, Will Deacon, Ard Biesheuvel, linux-arm-kernel On Thu, Jul 30, 2020 at 10:24 AM Catalin Marinas <catalin.marinas@arm.com> wrote: > > On Thu, Jul 30, 2020 at 08:37:01AM -0700, Sami Tolvanen wrote: > > Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement > > sequences") breaks LLVM's integrated assembler, because due to its > > one-pass design, it cannot compute instruction sequence lengths before the > > layout for the subsection has been finalized. This change fixes the build > > by moving the .org directives inside the subsection, so they are processed > > after the subsection layout is known. > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/1078 > > Fixes: f7b93d42945c ("arm64/alternatives: use subsections for replacement sequences") > > Signed-off-by: Sami Tolvanen <samitolvanen@google.com> > > --- > > v1 -> v2: > > - Added the missing Fixes tag and dropped CC: stable@. > > > > --- > > arch/arm64/include/asm/alternative.h | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/arch/arm64/include/asm/alternative.h b/arch/arm64/include/asm/alternative.h > > index 12f0eb56a1cc..619db9b4c9d5 100644 > > --- a/arch/arm64/include/asm/alternative.h > > +++ b/arch/arm64/include/asm/alternative.h > > @@ -77,9 +77,9 @@ static inline void apply_alternatives_module(void *start, size_t length) { } > > "663:\n\t" \ > > newinstr "\n" \ > > "664:\n\t" \ > > - ".previous\n\t" \ > > ".org . - (664b-663b) + (662b-661b)\n\t" \ > > - ".org . - (662b-661b) + (664b-663b)\n" \ > > + ".org . - (662b-661b) + (664b-663b)\n\t" \ > > + ".previous\n" \ > > ".endif\n" > > Acked-by: Catalin Marinas <catalin.marinas@arm.com> > > There are a few instances of the .org test outside the subsection, > though using in .S files. Are those ok? Yes, this only appears to be a problem when used in inline assembly. Sami _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2020-07-31 9:33 UTC | newest] Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-07-29 21:51 [PATCH] arm64/alternatives: move length validation inside the subsection Sami Tolvanen 2020-07-29 21:51 ` Sami Tolvanen 2020-07-30 12:22 ` Catalin Marinas 2020-07-30 12:22 ` Catalin Marinas 2020-07-30 15:13 ` Sami Tolvanen 2020-07-30 15:13 ` Sami Tolvanen 2020-07-30 15:23 ` Catalin Marinas 2020-07-30 15:23 ` Catalin Marinas 2020-07-31 6:49 ` Greg KH 2020-07-31 6:49 ` Greg KH 2020-07-31 9:31 ` Catalin Marinas 2020-07-31 9:31 ` Catalin Marinas 2020-07-30 15:37 ` [PATCH v2] " Sami Tolvanen 2020-07-30 15:37 ` Sami Tolvanen 2020-07-30 16:52 ` Will Deacon 2020-07-30 16:52 ` Will Deacon 2020-07-30 16:57 ` Nathan Chancellor 2020-07-30 16:57 ` Nathan Chancellor 2020-07-30 17:24 ` Catalin Marinas 2020-07-30 17:24 ` Catalin Marinas 2020-07-30 17:34 ` Sami Tolvanen 2020-07-30 17:34 ` Sami Tolvanen
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.