From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Josh Poimboeuf <jpoimboe@redhat.com>,
Ben Hutchings <ben@decadent.org.uk>
Subject: [PATCH 5.10 003/130] objtool: Refactor ORC section generation
Date: Tue, 12 Jul 2022 20:37:29 +0200 [thread overview]
Message-ID: <20220712183246.538748526@linuxfoundation.org> (raw)
In-Reply-To: <20220712183246.394947160@linuxfoundation.org>
From: Josh Poimboeuf <jpoimboe@redhat.com>
commit ab4e0744e99b87e1a223e89fc3c9ae44f727c9a6 upstream.
Decouple ORC entries from instructions. This simplifies the
control/data flow, and is going to make it easier to support alternative
instructions which change the stack layout.
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
tools/objtool/Makefile | 4
tools/objtool/arch.h | 4
tools/objtool/builtin-orc.c | 6
tools/objtool/check.h | 3
tools/objtool/objtool.h | 3
tools/objtool/orc_gen.c | 274 ++++++++++++++++++++++----------------------
tools/objtool/weak.c | 7 -
7 files changed, 141 insertions(+), 160 deletions(-)
--- a/tools/objtool/Makefile
+++ b/tools/objtool/Makefile
@@ -46,10 +46,6 @@ ifeq ($(SRCARCH),x86)
SUBCMD_ORC := y
endif
-ifeq ($(SUBCMD_ORC),y)
- CFLAGS += -DINSN_USE_ORC
-endif
-
export SUBCMD_CHECK SUBCMD_ORC
export srctree OUTPUT CFLAGS SRCARCH AWK
include $(srctree)/tools/build/Makefile.include
--- a/tools/objtool/arch.h
+++ b/tools/objtool/arch.h
@@ -11,10 +11,6 @@
#include "objtool.h"
#include "cfi.h"
-#ifdef INSN_USE_ORC
-#include <asm/orc_types.h>
-#endif
-
enum insn_type {
INSN_JUMP_CONDITIONAL,
INSN_JUMP_UNCONDITIONAL,
--- a/tools/objtool/builtin-orc.c
+++ b/tools/objtool/builtin-orc.c
@@ -51,11 +51,7 @@ int cmd_orc(int argc, const char **argv)
if (list_empty(&file->insn_list))
return 0;
- ret = create_orc(file);
- if (ret)
- return ret;
-
- ret = create_orc_sections(file);
+ ret = orc_create(file);
if (ret)
return ret;
--- a/tools/objtool/check.h
+++ b/tools/objtool/check.h
@@ -43,9 +43,6 @@ struct instruction {
struct symbol *func;
struct list_head stack_ops;
struct cfi_state cfi;
-#ifdef INSN_USE_ORC
- struct orc_entry orc;
-#endif
};
static inline bool is_static_jump(struct instruction *insn)
--- a/tools/objtool/objtool.h
+++ b/tools/objtool/objtool.h
@@ -26,7 +26,6 @@ struct objtool_file *objtool_open_read(c
int check(struct objtool_file *file);
int orc_dump(const char *objname);
-int create_orc(struct objtool_file *file);
-int create_orc_sections(struct objtool_file *file);
+int orc_create(struct objtool_file *file);
#endif /* _OBJTOOL_H */
--- a/tools/objtool/orc_gen.c
+++ b/tools/objtool/orc_gen.c
@@ -12,89 +12,84 @@
#include "check.h"
#include "warn.h"
-int create_orc(struct objtool_file *file)
+static int init_orc_entry(struct orc_entry *orc, struct cfi_state *cfi)
{
- struct instruction *insn;
+ struct instruction *insn = container_of(cfi, struct instruction, cfi);
+ struct cfi_reg *bp = &cfi->regs[CFI_BP];
- for_each_insn(file, insn) {
- struct orc_entry *orc = &insn->orc;
- struct cfi_reg *cfa = &insn->cfi.cfa;
- struct cfi_reg *bp = &insn->cfi.regs[CFI_BP];
+ memset(orc, 0, sizeof(*orc));
- if (!insn->sec->text)
- continue;
-
- orc->end = insn->cfi.end;
-
- if (cfa->base == CFI_UNDEFINED) {
- orc->sp_reg = ORC_REG_UNDEFINED;
- continue;
- }
-
- switch (cfa->base) {
- case CFI_SP:
- orc->sp_reg = ORC_REG_SP;
- break;
- case CFI_SP_INDIRECT:
- orc->sp_reg = ORC_REG_SP_INDIRECT;
- break;
- case CFI_BP:
- orc->sp_reg = ORC_REG_BP;
- break;
- case CFI_BP_INDIRECT:
- orc->sp_reg = ORC_REG_BP_INDIRECT;
- break;
- case CFI_R10:
- orc->sp_reg = ORC_REG_R10;
- break;
- case CFI_R13:
- orc->sp_reg = ORC_REG_R13;
- break;
- case CFI_DI:
- orc->sp_reg = ORC_REG_DI;
- break;
- case CFI_DX:
- orc->sp_reg = ORC_REG_DX;
- break;
- default:
- WARN_FUNC("unknown CFA base reg %d",
- insn->sec, insn->offset, cfa->base);
- return -1;
- }
+ orc->end = cfi->end;
- switch(bp->base) {
- case CFI_UNDEFINED:
- orc->bp_reg = ORC_REG_UNDEFINED;
- break;
- case CFI_CFA:
- orc->bp_reg = ORC_REG_PREV_SP;
- break;
- case CFI_BP:
- orc->bp_reg = ORC_REG_BP;
- break;
- default:
- WARN_FUNC("unknown BP base reg %d",
- insn->sec, insn->offset, bp->base);
- return -1;
- }
+ if (cfi->cfa.base == CFI_UNDEFINED) {
+ orc->sp_reg = ORC_REG_UNDEFINED;
+ return 0;
+ }
+
+ switch (cfi->cfa.base) {
+ case CFI_SP:
+ orc->sp_reg = ORC_REG_SP;
+ break;
+ case CFI_SP_INDIRECT:
+ orc->sp_reg = ORC_REG_SP_INDIRECT;
+ break;
+ case CFI_BP:
+ orc->sp_reg = ORC_REG_BP;
+ break;
+ case CFI_BP_INDIRECT:
+ orc->sp_reg = ORC_REG_BP_INDIRECT;
+ break;
+ case CFI_R10:
+ orc->sp_reg = ORC_REG_R10;
+ break;
+ case CFI_R13:
+ orc->sp_reg = ORC_REG_R13;
+ break;
+ case CFI_DI:
+ orc->sp_reg = ORC_REG_DI;
+ break;
+ case CFI_DX:
+ orc->sp_reg = ORC_REG_DX;
+ break;
+ default:
+ WARN_FUNC("unknown CFA base reg %d",
+ insn->sec, insn->offset, cfi->cfa.base);
+ return -1;
+ }
- orc->sp_offset = cfa->offset;
- orc->bp_offset = bp->offset;
- orc->type = insn->cfi.type;
+ switch (bp->base) {
+ case CFI_UNDEFINED:
+ orc->bp_reg = ORC_REG_UNDEFINED;
+ break;
+ case CFI_CFA:
+ orc->bp_reg = ORC_REG_PREV_SP;
+ break;
+ case CFI_BP:
+ orc->bp_reg = ORC_REG_BP;
+ break;
+ default:
+ WARN_FUNC("unknown BP base reg %d",
+ insn->sec, insn->offset, bp->base);
+ return -1;
}
+ orc->sp_offset = cfi->cfa.offset;
+ orc->bp_offset = bp->offset;
+ orc->type = cfi->type;
+
return 0;
}
-static int create_orc_entry(struct elf *elf, struct section *u_sec, struct section *ip_relocsec,
- unsigned int idx, struct section *insn_sec,
- unsigned long insn_off, struct orc_entry *o)
+static int write_orc_entry(struct elf *elf, struct section *orc_sec,
+ struct section *ip_rsec, unsigned int idx,
+ struct section *insn_sec, unsigned long insn_off,
+ struct orc_entry *o)
{
struct orc_entry *orc;
struct reloc *reloc;
/* populate ORC data */
- orc = (struct orc_entry *)u_sec->data->d_buf + idx;
+ orc = (struct orc_entry *)orc_sec->data->d_buf + idx;
memcpy(orc, o, sizeof(*orc));
/* populate reloc for ip */
@@ -114,102 +109,109 @@ static int create_orc_entry(struct elf *
reloc->type = R_X86_64_PC32;
reloc->offset = idx * sizeof(int);
- reloc->sec = ip_relocsec;
+ reloc->sec = ip_rsec;
elf_add_reloc(elf, reloc);
return 0;
}
-int create_orc_sections(struct objtool_file *file)
+struct orc_list_entry {
+ struct list_head list;
+ struct orc_entry orc;
+ struct section *insn_sec;
+ unsigned long insn_off;
+};
+
+static int orc_list_add(struct list_head *orc_list, struct orc_entry *orc,
+ struct section *sec, unsigned long offset)
+{
+ struct orc_list_entry *entry = malloc(sizeof(*entry));
+
+ if (!entry) {
+ WARN("malloc failed");
+ return -1;
+ }
+
+ entry->orc = *orc;
+ entry->insn_sec = sec;
+ entry->insn_off = offset;
+
+ list_add_tail(&entry->list, orc_list);
+ return 0;
+}
+
+int orc_create(struct objtool_file *file)
{
- struct instruction *insn, *prev_insn;
- struct section *sec, *u_sec, *ip_relocsec;
- unsigned int idx;
+ struct section *sec, *ip_rsec, *orc_sec;
+ unsigned int nr = 0, idx = 0;
+ struct orc_list_entry *entry;
+ struct list_head orc_list;
- struct orc_entry empty = {
- .sp_reg = ORC_REG_UNDEFINED,
+ struct orc_entry null = {
+ .sp_reg = ORC_REG_UNDEFINED,
.bp_reg = ORC_REG_UNDEFINED,
.type = UNWIND_HINT_TYPE_CALL,
};
- sec = find_section_by_name(file->elf, ".orc_unwind");
- if (sec) {
- WARN("file already has .orc_unwind section, skipping");
- return -1;
- }
-
- /* count the number of needed orcs */
- idx = 0;
+ /* Build a deduplicated list of ORC entries: */
+ INIT_LIST_HEAD(&orc_list);
for_each_sec(file, sec) {
+ struct orc_entry orc, prev_orc = {0};
+ struct instruction *insn;
+ bool empty = true;
+
if (!sec->text)
continue;
- prev_insn = NULL;
sec_for_each_insn(file, sec, insn) {
- if (!prev_insn ||
- memcmp(&insn->orc, &prev_insn->orc,
- sizeof(struct orc_entry))) {
- idx++;
- }
- prev_insn = insn;
+ if (init_orc_entry(&orc, &insn->cfi))
+ return -1;
+ if (!memcmp(&prev_orc, &orc, sizeof(orc)))
+ continue;
+ if (orc_list_add(&orc_list, &orc, sec, insn->offset))
+ return -1;
+ nr++;
+ prev_orc = orc;
+ empty = false;
}
- /* section terminator */
- if (prev_insn)
- idx++;
+ /* Add a section terminator */
+ if (!empty) {
+ orc_list_add(&orc_list, &null, sec, sec->len);
+ nr++;
+ }
}
- if (!idx)
- return -1;
+ if (!nr)
+ return 0;
+ /* Create .orc_unwind, .orc_unwind_ip and .rela.orc_unwind_ip sections: */
+ sec = find_section_by_name(file->elf, ".orc_unwind");
+ if (sec) {
+ WARN("file already has .orc_unwind section, skipping");
+ return -1;
+ }
+ orc_sec = elf_create_section(file->elf, ".orc_unwind", 0,
+ sizeof(struct orc_entry), nr);
+ if (!orc_sec)
+ return -1;
- /* create .orc_unwind_ip and .rela.orc_unwind_ip sections */
- sec = elf_create_section(file->elf, ".orc_unwind_ip", 0, sizeof(int), idx);
+ sec = elf_create_section(file->elf, ".orc_unwind_ip", 0, sizeof(int), nr);
if (!sec)
return -1;
-
- ip_relocsec = elf_create_reloc_section(file->elf, sec, SHT_RELA);
- if (!ip_relocsec)
+ ip_rsec = elf_create_reloc_section(file->elf, sec, SHT_RELA);
+ if (!ip_rsec)
return -1;
- /* create .orc_unwind section */
- u_sec = elf_create_section(file->elf, ".orc_unwind", 0,
- sizeof(struct orc_entry), idx);
-
- /* populate sections */
- idx = 0;
- for_each_sec(file, sec) {
- if (!sec->text)
- continue;
-
- prev_insn = NULL;
- sec_for_each_insn(file, sec, insn) {
- if (!prev_insn || memcmp(&insn->orc, &prev_insn->orc,
- sizeof(struct orc_entry))) {
-
- if (create_orc_entry(file->elf, u_sec, ip_relocsec, idx,
- insn->sec, insn->offset,
- &insn->orc))
- return -1;
-
- idx++;
- }
- prev_insn = insn;
- }
-
- /* section terminator */
- if (prev_insn) {
- if (create_orc_entry(file->elf, u_sec, ip_relocsec, idx,
- prev_insn->sec,
- prev_insn->offset + prev_insn->len,
- &empty))
- return -1;
-
- idx++;
- }
+ /* Write ORC entries to sections: */
+ list_for_each_entry(entry, &orc_list, list) {
+ if (write_orc_entry(file->elf, orc_sec, ip_rsec, idx++,
+ entry->insn_sec, entry->insn_off,
+ &entry->orc))
+ return -1;
}
- if (elf_rebuild_reloc_section(file->elf, ip_relocsec))
+ if (elf_rebuild_reloc_section(file->elf, ip_rsec))
return -1;
return 0;
--- a/tools/objtool/weak.c
+++ b/tools/objtool/weak.c
@@ -25,12 +25,7 @@ int __weak orc_dump(const char *_objname
UNSUPPORTED("orc");
}
-int __weak create_orc(struct objtool_file *file)
-{
- UNSUPPORTED("orc");
-}
-
-int __weak create_orc_sections(struct objtool_file *file)
+int __weak orc_create(struct objtool_file *file)
{
UNSUPPORTED("orc");
}
next prev parent reply other threads:[~2022-07-12 18:40 UTC|newest]
Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-12 18:37 [PATCH 5.10 000/130] 5.10.131-rc1 review Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 001/130] KVM/VMX: Use TEST %REG,%REG instead of CMP $0,%REG in vmenter.S Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 002/130] KVM/nVMX: Use __vmx_vcpu_run in nested_vmx_check_vmentry_hw Greg Kroah-Hartman
2022-07-12 18:37 ` Greg Kroah-Hartman [this message]
2022-07-12 18:37 ` [PATCH 5.10 004/130] objtool: Add alt_group struct Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 005/130] objtool: Support stack layout changes in alternatives Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 006/130] objtool: Support retpoline jump detection for vmlinux.o Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 007/130] objtool: Assume only ELF functions do sibling calls Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 008/130] objtool: Combine UNWIND_HINT_RET_OFFSET and UNWIND_HINT_FUNC Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 009/130] x86/xen: Support objtool validation in xen-asm.S Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 010/130] x86/xen: Support objtool vmlinux.o validation in xen-head.S Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 011/130] x86/alternative: Merge include files Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 012/130] x86/alternative: Support not-feature Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 013/130] x86/alternative: Support ALTERNATIVE_TERNARY Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 014/130] x86/alternative: Use ALTERNATIVE_TERNARY() in _static_cpu_has() Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 015/130] x86/insn: Rename insn_decode() to insn_decode_from_regs() Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 016/130] x86/insn: Add a __ignore_sync_check__ marker Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 017/130] x86/insn: Add an insn_decode() API Greg Kroah-Hartman
2022-07-12 23:04 ` Florian Fainelli
2022-07-13 7:25 ` Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 018/130] x86/insn-eval: Handle return values from the decoder Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 019/130] x86/alternative: Use insn_decode() Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 020/130] x86: Add insn_decode_kernel() Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 021/130] x86/alternatives: Optimize optimize_nops() Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 022/130] x86/retpoline: Simplify retpolines Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 023/130] objtool: Correctly handle retpoline thunk calls Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 024/130] objtool: Handle per arch retpoline naming Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 025/130] objtool: Rework the elf_rebuild_reloc_section() logic Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 026/130] objtool: Add elf_create_reloc() helper Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 027/130] objtool: Create reloc sections implicitly Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 028/130] objtool: Extract elf_strtab_concat() Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 029/130] objtool: Extract elf_symbol_add() Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 030/130] objtool: Add elf_create_undef_symbol() Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 031/130] objtool: Keep track of retpoline call sites Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 032/130] objtool: Cache instruction relocs Greg Kroah-Hartman
2022-07-12 18:37 ` [PATCH 5.10 033/130] objtool: Skip magical retpoline .altinstr_replacement Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 034/130] objtool/x86: Rewrite retpoline thunk calls Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 035/130] objtool: Support asm jump tables Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 036/130] x86/alternative: Optimize single-byte NOPs at an arbitrary position Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 037/130] objtool: Fix .symtab_shndx handling for elf_create_undef_symbol() Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 038/130] objtool: Only rewrite unconditional retpoline thunk calls Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 039/130] objtool/x86: Ignore __x86_indirect_alt_* symbols Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 040/130] objtool: Dont make .altinstructions writable Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 041/130] objtool: Teach get_alt_entry() about more relocation types Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 042/130] objtool: print out the symbol type when complaining about it Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 043/130] objtool: Remove reloc symbol type checks in get_alt_entry() Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 044/130] objtool: Make .altinstructions section entry size consistent Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 045/130] objtool: Introduce CFI hash Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 046/130] objtool: Handle __sanitize_cov*() tail calls Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 047/130] objtool: Classify symbols Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 048/130] objtool: Explicitly avoid self modifying code in .altinstr_replacement Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 049/130] objtool,x86: Replace alternatives with .retpoline_sites Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 050/130] x86/retpoline: Remove unused replacement symbols Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 051/130] x86/asm: Fix register order Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 052/130] x86/asm: Fixup odd GEN-for-each-reg.h usage Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 053/130] x86/retpoline: Move the retpoline thunk declarations to nospec-branch.h Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 054/130] x86/retpoline: Create a retpoline thunk array Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 055/130] x86/alternative: Implement .retpoline_sites support Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 056/130] x86/alternative: Handle Jcc __x86_indirect_thunk_\reg Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 057/130] x86/alternative: Try inline spectre_v2=retpoline,amd Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 058/130] x86/alternative: Add debug prints to apply_retpolines() Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 059/130] bpf,x86: Simplify computing label offsets Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 060/130] bpf,x86: Respect X86_FEATURE_RETPOLINE* Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 061/130] x86/lib/atomic64_386_32: Rename things Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 062/130] x86: Prepare asm files for straight-line-speculation Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 063/130] x86: Prepare inline-asm " Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 064/130] x86/alternative: Relax text_poke_bp() constraint Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 065/130] objtool: Add straight-line-speculation validation Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 066/130] x86: Add straight-line-speculation mitigation Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 067/130] tools arch: Update arch/x86/lib/mem{cpy,set}_64.S copies used in perf bench mem memcpy Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 068/130] kvm/emulate: Fix SETcc emulation function offsets with SLS Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 069/130] objtool: Default ignore INT3 for unreachable Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 070/130] crypto: x86/poly1305 - Fixup SLS Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 071/130] objtool: Fix SLS validation for kcov tail-call replacement Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 072/130] objtool: Fix code relocs vs weak symbols Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 073/130] objtool: Fix type of reloc::addend Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 074/130] objtool: Fix symbol creation Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 075/130] x86/entry: Remove skip_r11rcx Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 076/130] objtool: Fix objtool regression on x32 systems Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 077/130] x86/realmode: build with -D__DISABLE_EXPORTS Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 078/130] x86/kvm/vmx: Make noinstr clean Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 079/130] x86/cpufeatures: Move RETPOLINE flags to word 11 Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 080/130] x86/retpoline: Cleanup some #ifdefery Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 081/130] x86/retpoline: Swizzle retpoline thunk Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 082/130] Makefile: Set retpoline cflags based on CONFIG_CC_IS_{CLANG,GCC} Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 083/130] x86/retpoline: Use -mfunction-return Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 084/130] x86: Undo return-thunk damage Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 085/130] x86,objtool: Create .return_sites Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 086/130] objtool: skip non-text sections when adding return-thunk sites Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 087/130] x86,static_call: Use alternative RET encoding Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 088/130] x86/ftrace: " Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 089/130] x86/bpf: " Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 090/130] x86/kvm: Fix SETcc emulation for return thunks Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 091/130] x86/vsyscall_emu/64: Dont use RET in vsyscall emulation Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 092/130] x86/sev: Avoid using __x86_return_thunk Greg Kroah-Hartman
2022-07-12 18:38 ` [PATCH 5.10 093/130] x86: Use return-thunk in asm code Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 094/130] objtool: Treat .text.__x86.* as noinstr Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 095/130] x86: Add magic AMD return-thunk Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 096/130] x86/bugs: Report AMD retbleed vulnerability Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 097/130] x86/bugs: Add AMD retbleed= boot parameter Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 098/130] x86/bugs: Enable STIBP for JMP2RET Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 099/130] x86/bugs: Keep a per-CPU IA32_SPEC_CTRL value Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 100/130] x86/entry: Add kernel IBRS implementation Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 101/130] x86/bugs: Optimize SPEC_CTRL MSR writes Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 102/130] x86/speculation: Add spectre_v2=ibrs option to support Kernel IBRS Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 103/130] x86/bugs: Split spectre_v2_select_mitigation() and spectre_v2_user_select_mitigation() Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 104/130] x86/bugs: Report Intel retbleed vulnerability Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 105/130] intel_idle: Disable IBRS during long idle Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 106/130] objtool: Update Retpoline validation Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 107/130] x86/xen: Rename SYS* entry points Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 108/130] x86/bugs: Add retbleed=ibpb Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 109/130] x86/bugs: Do IBPB fallback check only once Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 110/130] objtool: Add entry UNRET validation Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 111/130] x86/cpu/amd: Add Spectral Chicken Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 112/130] x86/speculation: Fix RSB filling with CONFIG_RETPOLINE=n Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 113/130] x86/speculation: Fix firmware entry SPEC_CTRL handling Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 114/130] x86/speculation: Fix SPEC_CTRL write on SMT state change Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 115/130] x86/speculation: Use cached host SPEC_CTRL value for guest entry/exit Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 116/130] x86/speculation: Remove x86_spec_ctrl_mask Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 117/130] objtool: Re-add UNWIND_HINT_{SAVE_RESTORE} Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 118/130] KVM: VMX: Flatten __vmx_vcpu_run() Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 119/130] KVM: VMX: Convert launched argument to flags Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 120/130] KVM: VMX: Prevent guest RSB poisoning attacks with eIBRS Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 121/130] KVM: VMX: Fix IBRS handling after vmexit Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 122/130] x86/speculation: Fill RSB on vmexit for IBRS Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 123/130] x86/common: Stamp out the stepping madness Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 124/130] x86/cpu/amd: Enumerate BTC_NO Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 125/130] x86/retbleed: Add fine grained Kconfig knobs Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 126/130] x86/bugs: Add Cannon lake to RETBleed affected CPU list Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 127/130] x86/bugs: Do not enable IBPB-on-entry when IBPB is not supported Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 128/130] x86/kexec: Disable RET on kexec Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 129/130] x86/speculation: Disable RRSBA behavior Greg Kroah-Hartman
2022-07-12 18:39 ` [PATCH 5.10 130/130] x86/static_call: Serialize __static_call_fixup() properly Greg Kroah-Hartman
2022-07-12 23:15 ` [PATCH 5.10 000/130] 5.10.131-rc1 review Florian Fainelli
2022-07-13 9:35 ` Naresh Kamboju
2022-07-13 9:42 ` Greg Kroah-Hartman
2022-07-13 13:03 ` Naresh Kamboju
2022-07-13 3:24 ` Shuah Khan
2022-07-13 7:54 ` Pavel Machek
2022-07-13 10:11 ` Sudip Mukherjee (Codethink)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220712183246.538748526@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=ben@decadent.org.uk \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox