Skip to content

Commit 373edc0

Browse files
committed
Merge tag 'v6.18.21' into 6.18-main
This is the 6.18.21 stable release # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCgAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmnOUcQACgkQONu9yGCS # aT7ZbA/8D8VbHO0Zt29aAga17S6gsQXOlSZzr7yqXosTxHa6jC9eUMe2AZMVv5xf # 6plJfkOqefO99yNbpstUYVu/Ye7bMguE1JW90n6iomCtIH0CD1UdTBb9pqAAoOe/ # POio7KZaRZ3PnHlCFi/cWTRkVXba58AVZO7AiIMKm0Qg9qYtWDhGVq4j1CDbd+c0 # o5EvQR13kFtf3a+3Wr+mHll1SKJuzo4Obv0a+FD6/FQ+wp4iYV3dhDFqY7qoAdrB # WfY5DFcQfIuoN2q67/EIZ4ZL+1BY2vmAVRoZNWIPF3mk8pNhVYRBTxQciYdgNTfn # tabF9AJwXvxOnjYfF7tdxTSBoi0lGnf8RxnZt0k8rKmYrnmJa6drvPWT3bmV+BTy # H0QDVwK52ozslqhxxp9B3HXubYVZkbAzXjjqWtxMEVZVboFcfHgTSgrx8PFdPkoo # kTmwrFS8IB8ZPfkCXO9QkoV0NZyOCEemngzMOWozNi4zrkuRy6x5YDlisYdBwdiM # 2TE0fF9HmWtV2DpJqOiRGuvm2Y784E247WzSSZkP2YvahJJaaf3F8H4zq/ooUz3A # 4ALvMpuYIfyHiRq9NcMRWQnaWXlMwktEkCTFMBo7CtwAxtKbeRs8uCdy9a+ioYI7 # bGBiZjm9CZ+XbbVM43R5NZytFc70wWl1aoCEI8gURkfygcEU6io= # =Pjlf # -----END PGP SIGNATURE----- # gpg: Signature made Thu Apr 2 13:23:48 2026 CEST # gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E # gpg: Can't check signature: No public key
2 parents c2a5620 + 44c944a commit 373edc0

316 files changed

Lines changed: 3573 additions & 1170 deletions

File tree

Some content is hidden

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

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7925,6 +7925,9 @@
79257925
p = USB_QUIRK_SHORT_SET_ADDRESS_REQ_TIMEOUT
79267926
(Reduce timeout of the SET_ADDRESS
79277927
request from 5000 ms to 500 ms);
7928+
q = USB_QUIRK_FORCE_ONE_CONFIG (Device
7929+
claims zero configurations,
7930+
forcing to 1);
79287931
Example: quirks=0781:5580:bk,0a5c:5834:gij
79297932

79307933
usbhid.mousepoll=

Documentation/devicetree/bindings/sound/st,stm32-sai.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ allOf:
164164
properties:
165165
compatible:
166166
contains:
167-
const: st,stm32mph7-sai
167+
const: st,stm32h7-sai
168168
then:
169169
properties:
170170
clocks:

Documentation/filesystems/overlayfs.rst

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -783,6 +783,56 @@ controlled by the "uuid" mount option, which supports these values:
783783
mounted with "uuid=on".
784784

785785

786+
Durability and copy up
787+
----------------------
788+
789+
The fsync(2) system call ensures that the data and metadata of a file
790+
are safely written to the backing storage, which is expected to
791+
guarantee the existence of the information post system crash.
792+
793+
Without an fsync(2) call, there is no guarantee that the observed
794+
data after a system crash will be either the old or the new data, but
795+
in practice, the observed data after crash is often the old or new data
796+
or a mix of both.
797+
798+
When an overlayfs file is modified for the first time, copy up will
799+
create a copy of the lower file and its parent directories in the upper
800+
layer. Since the Linux filesystem API does not enforce any particular
801+
ordering on storing changes without explicit fsync(2) calls, in case
802+
of a system crash, the upper file could end up with no data at all
803+
(i.e. zeros), which would be an unusual outcome. To avoid this
804+
experience, overlayfs calls fsync(2) on the upper file before completing
805+
data copy up with rename(2) or link(2) to make the copy up "atomic".
806+
807+
By default, overlayfs does not explicitly call fsync(2) on copied up
808+
directories or on metadata-only copy up, so it provides no guarantee to
809+
persist the user's modification unless the user calls fsync(2).
810+
The fsync during copy up only guarantees that if a copy up is observed
811+
after a crash, the observed data is not zeroes or intermediate values
812+
from the copy up staging area.
813+
814+
On traditional local filesystems with a single journal (e.g. ext4, xfs),
815+
fsync on a file also persists the parent directory changes, because they
816+
are usually modified in the same transaction, so metadata durability during
817+
data copy up effectively comes for free. Overlayfs further limits risk by
818+
disallowing network filesystems as upper layer.
819+
820+
Overlayfs can be tuned to prefer performance or durability when storing
821+
to the underlying upper layer. This is controlled by the "fsync" mount
822+
option, which supports these values:
823+
824+
- "auto": (default)
825+
Call fsync(2) on upper file before completion of data copy up.
826+
No explicit fsync(2) on directory or metadata-only copy up.
827+
- "strict":
828+
Call fsync(2) on upper file and directories before completion of any
829+
copy up.
830+
- "volatile": [*]
831+
Prefer performance over durability (see `Volatile mount`_)
832+
833+
[*] The mount option "volatile" is an alias to "fsync=volatile".
834+
835+
786836
Volatile mount
787837
--------------
788838

Documentation/hwmon/adm1177.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ for details.
2727
Sysfs entries
2828
-------------
2929

30-
The following attributes are supported. Current maxim attribute
30+
The following attributes are supported. Current maximum attribute
3131
is read-write, all other attributes are read-only.
3232

33-
in0_input Measured voltage in microvolts.
33+
in0_input Measured voltage in millivolts.
3434

35-
curr1_input Measured current in microamperes.
36-
curr1_max_alarm Overcurrent alarm in microamperes.
35+
curr1_input Measured current in milliamperes.
36+
curr1_max Overcurrent shutdown threshold in milliamperes.

Documentation/hwmon/peci-cputemp.rst

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,9 @@ temp1_max Provides thermal control temperature of the CPU package
5151
temp1_crit Provides shutdown temperature of the CPU package which
5252
is also known as the maximum processor junction
5353
temperature, Tjmax or Tprochot.
54-
temp1_crit_hyst Provides the hysteresis value from Tcontrol to Tjmax of
55-
the CPU package.
54+
temp1_crit_hyst Provides the hysteresis temperature of the CPU
55+
package. Returns Tcontrol, the temperature at which
56+
the critical condition clears.
5657

5758
temp2_label "DTS"
5859
temp2_input Provides current temperature of the CPU package scaled
@@ -62,8 +63,9 @@ temp2_max Provides thermal control temperature of the CPU package
6263
temp2_crit Provides shutdown temperature of the CPU package which
6364
is also known as the maximum processor junction
6465
temperature, Tjmax or Tprochot.
65-
temp2_crit_hyst Provides the hysteresis value from Tcontrol to Tjmax of
66-
the CPU package.
66+
temp2_crit_hyst Provides the hysteresis temperature of the CPU
67+
package. Returns Tcontrol, the temperature at which
68+
the critical condition clears.
6769

6870
temp3_label "Tcontrol"
6971
temp3_input Provides current Tcontrol temperature of the CPU

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: GPL-2.0
22
VERSION = 6
33
PATCHLEVEL = 18
4-
SUBLEVEL = 20
4+
SUBLEVEL = 21
55
EXTRAVERSION =
66
NAME = Baby Opossum Posse
77

@@ -1588,7 +1588,7 @@ CLEAN_FILES += vmlinux.symvers modules-only.symvers \
15881588
modules.builtin.ranges vmlinux.o.map vmlinux.unstripped \
15891589
compile_commands.json rust/test \
15901590
rust-project.json .vmlinux.objs .vmlinux.export.c \
1591-
.builtin-dtbs-list .builtin-dtb.S
1591+
.builtin-dtbs-list .builtin-dtbs.S
15921592

15931593
# Directories & files removed with 'make mrproper'
15941594
MRPROPER_FILES += include/config include/generated \

arch/arm64/boot/dts/freescale/imx8mn-tqma8mqnl-mba8mx.dts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@
6969
samsung,esc-clock-frequency = <20000000>;
7070
};
7171

72+
&reg_usdhc2_vqmmc {
73+
status = "okay";
74+
};
75+
7276
&sai3 {
7377
assigned-clocks = <&clk IMX8MN_CLK_SAI3>;
7478
assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>;
@@ -216,8 +220,7 @@
216220
<MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4>,
217221
<MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4>,
218222
<MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4>,
219-
<MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4>,
220-
<MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x84>;
223+
<MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4>;
221224
};
222225

223226
pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
@@ -226,8 +229,7 @@
226229
<MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4>,
227230
<MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4>,
228231
<MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4>,
229-
<MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4>,
230-
<MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x84>;
232+
<MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4>;
231233
};
232234

233235
pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
@@ -236,8 +238,7 @@
236238
<MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4>,
237239
<MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4>,
238240
<MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4>,
239-
<MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4>,
240-
<MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x84>;
241+
<MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4>;
241242
};
242243

243244
pinctrl_usdhc2_gpio: usdhc2-gpiogrp {

arch/arm64/boot/dts/freescale/imx8mn-tqma8mqnl.dtsi

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,20 @@
3030
regulator-max-microvolt = <3300000>;
3131
};
3232

33+
reg_usdhc2_vqmmc: regulator-usdhc2-vqmmc {
34+
compatible = "regulator-gpio";
35+
pinctrl-names = "default";
36+
pinctrl-0 = <&pinctrl_reg_usdhc2_vqmmc>;
37+
regulator-name = "V_SD2";
38+
regulator-min-microvolt = <1800000>;
39+
regulator-max-microvolt = <3300000>;
40+
gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
41+
states = <1800000 0x1>,
42+
<3300000 0x0>;
43+
vin-supply = <&ldo5_reg>;
44+
status = "disabled";
45+
};
46+
3347
reserved-memory {
3448
#address-cells = <2>;
3549
#size-cells = <2>;
@@ -233,6 +247,10 @@
233247
vddio-supply = <&ldo3_reg>;
234248
};
235249

250+
&usdhc2 {
251+
vqmmc-supply = <&reg_usdhc2_vqmmc>;
252+
};
253+
236254
&usdhc3 {
237255
pinctrl-names = "default", "state_100mhz", "state_200mhz";
238256
pinctrl-0 = <&pinctrl_usdhc3>;
@@ -287,6 +305,10 @@
287305
fsl,pins = <MX8MN_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x84>;
288306
};
289307

308+
pinctrl_reg_usdhc2_vqmmc: regusdhc2vqmmcgrp {
309+
fsl,pins = <MX8MN_IOMUXC_GPIO1_IO04_GPIO1_IO4 0xc0>;
310+
};
311+
290312
pinctrl_usdhc3: usdhc3grp {
291313
fsl,pins = <MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK 0x1d4>,
292314
<MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d2>,

arch/arm64/kvm/reset.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,20 @@ void kvm_reset_vcpu(struct kvm_vcpu *vcpu)
247247
kvm_vcpu_set_be(vcpu);
248248

249249
*vcpu_pc(vcpu) = target_pc;
250+
251+
/*
252+
* We may come from a state where either a PC update was
253+
* pending (SMC call resulting in PC being increpented to
254+
* skip the SMC) or a pending exception. Make sure we get
255+
* rid of all that, as this cannot be valid out of reset.
256+
*
257+
* Note that clearing the exception mask also clears PC
258+
* updates, but that's an implementation detail, and we
259+
* really want to make it explicit.
260+
*/
261+
vcpu_clear_flag(vcpu, PENDING_EXCEPTION);
262+
vcpu_clear_flag(vcpu, EXCEPT_MASK);
263+
vcpu_clear_flag(vcpu, INCREMENT_PC);
250264
vcpu_set_reg(vcpu, 0, reset_state.r0);
251265
}
252266

arch/loongarch/include/asm/linkage.h

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,40 @@
4141
.cfi_endproc; \
4242
SYM_END(name, SYM_T_NONE)
4343

44+
/*
45+
* This is for the signal handler trampoline, which is used as the return
46+
* address of the signal handlers in userspace instead of called normally.
47+
* The long standing libgcc bug https://gcc.gnu.org/PR124050 requires a
48+
* nop between .cfi_startproc and the actual address of the trampoline, so
49+
* we cannot simply use SYM_FUNC_START.
50+
*
51+
* This wrapper also contains all the .cfi_* directives for recovering
52+
* the content of the GPRs and the "return address" (where the rt_sigreturn
53+
* syscall will jump to), assuming there is a struct rt_sigframe (where
54+
* a struct sigcontext containing those information we need to recover) at
55+
* $sp. The "DWARF for the LoongArch(TM) Architecture" manual states
56+
* column 0 is for $zero, but it does not make too much sense to
57+
* save/restore the hardware zero register. Repurpose this column here
58+
* for the return address (here it's not the content of $ra we cannot use
59+
* the default column 3).
60+
*/
61+
#define SYM_SIGFUNC_START(name) \
62+
.cfi_startproc; \
63+
.cfi_signal_frame; \
64+
.cfi_def_cfa 3, RT_SIGFRAME_SC; \
65+
.cfi_return_column 0; \
66+
.cfi_offset 0, SC_PC; \
67+
\
68+
.irp num, 1, 2, 3, 4, 5, 6, 7, 8, \
69+
9, 10, 11, 12, 13, 14, 15, 16, \
70+
17, 18, 19, 20, 21, 22, 23, 24, \
71+
25, 26, 27, 28, 29, 30, 31; \
72+
.cfi_offset \num, SC_REGS + \num * SZREG; \
73+
.endr; \
74+
\
75+
nop; \
76+
SYM_START(name, SYM_L_GLOBAL, SYM_A_ALIGN)
77+
78+
#define SYM_SIGFUNC_END(name) SYM_FUNC_END(name)
79+
4480
#endif

0 commit comments

Comments
 (0)