Skip to content

Commit 11e6cfb

Browse files
committed
Rebuild rocky10_0 with kernel-6.12.0-55.43.1.el10_0
Rebuild_History BUILDABLE Rebuilding Kernel from rpm changelog with Fuzz Limit: 87.50% Number of commits in upstream range v4.18~1..kernel-mainline: 567757 Number of commits in rpm: 211 Number of commits matched with upstream: 206 (97.63%) Number of commits in upstream but not in rpm: 567552 Number of commits NOT found in upstream: 5 (2.37%) Rebuilding Kernel on Branch rocky10_0_rebuild_kernel-6.12.0-55.43.1.el10_0 for kernel-6.12.0-55.43.1.el10_0 Clean Cherry Picks: 188 (91.26%) Empty Cherry Picks: 17 (8.25%) _______________________________ Full Details Located here: ciq/ciq_backports/kernel-6.12.0-55.43.1.el10_0/rebuild.details.txt Includes: * git commit header above * Empty Commits with upstream SHA * RPM ChangeLog Entries that could not be matched Individual Empty Commit failures contained in the same containing directory. The git message for empty commits will have the path for the failed commit. File names are the first 8 characters of the upstream SHA
1 parent f35c205 commit 11e6cfb

File tree

100 files changed

+1195
-203
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+1195
-203
lines changed
File renamed without changes.

Documentation/ABI/testing/sysfs-devices-system-cpu

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -511,6 +511,7 @@ Description: information about CPUs heterogeneity.
511511

512512
What: /sys/devices/system/cpu/vulnerabilities
513513
/sys/devices/system/cpu/vulnerabilities/gather_data_sampling
514+
/sys/devices/system/cpu/vulnerabilities/indirect_target_selection
514515
/sys/devices/system/cpu/vulnerabilities/itlb_multihit
515516
/sys/devices/system/cpu/vulnerabilities/l1tf
516517
/sys/devices/system/cpu/vulnerabilities/mds

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2149,6 +2149,23 @@
21492149
different crypto accelerators. This option can be used
21502150
to achieve best performance for particular HW.
21512151

2152+
indirect_target_selection= [X86,Intel] Mitigation control for Indirect
2153+
Target Selection(ITS) bug in Intel CPUs. Updated
2154+
microcode is also required for a fix in IBPB.
2155+
2156+
on: Enable mitigation (default).
2157+
off: Disable mitigation.
2158+
force: Force the ITS bug and deploy default
2159+
mitigation.
2160+
vmexit: Only deploy mitigation if CPU is affected by
2161+
guest/host isolation part of ITS.
2162+
stuff: Deploy RSB-fill mitigation when retpoline is
2163+
also deployed. Otherwise, deploy the default
2164+
mitigation.
2165+
2166+
For details see:
2167+
Documentation/admin-guide/hw-vuln/indirect-target-selection.rst
2168+
21522169
init= [KNL]
21532170
Format: <full_path>
21542171
Run specified binary instead of /sbin/init as init
@@ -3508,6 +3525,7 @@
35083525
expose users to several CPU vulnerabilities.
35093526
Equivalent to: if nokaslr then kpti=0 [ARM64]
35103527
gather_data_sampling=off [X86]
3528+
indirect_target_selection=off [X86]
35113529
kvm.nx_huge_pages=off [X86]
35123530
l1tf=off [X86]
35133531
mds=off [X86]

Makefile.rhelver

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ RHEL_MINOR = 0
1212
#
1313
# Use this spot to avoid future merge conflicts.
1414
# Do not trim this comment.
15-
RHEL_RELEASE = 55.42.1
15+
RHEL_RELEASE = 55.43.1
1616

1717
#
1818
# RHEL_REBASE_NUM

arch/x86/Kconfig

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2746,6 +2746,17 @@ config MITIGATION_SSB
27462746
of speculative execution in a similar way to the Meltdown and Spectre
27472747
security vulnerabilities.
27482748

2749+
config MITIGATION_ITS
2750+
bool "Enable Indirect Target Selection mitigation"
2751+
depends on CPU_SUP_INTEL && X86_64
2752+
depends on MITIGATION_RETPOLINE && MITIGATION_RETHUNK
2753+
default y
2754+
help
2755+
Enable Indirect Target Selection (ITS) mitigation. ITS is a bug in
2756+
BPU on some Intel CPUs that may allow Spectre V2 style attacks. If
2757+
disabled, mitigation cannot be enabled via cmdline.
2758+
See <file:Documentation/admin-guide/hw-vuln/indirect-target-selection.rst>
2759+
27492760
endif
27502761

27512762
config ARCH_HAS_ADD_PAGES

arch/x86/entry/entry.S

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616

1717
.pushsection .noinstr.text, "ax"
1818

19-
SYM_FUNC_START(entry_ibpb)
19+
/* Clobbers AX, CX, DX */
20+
SYM_FUNC_START(write_ibpb)
2021
movl $MSR_IA32_PRED_CMD, %ecx
2122
movl _ASM_RIP(x86_pred_cmd), %eax
2223
xorl %edx, %edx
@@ -25,9 +26,9 @@ SYM_FUNC_START(entry_ibpb)
2526
/* Make sure IBPB clears return stack preductions too. */
2627
FILL_RETURN_BUFFER %rax, RSB_CLEAR_LOOPS, X86_BUG_IBPB_NO_RET
2728
RET
28-
SYM_FUNC_END(entry_ibpb)
29+
SYM_FUNC_END(write_ibpb)
2930
/* For KVM */
30-
EXPORT_SYMBOL_GPL(entry_ibpb);
31+
EXPORT_SYMBOL_GPL(write_ibpb);
3132

3233
.popsection
3334

arch/x86/include/asm/alternative.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,20 @@ static __always_inline int x86_call_depth_emit_accounting(u8 **pprog,
134134
}
135135
#endif
136136

137+
#if defined(CONFIG_MITIGATION_RETHUNK) && defined(CONFIG_OBJTOOL)
138+
extern bool cpu_wants_rethunk(void);
139+
extern bool cpu_wants_rethunk_at(void *addr);
140+
#else
141+
static __always_inline bool cpu_wants_rethunk(void)
142+
{
143+
return false;
144+
}
145+
static __always_inline bool cpu_wants_rethunk_at(void *addr)
146+
{
147+
return false;
148+
}
149+
#endif
150+
137151
#ifdef CONFIG_SMP
138152
extern void alternatives_smp_module_add(struct module *mod, char *name,
139153
void *locks, void *locks_end,

arch/x86/include/asm/cpufeatures.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,6 @@
210210
#define X86_FEATURE_MBA ( 7*32+18) /* "mba" Memory Bandwidth Allocation */
211211
#define X86_FEATURE_RSB_CTXSW ( 7*32+19) /* Fill RSB on context switches */
212212
#define X86_FEATURE_PERFMON_V2 ( 7*32+20) /* "perfmon_v2" AMD Performance Monitoring Version 2 */
213-
#define X86_FEATURE_USE_IBPB ( 7*32+21) /* Indirect Branch Prediction Barrier enabled */
214213
#define X86_FEATURE_USE_IBRS_FW ( 7*32+22) /* Use IBRS during runtime firmware calls */
215214
#define X86_FEATURE_SPEC_STORE_BYPASS_DISABLE ( 7*32+23) /* Disable Speculative Store Bypass. */
216215
#define X86_FEATURE_LS_CFG_SSBD ( 7*32+24) /* AMD SSBD implementation via LS_CFG MSR */
@@ -482,6 +481,8 @@
482481
#define X86_FEATURE_CLEAR_BHB_HW (21*32+ 3) /* BHI_DIS_S HW control enabled */
483482
#define X86_FEATURE_CLEAR_BHB_LOOP_ON_VMEXIT (21*32+ 4) /* Clear branch history at vmexit using SW loop */
484483
#define X86_FEATURE_FAST_CPPC (21*32 + 5) /* AMD Fast CPPC */
484+
#define X86_FEATURE_AMD_HETEROGENEOUS_CORES (21*32 + 6) /* Heterogeneous Core Topology */
485+
#define X86_FEATURE_INDIRECT_THUNK_ITS (21*32 + 9) /* Use thunk for indirect branches in lower half of cacheline */
485486

486487
/*
487488
* BUG word(s)
@@ -535,4 +536,5 @@
535536
#define X86_BUG_IBPB_NO_RET X86_BUG(1*32 + 4) /* "ibpb_no_ret" IBPB omits return target predictions */
536537
#define X86_BUG_SPECTRE_V2_USER X86_BUG(1*32 + 5) /* "spectre_v2_user" CPU is affected by Spectre variant 2 attack between user processes */
537538
#define X86_BUG_ITS X86_BUG(1*32 + 6) /* "its" CPU is affected by Indirect Target Selection */
539+
#define X86_BUG_ITS_NATIVE_ONLY X86_BUG(1*32 + 7) /* "its_native_only" CPU is affected by ITS, VMX is not affected */
538540
#endif /* _ASM_X86_CPUFEATURES_H */

arch/x86/include/asm/nospec-branch.h

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@
283283
* typically has NO_MELTDOWN).
284284
*
285285
* While retbleed_untrain_ret() doesn't clobber anything but requires stack,
286-
* entry_ibpb() will clobber AX, CX, DX.
286+
* write_ibpb() will clobber AX, CX, DX.
287287
*
288288
* As such, this must be placed after every *SWITCH_TO_KERNEL_CR3 at a point
289289
* where we have a stack but before any RET instruction.
@@ -293,7 +293,7 @@
293293
VALIDATE_UNRET_END
294294
CALL_UNTRAIN_RET
295295
ALTERNATIVE_2 "", \
296-
"call entry_ibpb", \ibpb_feature, \
296+
"call write_ibpb", \ibpb_feature, \
297297
__stringify(\call_depth_insns), X86_FEATURE_CALL_DEPTH
298298
#endif
299299
.endm
@@ -356,10 +356,14 @@
356356
".long 999b\n\t" \
357357
".popsection\n\t"
358358

359+
#define ITS_THUNK_SIZE 64
360+
359361
typedef u8 retpoline_thunk_t[RETPOLINE_THUNK_SIZE];
362+
typedef u8 its_thunk_t[ITS_THUNK_SIZE];
360363
extern retpoline_thunk_t __x86_indirect_thunk_array[];
361364
extern retpoline_thunk_t __x86_indirect_call_thunk_array[];
362365
extern retpoline_thunk_t __x86_indirect_jump_thunk_array[];
366+
extern its_thunk_t __x86_indirect_its_thunk_array[];
363367

364368
#ifdef CONFIG_MITIGATION_RETHUNK
365369
extern void __x86_return_thunk(void);
@@ -383,12 +387,18 @@ static inline void srso_return_thunk(void) {}
383387
static inline void srso_alias_return_thunk(void) {}
384388
#endif
385389

390+
#ifdef CONFIG_MITIGATION_ITS
391+
extern void its_return_thunk(void);
392+
#else
393+
static inline void its_return_thunk(void) {}
394+
#endif
395+
386396
extern void retbleed_return_thunk(void);
387397
extern void srso_return_thunk(void);
388398
extern void srso_alias_return_thunk(void);
389399

390400
extern void entry_untrain_ret(void);
391-
extern void entry_ibpb(void);
401+
extern void write_ibpb(void);
392402

393403
#ifdef CONFIG_X86_64
394404
extern void clear_bhb_loop(void);
@@ -529,11 +539,11 @@ void alternative_msr_write(unsigned int msr, u64 val, unsigned int feature)
529539
: "memory");
530540
}
531541

532-
extern u64 x86_pred_cmd;
533-
534542
static inline void indirect_branch_prediction_barrier(void)
535543
{
536-
alternative_msr_write(MSR_IA32_PRED_CMD, x86_pred_cmd, X86_FEATURE_USE_IBPB);
544+
asm_inline volatile(ALTERNATIVE("", "call write_ibpb", X86_FEATURE_IBPB)
545+
: ASM_CALL_CONSTRAINT
546+
:: "rax", "rcx", "rdx", "memory");
537547
}
538548

539549
/* The Intel SPEC CTRL MSR base value cache */
@@ -570,6 +580,8 @@ DECLARE_STATIC_KEY_FALSE(switch_to_cond_stibp);
570580
DECLARE_STATIC_KEY_FALSE(switch_mm_cond_ibpb);
571581
DECLARE_STATIC_KEY_FALSE(switch_mm_always_ibpb);
572582

583+
DECLARE_STATIC_KEY_FALSE(switch_vcpu_ibpb);
584+
573585
DECLARE_STATIC_KEY_FALSE(mds_idle_clear);
574586

575587
DECLARE_STATIC_KEY_FALSE(switch_mm_cond_l1d_flush);

arch/x86/include/asm/processor.h

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ struct vm86;
3636
#include <linux/err.h>
3737
#include <linux/irqflags.h>
3838
#include <linux/mem_encrypt.h>
39+
#include <linux/rh_kabi.h>
3940

4041
/*
4142
* We handle most unaligned accesses in hardware. On the other hand
@@ -105,24 +106,6 @@ struct cpuinfo_topology {
105106
// Cache level topology IDs
106107
u32 llc_id;
107108
u32 l2c_id;
108-
109-
// Hardware defined CPU-type
110-
union {
111-
u32 cpu_type;
112-
struct {
113-
// CPUID.1A.EAX[23-0]
114-
u32 intel_native_model_id :24;
115-
// CPUID.1A.EAX[31-24]
116-
u32 intel_type :8;
117-
};
118-
struct {
119-
// CPUID 0x80000026.EBX
120-
u32 amd_num_processors :16,
121-
amd_power_eff_ranking :8,
122-
amd_native_model_id :4,
123-
amd_type :4;
124-
};
125-
};
126109
};
127110

128111
struct cpuinfo_x86 {
@@ -157,6 +140,31 @@ struct cpuinfo_x86 {
157140
__u32 extended_cpuid_level;
158141
/* Maximum supported CPUID level, -1=no CPUID: */
159142
int cpuid_level;
143+
144+
/*
145+
* Insert the 4-byte cpu_type into a 4-byte hole in the cpuinfo_x86
146+
* structure to avoid breaking kABI.
147+
*/
148+
RH_KABI_FILL_HOLE(
149+
// Hardware defined CPU-type
150+
union {
151+
u32 topo_cpu_type;
152+
struct {
153+
// CPUID.1A.EAX[23-0]
154+
u32 intel_native_model_id :24;
155+
// CPUID.1A.EAX[31-24]
156+
u32 topo_intel_type :8;
157+
};
158+
struct {
159+
// CPUID 0x80000026.EBX
160+
u32 amd_num_processors :16;
161+
u32 amd_power_eff_ranking :8;
162+
u32 amd_native_model_id :4;
163+
u32 topo_amd_type :4;
164+
};
165+
};
166+
)
167+
160168
/*
161169
* Align to size of unsigned long because the x86_capability array
162170
* is passed to bitops which require the alignment. Use unnamed

0 commit comments

Comments
 (0)