Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
d49f2e6
Bluetooth: hci_core: Fix use-after-free in vhci_flush()
PlaidCat Sep 3, 2025
f1889bb
mm: fix copy_vma() error handling for hugetlb mappings
PlaidCat Sep 3, 2025
d88ac28
mm/hugetlb: unshare page tables during VMA split, not before
PlaidCat Sep 3, 2025
2872192
mm/hugetlb: fix huge_pmd_unshare() vs GUP-fast race
PlaidCat Sep 3, 2025
bb412eb
net: fix udp gso skb_segment after pull from frag_list
PlaidCat Sep 3, 2025
857a1de
tls: always refresh the queue when reading sock
PlaidCat Sep 3, 2025
8327cf4
i2c/designware: Fix an initialization issue
PlaidCat Sep 3, 2025
c340911
EDAC/i10nm: Add Intel Grand Ridge micro-server support
PlaidCat Sep 3, 2025
9b74613
x86/bugs: Switch to new Intel CPU model defines
PlaidCat Sep 3, 2025
642816d
x86/apic: Switch to new Intel CPU model defines
PlaidCat Sep 3, 2025
419ab6b
x86/aperfmperf: Switch to new Intel CPU model defines
PlaidCat Sep 3, 2025
1e3909f
x86/cpu: Fix x86_match_cpu() to match just X86_VENDOR_INTEL
PlaidCat Sep 3, 2025
c275394
EDAC/i10nm: Switch to new Intel CPU model defines
PlaidCat Sep 3, 2025
e5df02d
EDAC/skx: Switch to new Intel CPU model defines
PlaidCat Sep 3, 2025
06210b2
x86/bugs: Add 'spectre_bhi=vmexit' cmdline option
PlaidCat Sep 3, 2025
bcde6e6
cpufreq: Switch to new Intel CPU model defines
PlaidCat Sep 3, 2025
9c71964
x86/platform/atom: Switch to new Intel CPU model defines
PlaidCat Sep 3, 2025
307f9f1
platform/x86/intel/ifs: Switch to new Intel CPU model defines
PlaidCat Sep 3, 2025
d29afc5
kselftest: Move ksft helper module to common directory
PlaidCat Sep 3, 2025
c012a05
selftests: ksft: Fix finished() helper exit code on skipped tests
PlaidCat Sep 3, 2025
6ba8b2a
tools/include: Sync x86 headers with the kernel sources
PlaidCat Sep 3, 2025
fd70c06
x86/cpufeatures: Rename X86_FEATURE_FAST_CPPC to have AMD prefix
PlaidCat Sep 3, 2025
58b67e2
x86/cpufeatures: Add X86_FEATURE_AMD_HETEROGENEOUS_CORES
PlaidCat Sep 3, 2025
c0bf96a
x86/cpu: Add CPU type to struct cpuinfo_topology
PlaidCat Sep 3, 2025
04faece
x86/cpu: Expose only stepping min/max interface
PlaidCat Sep 3, 2025
576c09d
x86/cpu: Fix typo in x86_match_cpu()'s doc
PlaidCat Sep 3, 2025
467c4b0
selftests: Warn about skipped tests in result summary
PlaidCat Sep 3, 2025
7ec0ca6
x86/cpu: Fix the description of X86_MATCH_VFM_STEPS()
PlaidCat Sep 3, 2025
61134e5
x86/cpu: Shorten CPU matching macro
PlaidCat Sep 3, 2025
4b579a4
x86/cpu: Add cpu_type to struct x86_cpu_id
PlaidCat Sep 3, 2025
a8d23bd
x86/cpu: Update x86_match_cpu() to also use cpu-type
PlaidCat Sep 3, 2025
39aa420
x86/rfds: Exclude P-only parts from the RFDS affected list
PlaidCat Sep 3, 2025
249c17f
arm64: errata: Add QCOM_KRYO_4XX_GOLD to the spectre_bhb_k24_list
PlaidCat Sep 3, 2025
e354a2e
arm64: errata: Assume that unknown CPUs _are_ vulnerable to Spectre BHB
PlaidCat Sep 3, 2025
53c54bc
x86/bpf: Call branch history clearing sequence on exit
PlaidCat Sep 3, 2025
6f35467
x86/bpf: Add IBHF call at end of classic BPF
PlaidCat Sep 3, 2025
c804a3c
x86/bhi: Do not set BHI_DIS_S in 32-bit mode
PlaidCat Sep 3, 2025
fd0eb58
Documentation: x86/bugs/its: Add ITS documentation
PlaidCat Sep 3, 2025
f72ed82
x86/its: Enumerate Indirect Target Selection (ITS) bug
PlaidCat Sep 3, 2025
a16c2c8
x86/its: Add support for ITS-safe indirect thunk
PlaidCat Sep 3, 2025
d4b0325
x86/its: Add support for ITS-safe return thunk
PlaidCat Sep 3, 2025
b98347c
x86/its: Enable Indirect Target Selection mitigation
PlaidCat Sep 3, 2025
78b2757
x86/its: Add "vmexit" option to skip mitigation on some CPUs
PlaidCat Sep 3, 2025
20158fd
x86/its: Add support for RSB stuffing mitigation
PlaidCat Sep 3, 2025
4b2afaa
x86/its: Align RETs in BHB clear sequence to avoid thunking
PlaidCat Sep 3, 2025
8295d72
x86/ibt: Keep IBT disabled during alternative patching
PlaidCat Sep 3, 2025
f987f71
selftest/x86/bugs: Add selftests for ITS
PlaidCat Sep 3, 2025
2953249
arm64: insn: Add support for encoding DSB
PlaidCat Sep 3, 2025
aa0c906
arm64: proton-pack: Expose whether the platform is mitigated by firmware
PlaidCat Sep 3, 2025
199e07e
arm64: proton-pack: Expose whether the branchy loop k value
PlaidCat Sep 3, 2025
3c7cdc5
arm64: bpf: Add BHB mitigation to the epilogue for cBPF programs
PlaidCat Sep 3, 2025
e8516ed
arm64: bpf: Only mitigate cBPF programs loaded by unprivileged users
PlaidCat Sep 3, 2025
ea708a1
arm64: proton-pack: Add new CPUs 'k' values for branch mitigation
PlaidCat Sep 3, 2025
b9ceb20
bpf, test_run: Fix use-after-free issue in eth_skb_pkt_type()
PlaidCat Sep 3, 2025
6c30a3e
wifi: rtw88: fix the 'para' buffer size to avoid reading out of bounds
PlaidCat Sep 3, 2025
d87cfa2
powerpc/64s/radix/kfence: map __kfence_pool at page granularity
PlaidCat Sep 3, 2025
38098ed
s390/pai: fix attr_event_free upper limit for pai device drivers
PlaidCat Sep 3, 2025
1fe3385
s390/pai: export number of sysfs attribute files
PlaidCat Sep 3, 2025
2a1cb07
s390/topology: Improve topology detection
PlaidCat Sep 3, 2025
6d2f7c0
s390/cpumf: Update CPU Measurement facility extended counter set support
PlaidCat Sep 3, 2025
6683306
sch_ets: make est_qlen_notify() idempotent
PlaidCat Sep 3, 2025
3781226
net_sched: ets: Fix double list add in class with netem as child qdisc
PlaidCat Sep 3, 2025
f40dcff
udp: Fix memory accounting leak.
PlaidCat Sep 3, 2025
1d74ccb
drm/i915: Give i915 and xe each their own display tracepoints
PlaidCat Sep 3, 2025
8ef047d
ethtool: Fix set RXNFC command with symmetric RSS hash
PlaidCat Sep 3, 2025
42e20bf
ftrace: Clean up hash direct_functions on register failures
PlaidCat Sep 3, 2025
ed67f51
ice: fix eswitch code memory leak in reset scenario
PlaidCat Sep 3, 2025
6ad4271
Rebuild rocky9_6 with kernel-5.14.0-570.37.1.el9_6
PlaidCat Sep 3, 2025
a8f7968
RDMA/iwcm: Fix use-after-free of work objects after cm_id destruction
PlaidCat Sep 3, 2025
4ab7720
vsock: Fix transport_* TOCTOU
PlaidCat Sep 3, 2025
66d7eeb
i40e: fix MMIO write access to an invalid page in i40e_clear_hw
PlaidCat Sep 3, 2025
855c5f1
net_sched: hfsc: Fix a potential UAF in hfsc_dequeue() too
PlaidCat Sep 3, 2025
1cb732f
net_sched: ets: fix a race in ets_qdisc_change()
PlaidCat Sep 3, 2025
9ec85e1
net/sched: ets: use old 'nbands' while purging unused classes
PlaidCat Sep 3, 2025
8575ee5
watchdog/perf: properly initialize the turbo mode timestamp and rearm…
PlaidCat Sep 3, 2025
38cc062
smb: client: Fix netns refcount imbalance causing leaks and use-after…
PlaidCat Sep 3, 2025
cb68c11
Revert "smb: client: Fix netns refcount imbalance causing leaks and u…
PlaidCat Sep 3, 2025
698a3e5
Revert "smb: client: fix TCP timers deadlock after rmmod"
PlaidCat Sep 3, 2025
cb2853b
tipc: Fix use-after-free in tipc_conn_close().
PlaidCat Sep 3, 2025
225a94e
s390/pci: Fix SR-IOV for PFs initially in standby
PlaidCat Sep 3, 2025
a2606e3
s390/pci: Pull search for parent PF out of zpci_iov_setup_virtfn()
PlaidCat Sep 3, 2025
07eed90
s390/pci: Fix handling of isolated VFs
PlaidCat Sep 3, 2025
3775910
s390/pci: Fix zpci_bus_is_isolated_vf() for non-VFs
PlaidCat Sep 3, 2025
bf7b77d
i40e: report VF tx_dropped with tx_errors instead of tx_discards
PlaidCat Sep 3, 2025
2d694fc
net/sched: Abort __tc_modify_qdisc if parent class does not exist
PlaidCat Sep 3, 2025
803fb81
s390/pci: rename lock member in struct zpci_dev
PlaidCat Sep 3, 2025
06de06b
s390/pci: introduce lock to synchronize state of zpci_dev's
PlaidCat Sep 3, 2025
b8f8100
s390/pci: remove hotplug slot when releasing the device
PlaidCat Sep 3, 2025
7772bfc
s390/pci: Fix potential double remove of hotplug slot
PlaidCat Sep 3, 2025
b2b969b
s390/pci: Fix missing check for zpci_create_device() error return
PlaidCat Sep 3, 2025
0d5cf3f
s390/pci: Fix duplicate pci_dev_put() in disable_slot() when PF has c…
PlaidCat Sep 3, 2025
3c0ad12
s390/pci: Remove redundant bus removal and disable from zpci_release_…
PlaidCat Sep 3, 2025
0411a65
s390/pci: Prevent self deletion in disable_slot()
PlaidCat Sep 3, 2025
bcf5608
s390/pci: Allow re-add of a reserved but not yet removed device
PlaidCat Sep 3, 2025
98a03cb
s390/pci: Serialize device addition and removal
PlaidCat Sep 3, 2025
b506bb2
xfrm: interface: fix use-after-free after changing collect_md xfrm in…
PlaidCat Sep 3, 2025
1b9ea68
Rebuild rocky9_6 with kernel-5.14.0-570.39.1.el9_6
PlaidCat Sep 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
1 change: 1 addition & 0 deletions Documentation/ABI/testing/sysfs-devices-system-cpu
Original file line number Diff line number Diff line change
Expand Up @@ -519,6 +519,7 @@ Description: information about CPUs heterogeneity.

What: /sys/devices/system/cpu/vulnerabilities
/sys/devices/system/cpu/vulnerabilities/gather_data_sampling
/sys/devices/system/cpu/vulnerabilities/indirect_target_selection
/sys/devices/system/cpu/vulnerabilities/itlb_multihit
/sys/devices/system/cpu/vulnerabilities/l1tf
/sys/devices/system/cpu/vulnerabilities/mds
Expand Down
1 change: 1 addition & 0 deletions Documentation/admin-guide/hw-vuln/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ are configurable at compile, boot or run time.
srso
gather_data_sampling
reg-file-data-sampling
indirect-target-selection
168 changes: 168 additions & 0 deletions Documentation/admin-guide/hw-vuln/indirect-target-selection.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
.. SPDX-License-Identifier: GPL-2.0

Indirect Target Selection (ITS)
===============================

ITS is a vulnerability in some Intel CPUs that support Enhanced IBRS and were
released before Alder Lake. ITS may allow an attacker to control the prediction
of indirect branches and RETs located in the lower half of a cacheline.

ITS is assigned CVE-2024-28956 with a CVSS score of 4.7 (Medium).

Scope of Impact
---------------
- **eIBRS Guest/Host Isolation**: Indirect branches in KVM/kernel may still be
predicted with unintended target corresponding to a branch in the guest.

- **Intra-Mode BTI**: In-kernel training such as through cBPF or other native
gadgets.

- **Indirect Branch Prediction Barrier (IBPB)**: After an IBPB, indirect
branches may still be predicted with targets corresponding to direct branches
executed prior to the IBPB. This is fixed by the IPU 2025.1 microcode, which
should be available via distro updates. Alternatively microcode can be
obtained from Intel's github repository [#f1]_.

Affected CPUs
-------------
Below is the list of ITS affected CPUs [#f2]_ [#f3]_:

======================== ============ ==================== ===============
Common name Family_Model eIBRS Intra-mode BTI
Guest/Host Isolation
======================== ============ ==================== ===============
SKYLAKE_X (step >= 6) 06_55H Affected Affected
ICELAKE_X 06_6AH Not affected Affected
ICELAKE_D 06_6CH Not affected Affected
ICELAKE_L 06_7EH Not affected Affected
TIGERLAKE_L 06_8CH Not affected Affected
TIGERLAKE 06_8DH Not affected Affected
KABYLAKE_L (step >= 12) 06_8EH Affected Affected
KABYLAKE (step >= 13) 06_9EH Affected Affected
COMETLAKE 06_A5H Affected Affected
COMETLAKE_L 06_A6H Affected Affected
ROCKETLAKE 06_A7H Not affected Affected
======================== ============ ==================== ===============

- All affected CPUs enumerate Enhanced IBRS feature.
- IBPB isolation is affected on all ITS affected CPUs, and need a microcode
update for mitigation.
- None of the affected CPUs enumerate BHI_CTRL which was introduced in Golden
Cove (Alder Lake and Sapphire Rapids). This can help guests to determine the
host's affected status.
- Intel Atom CPUs are not affected by ITS.

Mitigation
----------
As only the indirect branches and RETs that have their last byte of instruction
in the lower half of the cacheline are vulnerable to ITS, the basic idea behind
the mitigation is to not allow indirect branches in the lower half.

This is achieved by relying on existing retpoline support in the kernel, and in
compilers. ITS-vulnerable retpoline sites are runtime patched to point to newly
added ITS-safe thunks. These safe thunks consists of indirect branch in the
second half of the cacheline. Not all retpoline sites are patched to thunks, if
a retpoline site is evaluated to be ITS-safe, it is replaced with an inline
indirect branch.

Dynamic thunks
~~~~~~~~~~~~~~
From a dynamically allocated pool of safe-thunks, each vulnerable site is
replaced with a new thunk, such that they get a unique address. This could
improve the branch prediction accuracy. Also, it is a defense-in-depth measure
against aliasing.

Note, for simplicity, indirect branches in eBPF programs are always replaced
with a jump to a static thunk in __x86_indirect_its_thunk_array. If required,
in future this can be changed to use dynamic thunks.

All vulnerable RETs are replaced with a static thunk, they do not use dynamic
thunks. This is because RETs get their prediction from RSB mostly that does not
depend on source address. RETs that underflow RSB may benefit from dynamic
thunks. But, RETs significantly outnumber indirect branches, and any benefit
from a unique source address could be outweighed by the increased icache
footprint and iTLB pressure.

Retpoline
~~~~~~~~~
Retpoline sequence also mitigates ITS-unsafe indirect branches. For this
reason, when retpoline is enabled, ITS mitigation only relocates the RETs to
safe thunks. Unless user requested the RSB-stuffing mitigation.

RSB Stuffing
~~~~~~~~~~~~
RSB-stuffing via Call Depth Tracking is a mitigation for Retbleed RSB-underflow
attacks. And it also mitigates RETs that are vulnerable to ITS.

Mitigation in guests
^^^^^^^^^^^^^^^^^^^^
All guests deploy ITS mitigation by default, irrespective of eIBRS enumeration
and Family/Model of the guest. This is because eIBRS feature could be hidden
from a guest. One exception to this is when a guest enumerates BHI_DIS_S, which
indicates that the guest is running on an unaffected host.

To prevent guests from unnecessarily deploying the mitigation on unaffected
platforms, Intel has defined ITS_NO bit(62) in MSR IA32_ARCH_CAPABILITIES. When
a guest sees this bit set, it should not enumerate the ITS bug. Note, this bit
is not set by any hardware, but is **intended for VMMs to synthesize** it for
guests as per the host's affected status.

Mitigation options
^^^^^^^^^^^^^^^^^^
The ITS mitigation can be controlled using the "indirect_target_selection"
kernel parameter. The available options are:

======== ===================================================================
on (default) Deploy the "Aligned branch/return thunks" mitigation.
If spectre_v2 mitigation enables retpoline, aligned-thunks are only
deployed for the affected RET instructions. Retpoline mitigates
indirect branches.

off Disable ITS mitigation.

vmexit Equivalent to "=on" if the CPU is affected by guest/host isolation
part of ITS. Otherwise, mitigation is not deployed. This option is
useful when host userspace is not in the threat model, and only
attacks from guest to host are considered.

stuff Deploy RSB-fill mitigation when retpoline is also deployed.
Otherwise, deploy the default mitigation. When retpoline mitigation
is enabled, RSB-stuffing via Call-Depth-Tracking also mitigates
ITS.

force Force the ITS bug and deploy the default mitigation.
======== ===================================================================

Sysfs reporting
---------------

The sysfs file showing ITS mitigation status is:

/sys/devices/system/cpu/vulnerabilities/indirect_target_selection

Note, microcode mitigation status is not reported in this file.

The possible values in this file are:

.. list-table::

* - Not affected
- The processor is not vulnerable.
* - Vulnerable
- System is vulnerable and no mitigation has been applied.
* - Vulnerable, KVM: Not affected
- System is vulnerable to intra-mode BTI, but not affected by eIBRS
guest/host isolation.
* - Mitigation: Aligned branch/return thunks
- The mitigation is enabled, affected indirect branches and RETs are
relocated to safe thunks.
* - Mitigation: Retpolines, Stuffing RSB
- The mitigation is enabled using retpoline and RSB stuffing.

References
----------
.. [#f1] Microcode repository - https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files

.. [#f2] Affected Processors list - https://www.intel.com/content/www/us/en/developer/topic-technology/software-security-guidance/processors-affected-consolidated-product-cpu-model.html

.. [#f3] Affected Processors list (machine readable) - https://github.com/intel/Intel-affected-processor-list
8 changes: 0 additions & 8 deletions Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,6 @@ Below is the list of affected Intel processors [#f1]_:
RAPTORLAKE_S 06_BFH
=================== ============

As an exception to this table, Intel Xeon E family parts ALDERLAKE(06_97H) and
RAPTORLAKE(06_B7H) codenamed Catlow are not affected. They are reported as
vulnerable in Linux because they share the same family/model with an affected
part. Unlike their affected counterparts, they do not enumerate RFDS_CLEAR or
CPUID.HYBRID. This information could be used to distinguish between the
affected and unaffected parts, but it is deemed not worth adding complexity as
the reporting is fixed automatically when these parts enumerate RFDS_NO.

Mitigation
==========
Intel released a microcode update that enables software to clear sensitive
Expand Down
30 changes: 27 additions & 3 deletions Documentation/admin-guide/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2060,6 +2060,23 @@
different crypto accelerators. This option can be used
to achieve best performance for particular HW.

indirect_target_selection= [X86,Intel] Mitigation control for Indirect
Target Selection(ITS) bug in Intel CPUs. Updated
microcode is also required for a fix in IBPB.

on: Enable mitigation (default).
off: Disable mitigation.
force: Force the ITS bug and deploy default
mitigation.
vmexit: Only deploy mitigation if CPU is affected by
guest/host isolation part of ITS.
stuff: Deploy RSB-fill mitigation when retpoline is
also deployed. Otherwise, deploy the default
mitigation.

For details see:
Documentation/admin-guide/hw-vuln/indirect-target-selection.rst

init= [KNL]
Format: <full_path>
Run specified binary instead of /sbin/init as init
Expand Down Expand Up @@ -3389,6 +3406,7 @@
expose users to several CPU vulnerabilities.
Equivalent to: if nokaslr then kpti=0 [ARM64]
gather_data_sampling=off [X86]
indirect_target_selection=off [X86]
kvm.nx_huge_pages=off [X86]
l1tf=off [X86]
mds=off [X86]
Expand Down Expand Up @@ -6015,9 +6033,15 @@
deployment of the HW BHI control and the SW BHB
clearing sequence.

on - (default) Enable the HW or SW mitigation
as needed.
off - Disable the mitigation.
on - (default) Enable the HW or SW mitigation as
needed. This protects the kernel from
both syscalls and VMs.
vmexit - On systems which don't have the HW mitigation
available, enable the SW mitigation on vmexit
ONLY. On such systems, the host kernel is
protected from VM-originated BHI attacks, but
may still be vulnerable to syscall attacks.
off - Disable the mitigation.

spectre_v2= [X86] Control mitigation of Spectre variant 2
(indirect branch speculation) vulnerability.
Expand Down
2 changes: 1 addition & 1 deletion Makefile.rhelver
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ RHEL_MINOR = 6
#
# Use this spot to avoid future merge conflicts.
# Do not trim this comment.
RHEL_RELEASE = 570.33.2
RHEL_RELEASE = 570.39.1

#
# ZSTREAM
Expand Down
2 changes: 2 additions & 0 deletions arch/arm64/include/asm/cputype.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
#define ARM_CPU_PART_CORTEX_A78AE 0xD42
#define ARM_CPU_PART_CORTEX_X1 0xD44
#define ARM_CPU_PART_CORTEX_A510 0xD46
#define ARM_CPU_PART_CORTEX_X1C 0xD4C
#define ARM_CPU_PART_CORTEX_A520 0xD80
#define ARM_CPU_PART_CORTEX_A710 0xD47
#define ARM_CPU_PART_CORTEX_A715 0xD4D
Expand Down Expand Up @@ -159,6 +160,7 @@
#define MIDR_CORTEX_A78AE MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78AE)
#define MIDR_CORTEX_X1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X1)
#define MIDR_CORTEX_A510 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A510)
#define MIDR_CORTEX_X1C MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X1C)
#define MIDR_CORTEX_A520 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A520)
#define MIDR_CORTEX_A710 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A710)
#define MIDR_CORTEX_A715 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A715)
Expand Down
1 change: 1 addition & 0 deletions arch/arm64/include/asm/insn.h
Original file line number Diff line number Diff line change
Expand Up @@ -686,6 +686,7 @@ u32 aarch64_insn_gen_cas(enum aarch64_insn_register result,
}
#endif
u32 aarch64_insn_gen_dmb(enum aarch64_insn_mb_type type);
u32 aarch64_insn_gen_dsb(enum aarch64_insn_mb_type type);

s32 aarch64_get_branch_offset(u32 insn);
u32 aarch64_set_branch_offset(u32 insn, s32 offset);
Expand Down
4 changes: 3 additions & 1 deletion arch/arm64/include/asm/spectre.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,9 @@ enum mitigation_state arm64_get_meltdown_state(void);

enum mitigation_state arm64_get_spectre_bhb_state(void);
bool is_spectre_bhb_affected(const struct arm64_cpu_capabilities *entry, int scope);
u8 spectre_bhb_loop_affected(int scope);
extern bool __nospectre_bhb;
u8 get_spectre_bhb_loop_value(void);
bool is_spectre_bhb_fw_mitigated(void);
void spectre_bhb_enable_mitigation(const struct arm64_cpu_capabilities *__unused);
bool try_emulate_el1_ssbs(struct pt_regs *regs, u32 instr);

Expand Down
Loading