Skip to content

Commit ea7f8a5

Browse files
committed
Rebuild rocky8_10 with kernel-4.18.0-553.16.1.el8_10
Rebuild_History BUILDABLERebuilding Kernel from rpm changelog with Fuzz Limit: 87.50% Number of commits in upstream range v4.18~1..master: 488125 Number of commits in rpm: 539 Number of commits matched with upstream: 522 (96.85%) Number of commits in upstream but not in rpm: 487603 Number of commits NOT found in upstream: 17 (3.15%) Rebuilding Kernel on Branch rocky8_10_rebuild_kernel-4.18.0-553.16.1.el8_10 for kernel-4.18.0-553.16.1.el8_10 Clean Cherry Picks: 369 (70.69%) Empty Cherry Picks: 151 (28.93%) _______________________________ Full Details Located here: ciq/ciq_backports/kernel-4.18.0-553.16.1.el8_10/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 c1b4632 commit ea7f8a5

File tree

208 files changed

+55636
-3966
lines changed

Some content is hidden

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

208 files changed

+55636
-3966
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,7 @@ What: /sys/devices/system/cpu/vulnerabilities
492492
/sys/devices/system/cpu/vulnerabilities/mds
493493
/sys/devices/system/cpu/vulnerabilities/meltdown
494494
/sys/devices/system/cpu/vulnerabilities/mmio_stale_data
495+
/sys/devices/system/cpu/vulnerabilities/reg_file_data_sampling
495496
/sys/devices/system/cpu/vulnerabilities/retbleed
496497
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass
497498
/sys/devices/system/cpu/vulnerabilities/spectre_v1

Documentation/admin-guide/hw-vuln/index.rst

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ are configurable at compile, boot or run time.
1313
l1tf
1414
mds
1515
tsx_async_abort
16-
multihit.rst
17-
special-register-buffer-data-sampling.rst
18-
processor_mmio_stale_data.rst
16+
multihit
17+
special-register-buffer-data-sampling
18+
processor_mmio_stale_data
1919
srso
20-
gather_data_sampling.rst
20+
gather_data_sampling
21+
reg-file-data-sampling
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
==================================
2+
Register File Data Sampling (RFDS)
3+
==================================
4+
5+
Register File Data Sampling (RFDS) is a microarchitectural vulnerability that
6+
only affects Intel Atom parts(also branded as E-cores). RFDS may allow
7+
a malicious actor to infer data values previously used in floating point
8+
registers, vector registers, or integer registers. RFDS does not provide the
9+
ability to choose which data is inferred. CVE-2023-28746 is assigned to RFDS.
10+
11+
Affected Processors
12+
===================
13+
Below is the list of affected Intel processors [#f1]_:
14+
15+
=================== ============
16+
Common name Family_Model
17+
=================== ============
18+
ATOM_GOLDMONT 06_5CH
19+
ATOM_GOLDMONT_D 06_5FH
20+
ATOM_GOLDMONT_PLUS 06_7AH
21+
ATOM_TREMONT_D 06_86H
22+
ATOM_TREMONT 06_96H
23+
ALDERLAKE 06_97H
24+
ALDERLAKE_L 06_9AH
25+
ATOM_TREMONT_L 06_9CH
26+
RAPTORLAKE 06_B7H
27+
RAPTORLAKE_P 06_BAH
28+
ATOM_GRACEMONT 06_BEH
29+
RAPTORLAKE_S 06_BFH
30+
=================== ============
31+
32+
As an exception to this table, Intel Xeon E family parts ALDERLAKE(06_97H) and
33+
RAPTORLAKE(06_B7H) codenamed Catlow are not affected. They are reported as
34+
vulnerable in Linux because they share the same family/model with an affected
35+
part. Unlike their affected counterparts, they do not enumerate RFDS_CLEAR or
36+
CPUID.HYBRID. This information could be used to distinguish between the
37+
affected and unaffected parts, but it is deemed not worth adding complexity as
38+
the reporting is fixed automatically when these parts enumerate RFDS_NO.
39+
40+
Mitigation
41+
==========
42+
Intel released a microcode update that enables software to clear sensitive
43+
information using the VERW instruction. Like MDS, RFDS deploys the same
44+
mitigation strategy to force the CPU to clear the affected buffers before an
45+
attacker can extract the secrets. This is achieved by using the otherwise
46+
unused and obsolete VERW instruction in combination with a microcode update.
47+
The microcode clears the affected CPU buffers when the VERW instruction is
48+
executed.
49+
50+
Mitigation points
51+
-----------------
52+
VERW is executed by the kernel before returning to user space, and by KVM
53+
before VMentry. None of the affected cores support SMT, so VERW is not required
54+
at C-state transitions.
55+
56+
New bits in IA32_ARCH_CAPABILITIES
57+
----------------------------------
58+
Newer processors and microcode update on existing affected processors added new
59+
bits to IA32_ARCH_CAPABILITIES MSR. These bits can be used to enumerate
60+
vulnerability and mitigation capability:
61+
62+
- Bit 27 - RFDS_NO - When set, processor is not affected by RFDS.
63+
- Bit 28 - RFDS_CLEAR - When set, processor is affected by RFDS, and has the
64+
microcode that clears the affected buffers on VERW execution.
65+
66+
Mitigation control on the kernel command line
67+
---------------------------------------------
68+
The kernel command line allows to control RFDS mitigation at boot time with the
69+
parameter "reg_file_data_sampling=". The valid arguments are:
70+
71+
========== =================================================================
72+
on If the CPU is vulnerable, enable mitigation; CPU buffer clearing
73+
on exit to userspace and before entering a VM.
74+
off Disables mitigation.
75+
========== =================================================================
76+
77+
Mitigation default is selected by CONFIG_MITIGATION_RFDS.
78+
79+
Mitigation status information
80+
-----------------------------
81+
The Linux kernel provides a sysfs interface to enumerate the current
82+
vulnerability status of the system: whether the system is vulnerable, and
83+
which mitigations are active. The relevant sysfs file is:
84+
85+
/sys/devices/system/cpu/vulnerabilities/reg_file_data_sampling
86+
87+
The possible values in this file are:
88+
89+
.. list-table::
90+
91+
* - 'Not affected'
92+
- The processor is not vulnerable
93+
* - 'Vulnerable'
94+
- The processor is vulnerable, but no mitigation enabled
95+
* - 'Vulnerable: No microcode'
96+
- The processor is vulnerable but microcode is not updated.
97+
* - 'Mitigation: Clear Register File'
98+
- The processor is vulnerable and the CPU buffer clearing mitigation is
99+
enabled.
100+
101+
References
102+
----------
103+
.. [#f1] Affected Processors
104+
https://www.intel.com/content/www/us/en/developer/topic-technology/software-security-guidance/processors-affected-consolidated-product-cpu-model.html

Documentation/admin-guide/hw-vuln/spectre.rst

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,10 @@ associated with the source address of the indirect branch. Specifically,
138138
the BHB might be shared across privilege levels even in the presence of
139139
Enhanced IBRS.
140140

141-
Currently the only known real-world BHB attack vector is via
142-
unprivileged eBPF. Therefore, it's highly recommended to not enable
143-
unprivileged eBPF, especially when eIBRS is used (without retpolines).
144-
For a full mitigation against BHB attacks, it's recommended to use
145-
retpolines (or eIBRS combined with retpolines).
141+
Previously the only known real-world BHB attack vector was via unprivileged
142+
eBPF. Further research has found attacks that don't require unprivileged eBPF.
143+
For a full mitigation against BHB attacks it is recommended to set BHI_DIS_S or
144+
use the BHB clearing sequence.
146145

147146
Attack scenarios
148147
----------------
@@ -430,6 +429,23 @@ The possible values in this file are:
430429
'PBRSB-eIBRS: Not affected' CPU is not affected by PBRSB
431430
=========================== =======================================================
432431

432+
- Branch History Injection (BHI) protection status:
433+
434+
.. list-table::
435+
436+
* - BHI: Not affected
437+
- System is not affected
438+
* - BHI: Retpoline
439+
- System is protected by retpoline
440+
* - BHI: BHI_DIS_S
441+
- System is protected by BHI_DIS_S
442+
* - BHI: SW loop, KVM SW loop
443+
- System is protected by software clearing sequence
444+
* - BHI: Vulnerable
445+
- System is vulnerable to BHI
446+
* - BHI: Vulnerable, KVM: SW loop
447+
- System is vulnerable; KVM is protected by software clearing sequence
448+
433449
Full mitigation might require a microcode update from the CPU
434450
vendor. When the necessary microcode is not available, the kernel will
435451
report vulnerability.
@@ -484,7 +500,11 @@ Spectre variant 2
484500

485501
Systems which support enhanced IBRS (eIBRS) enable IBRS protection once at
486502
boot, by setting the IBRS bit, and they're automatically protected against
487-
Spectre v2 variant attacks.
503+
some Spectre v2 variant attacks. The BHB can still influence the choice of
504+
indirect branch predictor entry, and although branch predictor entries are
505+
isolated between modes when eIBRS is enabled, the BHB itself is not isolated
506+
between modes. Systems which support BHI_DIS_S will set it to protect against
507+
BHI attacks.
488508

489509
On Intel's enhanced IBRS systems, this includes cross-thread branch target
490510
injections on SMT systems (STIBP). In other words, Intel eIBRS enables
@@ -638,6 +658,18 @@ kernel command line.
638658
spectre_v2=off. Spectre variant 1 mitigations
639659
cannot be disabled.
640660

661+
spectre_bhi=
662+
663+
[X86] Control mitigation of Branch History Injection
664+
(BHI) vulnerability. This setting affects the deployment
665+
of the HW BHI control and the SW BHB clearing sequence.
666+
667+
on
668+
(default) Enable the HW or SW mitigation as
669+
needed.
670+
off
671+
Disable the mitigation.
672+
641673
For spectre_v2_user see Documentation/admin-guide/kernel-parameters.txt
642674

643675
Mitigation selection guide

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -963,6 +963,26 @@
963963
The filter can be disabled or changed to another
964964
driver later using sysfs.
965965

966+
reg_file_data_sampling=
967+
[X86] Controls mitigation for Register File Data
968+
Sampling (RFDS) vulnerability. RFDS is a CPU
969+
vulnerability which may allow userspace to infer
970+
kernel data values previously stored in floating point
971+
registers, vector registers, or integer registers.
972+
RFDS only affects Intel Atom processors.
973+
974+
on: Turns ON the mitigation.
975+
off: Turns OFF the mitigation.
976+
977+
This parameter overrides the compile time default set
978+
by CONFIG_MITIGATION_RFDS. Mitigation cannot be
979+
disabled when other VERW based mitigations (like MDS)
980+
are enabled. In order to disable RFDS mitigation all
981+
VERW based mitigations need to be disabled.
982+
983+
For details see:
984+
Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst
985+
966986
drm.edid_firmware=[<connector>:]<file>[,[<connector>:]<file>]
967987
Broken monitors, graphic adapters, KVMs and EDIDless
968988
panels may send no or incorrect EDID data sets.
@@ -2845,9 +2865,11 @@
28452865
nopti [X86,PPC]
28462866
nospectre_v1 [X86,PPC]
28472867
nospectre_v2 [X86,PPC,S390,ARM64]
2868+
reg_file_data_sampling=off [X86]
28482869
retbleed=off [X86]
28492870
spec_rstack_overflow=off [X86]
28502871
spec_store_bypass_disable=off [X86,PPC]
2872+
spectre_bhi=off [X86]
28512873
spectre_v2_user=off [X86]
28522874
srbds=off [X86,INTEL]
28532875
ssbd=force-off [ARM64]
@@ -5026,6 +5048,15 @@
50265048
sonypi.*= [HW] Sony Programmable I/O Control Device driver
50275049
See Documentation/laptops/sonypi.txt
50285050

5051+
spectre_bhi= [X86] Control mitigation of Branch History Injection
5052+
(BHI) vulnerability. This setting affects the
5053+
deployment of the HW BHI control and the SW BHB
5054+
clearing sequence.
5055+
5056+
on - (default) Enable the HW or SW mitigation
5057+
as needed.
5058+
off - Disable the mitigation.
5059+
50295060
spectre_v2= [X86] Control mitigation of Spectre variant 2
50305061
(indirect branch speculation) vulnerability.
50315062
The default operation protects the kernel from

Documentation/x86/mds.rst

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ The kernel provides a function to invoke the buffer clearing:
9595

9696
mds_clear_cpu_buffers()
9797

98+
Also macro CLEAR_CPU_BUFFERS can be used in ASM late in exit-to-user path.
99+
Other than CFLAGS.ZF, this macro doesn't clobber any registers.
100+
98101
The mitigation is invoked on kernel/userspace, hypervisor/guest and C-state
99102
(idle) transitions.
100103

@@ -138,17 +141,30 @@ Mitigation points
138141

139142
When transitioning from kernel to user space the CPU buffers are flushed
140143
on affected CPUs when the mitigation is not disabled on the kernel
141-
command line. The migitation is enabled through the static key
142-
mds_user_clear.
143-
144-
The mitigation is invoked in prepare_exit_to_usermode() which covers
145-
all but one of the kernel to user space transitions. The exception
146-
is when we return from a Non Maskable Interrupt (NMI), which is
147-
handled directly in do_nmi().
148-
149-
(The reason that NMI is special is that prepare_exit_to_usermode() can
150-
enable IRQs. In NMI context, NMIs are blocked, and we don't want to
151-
enable IRQs with NMIs blocked.)
144+
command line. The mitigation is enabled through the feature flag
145+
X86_FEATURE_CLEAR_CPU_BUF.
146+
147+
The mitigation is invoked just before transitioning to userspace after
148+
user registers are restored. This is done to minimize the window in
149+
which kernel data could be accessed after VERW e.g. via an NMI after
150+
VERW.
151+
152+
**Corner case not handled**
153+
Interrupts returning to kernel don't clear CPUs buffers since the
154+
exit-to-user path is expected to do that anyways. But, there could be
155+
a case when an NMI is generated in kernel after the exit-to-user path
156+
has cleared the buffers. This case is not handled and NMI returning to
157+
kernel don't clear CPU buffers because:
158+
159+
1. It is rare to get an NMI after VERW, but before returning to userspace.
160+
2. For an unprivileged user, there is no known way to make that NMI
161+
less rare or target it.
162+
3. It would take a large number of these precisely-timed NMIs to mount
163+
an actual attack. There's presumably not enough bandwidth.
164+
4. The NMI in question occurs after a VERW, i.e. when user state is
165+
restored and most interesting data is already scrubbed. Whats left
166+
is only the data that NMI touches, and that may or may not be of
167+
any interest.
152168

153169

154170
2. C-State transition

Makefile.rhelver

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

1717
#
1818
# ZSTREAM

arch/powerpc/include/asm/book3s/64/hash.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@
6262

6363
#define H_KERN_IO_START H_VMALLOC_END
6464
#define H_KERN_IO_END (H_KERN_VIRT_START + H_KERN_VIRT_SIZE)
65-
6665
/*
6766
* Region IDs
6867
*/

arch/powerpc/include/asm/book3s/64/pgtable.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#ifndef __ASSEMBLY__
88
#include <linux/mmdebug.h>
99
#include <linux/bug.h>
10+
#include <linux/sizes.h>
1011
#endif
1112

1213
/*
@@ -347,7 +348,8 @@ extern unsigned long pci_io_base;
347348
#define PHB_IO_BASE (ISA_IO_END)
348349
#define PHB_IO_END (KERN_IO_START + FULL_IO_SIZE)
349350
#define IOREMAP_BASE (PHB_IO_END)
350-
#define IOREMAP_END (KERN_IO_END)
351+
#define IOREMAP_END (KERN_IO_END - FIXADDR_SIZE)
352+
#define FIXADDR_SIZE SZ_32M
351353

352354
/* Advertise special mapping type for AGP */
353355
#define HAVE_PAGE_AGP

arch/powerpc/include/asm/fixmap.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@
2323
#include <asm/kmap_size.h>
2424
#endif
2525

26+
#ifdef CONFIG_PPC64
27+
#define FIXADDR_TOP (IOREMAP_END + FIXADDR_SIZE)
28+
#else
2629
#define FIXADDR_TOP ((unsigned long)(-PAGE_SIZE))
30+
#endif
2731

2832
/*
2933
* Here we define all the compile-time 'special' virtual
@@ -45,6 +49,7 @@
4549
*/
4650
enum fixed_addresses {
4751
FIX_HOLE,
52+
#ifdef CONFIG_PPC32
4853
/* reserve the top 128K for early debugging purposes */
4954
FIX_EARLY_DEBUG_TOP = FIX_HOLE,
5055
FIX_EARLY_DEBUG_BASE = FIX_EARLY_DEBUG_TOP+((128*1024)/PAGE_SIZE)-1,
@@ -60,6 +65,7 @@ enum fixed_addresses {
6065
FIX_IMMR_SIZE,
6166
#endif
6267
/* FIX_PCIE_MCFG, */
68+
#endif /* CONFIG_PPC32 */
6369
__end_of_fixed_addresses
6470
};
6571

@@ -73,6 +79,8 @@ enum fixed_addresses {
7379
static inline void __set_fixmap(enum fixed_addresses idx,
7480
phys_addr_t phys, pgprot_t flags)
7581
{
82+
BUILD_BUG_ON(IS_ENABLED(CONFIG_PPC64) && __FIXADDR_SIZE > FIXADDR_SIZE);
83+
7684
map_kernel_page(fix_to_virt(idx), phys, flags);
7785
}
7886

0 commit comments

Comments
 (0)