Skip to content

Commit 6a13749

Browse files
committed
Merge tag 'loongarch-kvm-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson into HEAD
LoongArch KVM changes for v6.18 1. Add PTW feature detection on new hardware. 2. Add sign extension with kernel MMIO/IOCSR emulation. 3. Improve in-kernel IPI emulation. 4. Improve in-kernel PCH-PIC emulation. 5. Move kvm_iocsr tracepoint out of generic code.
2 parents 924ccf1 + 66e2d96 commit 6a13749

File tree

495 files changed

+5520
-2512
lines changed

Some content is hidden

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

495 files changed

+5520
-2512
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -586,6 +586,7 @@ What: /sys/devices/system/cpu/vulnerabilities
586586
/sys/devices/system/cpu/vulnerabilities/srbds
587587
/sys/devices/system/cpu/vulnerabilities/tsa
588588
/sys/devices/system/cpu/vulnerabilities/tsx_async_abort
589+
/sys/devices/system/cpu/vulnerabilities/vmscape
589590
Date: January 2018
590591
Contact: Linux kernel mailing list <[email protected]>
591592
Description: Information about CPU vulnerabilities

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ are configurable at compile, boot or run time.
2626
rsb
2727
old_microcode
2828
indirect-target-selection
29+
vmscape
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
.. SPDX-License-Identifier: GPL-2.0
2+
3+
VMSCAPE
4+
=======
5+
6+
VMSCAPE is a vulnerability that may allow a guest to influence the branch
7+
prediction in host userspace. It particularly affects hypervisors like QEMU.
8+
9+
Even if a hypervisor may not have any sensitive data like disk encryption keys,
10+
guest-userspace may be able to attack the guest-kernel using the hypervisor as
11+
a confused deputy.
12+
13+
Affected processors
14+
-------------------
15+
16+
The following CPU families are affected by VMSCAPE:
17+
18+
**Intel processors:**
19+
- Skylake generation (Parts without Enhanced-IBRS)
20+
- Cascade Lake generation - (Parts affected by ITS guest/host separation)
21+
- Alder Lake and newer (Parts affected by BHI)
22+
23+
Note that, BHI affected parts that use BHB clearing software mitigation e.g.
24+
Icelake are not vulnerable to VMSCAPE.
25+
26+
**AMD processors:**
27+
- Zen series (families 0x17, 0x19, 0x1a)
28+
29+
** Hygon processors:**
30+
- Family 0x18
31+
32+
Mitigation
33+
----------
34+
35+
Conditional IBPB
36+
----------------
37+
38+
Kernel tracks when a CPU has run a potentially malicious guest and issues an
39+
IBPB before the first exit to userspace after VM-exit. If userspace did not run
40+
between VM-exit and the next VM-entry, no IBPB is issued.
41+
42+
Note that the existing userspace mitigation against Spectre-v2 is effective in
43+
protecting the userspace. They are insufficient to protect the userspace VMMs
44+
from a malicious guest. This is because Spectre-v2 mitigations are applied at
45+
context switch time, while the userspace VMM can run after a VM-exit without a
46+
context switch.
47+
48+
Vulnerability enumeration and mitigation is not applied inside a guest. This is
49+
because nested hypervisors should already be deploying IBPB to isolate
50+
themselves from nested guests.
51+
52+
SMT considerations
53+
------------------
54+
55+
When Simultaneous Multi-Threading (SMT) is enabled, hypervisors can be
56+
vulnerable to cross-thread attacks. For complete protection against VMSCAPE
57+
attacks in SMT environments, STIBP should be enabled.
58+
59+
The kernel will issue a warning if SMT is enabled without adequate STIBP
60+
protection. Warning is not issued when:
61+
62+
- SMT is disabled
63+
- STIBP is enabled system-wide
64+
- Intel eIBRS is enabled (which implies STIBP protection)
65+
66+
System information and options
67+
------------------------------
68+
69+
The sysfs file showing VMSCAPE mitigation status is:
70+
71+
/sys/devices/system/cpu/vulnerabilities/vmscape
72+
73+
The possible values in this file are:
74+
75+
* 'Not affected':
76+
77+
The processor is not vulnerable to VMSCAPE attacks.
78+
79+
* 'Vulnerable':
80+
81+
The processor is vulnerable and no mitigation has been applied.
82+
83+
* 'Mitigation: IBPB before exit to userspace':
84+
85+
Conditional IBPB mitigation is enabled. The kernel tracks when a CPU has
86+
run a potentially malicious guest and issues an IBPB before the first
87+
exit to userspace after VM-exit.
88+
89+
* 'Mitigation: IBPB on VMEXIT':
90+
91+
IBPB is issued on every VM-exit. This occurs when other mitigations like
92+
RETBLEED or SRSO are already issuing IBPB on VM-exit.
93+
94+
Mitigation control on the kernel command line
95+
----------------------------------------------
96+
97+
The mitigation can be controlled via the ``vmscape=`` command line parameter:
98+
99+
* ``vmscape=off``:
100+
101+
Disable the VMSCAPE mitigation.
102+
103+
* ``vmscape=ibpb``:
104+
105+
Enable conditional IBPB mitigation (default when CONFIG_MITIGATION_VMSCAPE=y).
106+
107+
* ``vmscape=force``:
108+
109+
Force vulnerability detection and mitigation even on processors that are
110+
not known to be affected.

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3829,6 +3829,7 @@
38293829
srbds=off [X86,INTEL]
38303830
ssbd=force-off [ARM64]
38313831
tsx_async_abort=off [X86]
3832+
vmscape=off [X86]
38323833

38333834
Exceptions:
38343835
This does not have any effect on
@@ -8041,6 +8042,16 @@
80418042
vmpoff= [KNL,S390] Perform z/VM CP command after power off.
80428043
Format: <command>
80438044

8045+
vmscape= [X86] Controls mitigation for VMscape attacks.
8046+
VMscape attacks can leak information from a userspace
8047+
hypervisor to a guest via speculative side-channels.
8048+
8049+
off - disable the mitigation
8050+
ibpb - use Indirect Branch Prediction Barrier
8051+
(IBPB) mitigation (default)
8052+
force - force vulnerability detection even on
8053+
unaffected processors
8054+
80448055
vsyscall= [X86-64,EARLY]
80458056
Controls the behavior of vsyscalls (i.e. calls to
80468057
fixed addresses of 0xffffffffff600x00 from legacy

Documentation/devicetree/bindings/dma/qcom,bam-dma.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,12 @@ required:
9292
anyOf:
9393
- required:
9494
- qcom,powered-remotely
95+
- num-channels
96+
- qcom,num-ees
9597
- required:
9698
- qcom,controlled-remotely
99+
- num-channels
100+
- qcom,num-ees
97101
- required:
98102
- clocks
99103
- clock-names

Documentation/devicetree/bindings/phy/marvell,comphy-cp110.yaml

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,32 +47,34 @@ properties:
4747
const: 0
4848

4949
clocks:
50+
minItems: 1
5051
maxItems: 3
51-
description: Reference clocks for CP110; MG clock, MG Core clock, AXI clock
5252

5353
clock-names:
54-
items:
55-
- const: mg_clk
56-
- const: mg_core_clk
57-
- const: axi_clk
54+
minItems: 1
55+
maxItems: 3
5856

5957
marvell,system-controller:
6058
description: Phandle to the Marvell system controller (CP110 only)
6159
$ref: /schemas/types.yaml#/definitions/phandle
6260

6361
patternProperties:
64-
'^phy@[0-2]$':
62+
'^phy@[0-5]$':
6563
description: A COMPHY lane child node
6664
type: object
6765
additionalProperties: false
6866

6967
properties:
7068
reg:
7169
description: COMPHY lane number
70+
maximum: 5
7271

7372
'#phy-cells':
7473
const: 1
7574

75+
connector:
76+
type: object
77+
7678
required:
7779
- reg
7880
- '#phy-cells'
@@ -91,13 +93,24 @@ allOf:
9193

9294
then:
9395
properties:
94-
clocks: false
95-
clock-names: false
96+
clocks:
97+
maxItems: 1
98+
clock-names:
99+
const: xtal
96100

97101
required:
98102
- reg-names
99103

100104
else:
105+
properties:
106+
clocks:
107+
minItems: 3
108+
clock-names:
109+
items:
110+
- const: mg_clk
111+
- const: mg_core_clk
112+
- const: axi_clk
113+
101114
required:
102115
- marvell,system-controller
103116

Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,8 @@ allOf:
176176
compatible:
177177
contains:
178178
enum:
179+
- qcom,sa8775p-qmp-gen4x2-pcie-phy
180+
- qcom,sa8775p-qmp-gen4x4-pcie-phy
179181
- qcom,sc8280xp-qmp-gen3x1-pcie-phy
180182
- qcom,sc8280xp-qmp-gen3x2-pcie-phy
181183
- qcom,sc8280xp-qmp-gen3x4-pcie-phy
@@ -197,8 +199,6 @@ allOf:
197199
contains:
198200
enum:
199201
- qcom,qcs8300-qmp-gen4x2-pcie-phy
200-
- qcom,sa8775p-qmp-gen4x2-pcie-phy
201-
- qcom,sa8775p-qmp-gen4x4-pcie-phy
202202
then:
203203
properties:
204204
clocks:

Documentation/devicetree/bindings/serial/8250.yaml

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ allOf:
4848
oneOf:
4949
- required: [ clock-frequency ]
5050
- required: [ clocks ]
51-
5251
- if:
5352
properties:
5453
compatible:
@@ -60,12 +59,39 @@ allOf:
6059
items:
6160
- const: uartclk
6261
- const: reg
63-
else:
62+
- if:
63+
properties:
64+
compatible:
65+
contains:
66+
const: spacemit,k1-uart
67+
then:
6468
properties:
6569
clock-names:
6670
items:
6771
- const: core
6872
- const: bus
73+
- if:
74+
properties:
75+
compatible:
76+
contains:
77+
enum:
78+
- spacemit,k1-uart
79+
- nxp,lpc1850-uart
80+
then:
81+
required:
82+
- clocks
83+
- clock-names
84+
properties:
85+
clocks:
86+
minItems: 2
87+
clock-names:
88+
minItems: 2
89+
else:
90+
properties:
91+
clocks:
92+
maxItems: 1
93+
clock-names:
94+
maxItems: 1
6995

7096
properties:
7197
compatible:
@@ -162,6 +188,9 @@ properties:
162188
minItems: 1
163189
maxItems: 2
164190
oneOf:
191+
- enum:
192+
- main
193+
- uart
165194
- items:
166195
- const: core
167196
- const: bus
@@ -264,29 +293,6 @@ required:
264293
- reg
265294
- interrupts
266295

267-
if:
268-
properties:
269-
compatible:
270-
contains:
271-
enum:
272-
- spacemit,k1-uart
273-
- nxp,lpc1850-uart
274-
then:
275-
required:
276-
- clocks
277-
- clock-names
278-
properties:
279-
clocks:
280-
minItems: 2
281-
clock-names:
282-
minItems: 2
283-
else:
284-
properties:
285-
clocks:
286-
maxItems: 1
287-
clock-names:
288-
maxItems: 1
289-
290296
unevaluatedProperties: false
291297

292298
examples:

Documentation/devicetree/bindings/serial/brcm,bcm7271-uart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ properties:
4141
- const: dma_intr2
4242

4343
clocks:
44-
minItems: 1
44+
maxItems: 1
4545

4646
clock-names:
4747
const: sw_baud

Documentation/netlink/specs/conntrack.yaml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -575,8 +575,8 @@ operations:
575575
- nat-dst
576576
- timeout
577577
- mark
578-
- counter-orig
579-
- counter-reply
578+
- counters-orig
579+
- counters-reply
580580
- use
581581
- id
582582
- nat-dst
@@ -591,7 +591,6 @@ operations:
591591
request:
592592
value: 0x101
593593
attributes:
594-
- nfgen-family
595594
- mark
596595
- filter
597596
- status
@@ -608,8 +607,8 @@ operations:
608607
- nat-dst
609608
- timeout
610609
- mark
611-
- counter-orig
612-
- counter-reply
610+
- counters-orig
611+
- counters-reply
613612
- use
614613
- id
615614
- nat-dst

0 commit comments

Comments
 (0)