FAILED: patch "[PATCH] x86/retbleed: Fix return thunk alignment" failed to apply to 5.15-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkout FETCH_HEAD
git cherry-pick -x 9a48d604672220545d209e9996c2a1edbb5637f6
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2023051313-wrangle-brick-b43d@gregkh' --subject-prefix 'PATCH 5.15.y' HEAD^..
Possible dependencies:
9a48d6046722 ("x86/retbleed: Fix return thunk alignment")a149180fbcf3 ("x86: Add magic AMD return-thunk")d9e9d2300681 ("x86,objtool: Create .return_sites")15e67227c49a ("x86: Undo return-thunk damage")0b53c374b9ef ("x86/retpoline: Use -mfunction-return")369ae6ffc41a ("x86/retpoline: Cleanup some #ifdefery")a883d624aed4 ("x86/cpufeatures: Move RETPOLINE flags to word 11")22922deae13f ("Merge tag 'objtool-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 9a48d604672220545d209e9996c2a1edbb5637f6 Mon Sep 17 00:00:00 2001
From: "Borislav Petkov (AMD)" <[email protected]>
Date: Fri, 12 May 2023 23:12:26 +0200
Subject: [PATCH] x86/retbleed: Fix return thunk alignment
SYM_FUNC_START_LOCAL_NOALIGN() adds an endbr leading to this layout (leaving only the last 2 bytes of the address):
3bff <zen_untrain_ret>:
3bff: f3 0f 1e fa endbr64 3c03: f6 test $0xcc,%bl
3c04 <__x86_return_thunk>:
3c04: c3 ret 3c05: cc int3 3c06: 0f ae e8 lfence
However, "the RET at __x86_return_thunk must be on a 64 byte boundary, for alignment within the BTB."
Use SYM_START instead.
arch/x86/lib/retpoline.S +2 -2
@@ -144,8 +144,8 @@ SYM_CODE_END(__x86_indirect_jump_thunk_array) */ .align 64 .skip 63, 0xcc -SYM_FUNC_START_NOALIGN(zen_untrain_ret); - +SYM_START(zen_untrain_ret, SYM_L_GLOBAL, SYM_A_NONE) + ANNOTATE_NOENDBR /* * As executed from zen_untrain_ret, this is: *
Borislav Petkov
maintainerQuoted 17 lines · On Sat, May 13, 2023 at 05:17:13PM +0900, [email protected] wrote:
The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkoutFETCH_HEAD
git cherry-pick -x9a48d604672220545d209e9996c2a1edbb5637f6
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2023051313-wrangle-brick-b43d@gregkh' --subject-prefix 'PATCH 5.15.y' HEAD^..Possible dependencies:
Quoted 8 lines
9a48d6046722("x86/retbleed: Fix return thunk alignment")a149180fbcf3("x86: Add magic AMD return-thunk")d9e9d2300681("x86,objtool: Create .return_sites")15e67227c49a("x86: Undo return-thunk damage")0b53c374b9ef("x86/retpoline: Use -mfunction-return")369ae6ffc41a("x86/retpoline: Cleanup some #ifdefery")a883d624aed4("x86/cpufeatures: Move RETPOLINE flags to word 11")22922deae13f("Merge tag 'objtool-core-2022-05-23' ofgit://git.kernel.org/pub/scm/linux/kernel/git/tip/tip")
Right, so that looks like this:
The patch which causes the misalignment is
c4691712b546 ("x86/linkage: Add ENDBR to SYM_FUNC_START*()")
which came in 5.18 (v5.17-rc8-21-gc4691712b546) and the one which adds the actual untraining sequence:
a149180fbcf3 ("x86: Add magic AMD return-thunk")
came in 5.19.
So adding a Fixes: tag pointing to a patch which goes before the actual patch didn't make any sense to me last night.
HOWEVER, Thadeu did backport it here as
a9c0926fc754 ("x86: Add magic AMD return-thunk")
but the other patch wasn't backported.
So the 5.15 build looks good:
ffffffff81c01f7f <zen_untrain_ret>:ffffffff81c01f7f: f6 .byte 0xf6
ffffffff81c01f80 <__x86_return_thunk>:
ffffffff81c01f80: c3 ret ffffffff81c01f81: cc int3 ffffffff81c01f82: 0f ae e8 lfence ffffffff81c01f85: eb f9 jmp ffffffff81c01f80 <__x86_return_thunk> ffffffff81c01f87: cc int3
So 5.15 doesn't need it.
Now lemme look at 5.10.
Thx.
Signature · 4 lines
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquetteGreg KH
maintainerQuoted 54 lines · Borislav Petkov
Quoted 17 lines · On Sat, May 13, 2023 at 05:17:13PM +0900, [email protected] wrote:
The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkoutFETCH_HEAD
git cherry-pick -x9a48d604672220545d209e9996c2a1edbb5637f6
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2023051313-wrangle-brick-b43d@gregkh' --subject-prefix 'PATCH 5.15.y' HEAD^..Possible dependencies:
Quoted 8 lines
9a48d6046722("x86/retbleed: Fix return thunk alignment")a149180fbcf3("x86: Add magic AMD return-thunk")d9e9d2300681("x86,objtool: Create .return_sites")15e67227c49a("x86: Undo return-thunk damage")0b53c374b9ef("x86/retpoline: Use -mfunction-return")369ae6ffc41a("x86/retpoline: Cleanup some #ifdefery")a883d624aed4("x86/cpufeatures: Move RETPOLINE flags to word 11")22922deae13f("Merge tag 'objtool-core-2022-05-23' ofgit://git.kernel.org/pub/scm/linux/kernel/git/tip/tip")Right, so that looks like this:
The patch which causes the misalignment is
c4691712b546("x86/linkage: Add ENDBR to SYM_FUNC_START*()")which came in 5.18 (v5.17-rc8-21-gc4691712b546) and the one which adds the actual untraining sequence:
a149180fbcf3("x86: Add magic AMD return-thunk")came in 5.19.
So adding a Fixes: tag pointing to a patch which goes before the actual patch didn't make any sense to me last night.
HOWEVER, Thadeu did backport it here as
a9c0926fc754("x86: Add magic AMD return-thunk")but the other patch wasn't backported.
So the 5.15 build looks good:
ffffffff81c01f7f<zen_untrain_ret>:ffffffff81c01f7f: f6 .byte0xf6
Quoted 8 lines
ffffffff81c01f80<__x86_return_thunk>:ffffffff81c01f80: c3 ret ffffffff81c01f81: cc int3 ffffffff81c01f82: 0f ae e8 lfence ffffffff81c01f85: eb f9 jmp ffffffff81c01f80 <__x86_return_thunk> ffffffff81c01f87: cc int3So 5.15 doesn't need it.
Great, thanks for looking into this, much appreciated.
greg k-h
Borislav Petkov
maintainerQuoted 1 line · Greg KH
Great, thanks for looking into this, much appreciated.
Sure, np.
And I just checked the 6.x streams - yes the backport is needed there so you taking them there is good. :)
Thx.
Signature · 4 lines
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette