Skip to content

Commit 4663a9c

Browse files
committed
Merge branch 'linux-rolling-stable' into kernel-mainline
2 parents 62714b5 + 288a2f8 commit 4663a9c

File tree

240 files changed

+2166
-912
lines changed

Some content is hidden

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

240 files changed

+2166
-912
lines changed

Documentation/devicetree/bindings/mmc/sdhci-msm.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ properties:
6969
maxItems: 4
7070

7171
clocks:
72-
minItems: 3
72+
minItems: 2
7373
items:
7474
- description: Main peripheral bus clock, PCLK/HCLK - AHB Bus clock
7575
- description: SDC MMC clock, MCLK

Documentation/networking/representors.rst

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,11 @@ How are representors identified?
162162
The representor netdevice should *not* directly refer to a PCIe device (e.g.
163163
through ``net_dev->dev.parent`` / ``SET_NETDEV_DEV()``), either of the
164164
representee or of the switchdev function.
165-
Instead, it should implement the ``ndo_get_devlink_port()`` netdevice op, which
166-
the kernel uses to provide the ``phys_switch_id`` and ``phys_port_name`` sysfs
167-
nodes. (Some legacy drivers implement ``ndo_get_port_parent_id()`` and
165+
Instead, the driver should use the ``SET_NETDEV_DEVLINK_PORT`` macro to
166+
assign a devlink port instance to the netdevice before registering the
167+
netdevice; the kernel uses the devlink port to provide the ``phys_switch_id``
168+
and ``phys_port_name`` sysfs nodes.
169+
(Some legacy drivers implement ``ndo_get_port_parent_id()`` and
168170
``ndo_get_phys_port_name()`` directly, but this is deprecated.) See
169171
:ref:`Documentation/networking/devlink/devlink-port.rst <devlink_port>` for the
170172
details of this API.

Documentation/rust/general-information.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ target with the same invocation used for compilation, e.g.::
2929

3030
To read the docs locally in your web browser, run e.g.::
3131

32-
xdg-open rust/doc/kernel/index.html
32+
xdg-open Documentation/output/rust/rustdoc/kernel/index.html
3333

3434
To learn about how to write the documentation, please see coding-guidelines.rst.
3535

Documentation/rust/index.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@ Rust
66
Documentation related to Rust within the kernel. To start using Rust
77
in the kernel, please read the quick-start.rst guide.
88

9+
.. only:: rustdoc and html
10+
11+
You can also browse `rustdoc documentation <rustdoc/kernel/index.html>`_.
12+
13+
.. only:: not rustdoc and html
14+
15+
This documentation does not include rustdoc generated information.
16+
917
.. toctree::
1018
:maxdepth: 1
1119

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 = 5
4-
SUBLEVEL = 8
4+
SUBLEVEL = 9
55
EXTRAVERSION =
66
NAME = Hurr durr I'ma ninja sloth
77

@@ -1595,7 +1595,7 @@ endif
15951595
# Directories & files removed with 'make clean'
15961596
CLEAN_FILES += include/ksym vmlinux.symvers modules-only.symvers \
15971597
modules.builtin modules.builtin.modinfo modules.nsdeps \
1598-
compile_commands.json .thinlto-cache rust/test rust/doc \
1598+
compile_commands.json .thinlto-cache rust/test \
15991599
rust-project.json .vmlinux.objs .vmlinux.export.c
16001600

16011601
# Directories & files removed with 'make mrproper'

arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -640,6 +640,7 @@
640640
&uart3 {
641641
interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
642642
&omap4_pmx_core 0x17c>;
643+
overrun-throttle-ms = <500>;
643644
};
644645

645646
&uart4 {

arch/arm64/boot/dts/mediatek/mt8195.dtsi

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2958,7 +2958,7 @@
29582958
clock-names = "merge","merge_async";
29592959
power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
29602960
mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0xc000 0x1000>;
2961-
mediatek,merge-mute = <1>;
2961+
mediatek,merge-mute;
29622962
resets = <&vdosys1 MT8195_VDOSYS1_SW0_RST_B_MERGE0_DL_ASYNC>;
29632963
};
29642964

@@ -2971,7 +2971,7 @@
29712971
clock-names = "merge","merge_async";
29722972
power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
29732973
mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0xd000 0x1000>;
2974-
mediatek,merge-mute = <1>;
2974+
mediatek,merge-mute;
29752975
resets = <&vdosys1 MT8195_VDOSYS1_SW0_RST_B_MERGE1_DL_ASYNC>;
29762976
};
29772977

@@ -2984,7 +2984,7 @@
29842984
clock-names = "merge","merge_async";
29852985
power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
29862986
mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0xe000 0x1000>;
2987-
mediatek,merge-mute = <1>;
2987+
mediatek,merge-mute;
29882988
resets = <&vdosys1 MT8195_VDOSYS1_SW0_RST_B_MERGE2_DL_ASYNC>;
29892989
};
29902990

@@ -2997,7 +2997,7 @@
29972997
clock-names = "merge","merge_async";
29982998
power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
29992999
mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0xf000 0x1000>;
3000-
mediatek,merge-mute = <1>;
3000+
mediatek,merge-mute;
30013001
resets = <&vdosys1 MT8195_VDOSYS1_SW0_RST_B_MERGE3_DL_ASYNC>;
30023002
};
30033003

@@ -3010,7 +3010,7 @@
30103010
clock-names = "merge","merge_async";
30113011
power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
30123012
mediatek,gce-client-reg = <&gce0 SUBSYS_1c11XXXX 0x0000 0x1000>;
3013-
mediatek,merge-fifo-en = <1>;
3013+
mediatek,merge-fifo-en;
30143014
resets = <&vdosys1 MT8195_VDOSYS1_SW0_RST_B_MERGE4_DL_ASYNC>;
30153015
};
30163016

arch/powerpc/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -917,7 +917,7 @@ config ARCH_FORCE_MAX_ORDER
917917
default "6" if PPC32 && PPC_64K_PAGES
918918
range 4 10 if PPC32 && PPC_256K_PAGES
919919
default "4" if PPC32 && PPC_256K_PAGES
920-
range 10 10
920+
range 10 12
921921
default "10"
922922
help
923923
The kernel page allocator limits the size of maximal physically

arch/powerpc/lib/qspinlock.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,9 @@ static __always_inline bool yield_to_prev(struct qspinlock *lock, struct qnode *
406406
if ((yield_count & 1) == 0)
407407
goto yield_prev; /* owner vcpu is running */
408408

409+
if (get_owner_cpu(READ_ONCE(lock->val)) != yield_cpu)
410+
goto yield_prev; /* re-sample lock owner */
411+
409412
spin_end();
410413

411414
preempted = true;

arch/s390/pci/pci_dma.c

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,17 @@ static void s390_dma_unmap_sg(struct device *dev, struct scatterlist *sg,
564564
s->dma_length = 0;
565565
}
566566
}
567+
568+
static unsigned long *bitmap_vzalloc(size_t bits, gfp_t flags)
569+
{
570+
size_t n = BITS_TO_LONGS(bits);
571+
size_t bytes;
572+
573+
if (unlikely(check_mul_overflow(n, sizeof(unsigned long), &bytes)))
574+
return NULL;
575+
576+
return vzalloc(bytes);
577+
}
567578

568579
int zpci_dma_init_device(struct zpci_dev *zdev)
569580
{
@@ -604,13 +615,13 @@ int zpci_dma_init_device(struct zpci_dev *zdev)
604615
zdev->end_dma - zdev->start_dma + 1);
605616
zdev->end_dma = zdev->start_dma + zdev->iommu_size - 1;
606617
zdev->iommu_pages = zdev->iommu_size >> PAGE_SHIFT;
607-
zdev->iommu_bitmap = vzalloc(zdev->iommu_pages / 8);
618+
zdev->iommu_bitmap = bitmap_vzalloc(zdev->iommu_pages, GFP_KERNEL);
608619
if (!zdev->iommu_bitmap) {
609620
rc = -ENOMEM;
610621
goto free_dma_table;
611622
}
612623
if (!s390_iommu_strict) {
613-
zdev->lazy_bitmap = vzalloc(zdev->iommu_pages / 8);
624+
zdev->lazy_bitmap = bitmap_vzalloc(zdev->iommu_pages, GFP_KERNEL);
614625
if (!zdev->lazy_bitmap) {
615626
rc = -ENOMEM;
616627
goto free_bitmap;

arch/x86/boot/compressed/sev.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,16 @@ static enum es_result vc_read_mem(struct es_em_ctxt *ctxt,
103103
return ES_OK;
104104
}
105105

106+
static enum es_result vc_ioio_check(struct es_em_ctxt *ctxt, u16 port, size_t size)
107+
{
108+
return ES_OK;
109+
}
110+
111+
static bool fault_in_kernel_space(unsigned long address)
112+
{
113+
return false;
114+
}
115+
106116
#undef __init
107117
#define __init
108118

arch/x86/include/asm/fpu/api.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,8 @@ static inline void fpu_update_guest_xfd(struct fpu_guest *guest_fpu, u64 xfd) {
148148
static inline void fpu_sync_guest_vmexit_xfd_state(void) { }
149149
#endif
150150

151-
extern void fpu_copy_guest_fpstate_to_uabi(struct fpu_guest *gfpu, void *buf, unsigned int size, u32 pkru);
151+
extern void fpu_copy_guest_fpstate_to_uabi(struct fpu_guest *gfpu, void *buf,
152+
unsigned int size, u64 xfeatures, u32 pkru);
152153
extern int fpu_copy_uabi_to_guest_fpstate(struct fpu_guest *gfpu, const void *buf, u64 xcr0, u32 *vpkru);
153154

154155
static inline void fpstate_set_confidential(struct fpu_guest *gfpu)

arch/x86/include/asm/svm.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ enum avic_ipi_failure_cause {
268268
AVIC_IPI_FAILURE_TARGET_NOT_RUNNING,
269269
AVIC_IPI_FAILURE_INVALID_TARGET,
270270
AVIC_IPI_FAILURE_INVALID_BACKING_PAGE,
271+
AVIC_IPI_FAILURE_INVALID_IPI_VECTOR,
271272
};
272273

273274
#define AVIC_PHYSICAL_MAX_INDEX_MASK GENMASK_ULL(8, 0)

arch/x86/kernel/fpu/core.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -369,14 +369,15 @@ int fpu_swap_kvm_fpstate(struct fpu_guest *guest_fpu, bool enter_guest)
369369
EXPORT_SYMBOL_GPL(fpu_swap_kvm_fpstate);
370370

371371
void fpu_copy_guest_fpstate_to_uabi(struct fpu_guest *gfpu, void *buf,
372-
unsigned int size, u32 pkru)
372+
unsigned int size, u64 xfeatures, u32 pkru)
373373
{
374374
struct fpstate *kstate = gfpu->fpstate;
375375
union fpregs_state *ustate = buf;
376376
struct membuf mb = { .p = buf, .left = size };
377377

378378
if (cpu_feature_enabled(X86_FEATURE_XSAVE)) {
379-
__copy_xstate_to_uabi_buf(mb, kstate, pkru, XSTATE_COPY_XSAVE);
379+
__copy_xstate_to_uabi_buf(mb, kstate, xfeatures, pkru,
380+
XSTATE_COPY_XSAVE);
380381
} else {
381382
memcpy(&ustate->fxsave, &kstate->regs.fxsave,
382383
sizeof(ustate->fxsave));

arch/x86/kernel/fpu/xstate.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1053,6 +1053,7 @@ static void copy_feature(bool from_xstate, struct membuf *to, void *xstate,
10531053
* __copy_xstate_to_uabi_buf - Copy kernel saved xstate to a UABI buffer
10541054
* @to: membuf descriptor
10551055
* @fpstate: The fpstate buffer from which to copy
1056+
* @xfeatures: The mask of xfeatures to save (XSAVE mode only)
10561057
* @pkru_val: The PKRU value to store in the PKRU component
10571058
* @copy_mode: The requested copy mode
10581059
*
@@ -1063,7 +1064,8 @@ static void copy_feature(bool from_xstate, struct membuf *to, void *xstate,
10631064
* It supports partial copy but @to.pos always starts from zero.
10641065
*/
10651066
void __copy_xstate_to_uabi_buf(struct membuf to, struct fpstate *fpstate,
1066-
u32 pkru_val, enum xstate_copy_mode copy_mode)
1067+
u64 xfeatures, u32 pkru_val,
1068+
enum xstate_copy_mode copy_mode)
10671069
{
10681070
const unsigned int off_mxcsr = offsetof(struct fxregs_state, mxcsr);
10691071
struct xregs_state *xinit = &init_fpstate.regs.xsave;
@@ -1087,7 +1089,7 @@ void __copy_xstate_to_uabi_buf(struct membuf to, struct fpstate *fpstate,
10871089
break;
10881090

10891091
case XSTATE_COPY_XSAVE:
1090-
header.xfeatures &= fpstate->user_xfeatures;
1092+
header.xfeatures &= fpstate->user_xfeatures & xfeatures;
10911093
break;
10921094
}
10931095

@@ -1189,6 +1191,7 @@ void copy_xstate_to_uabi_buf(struct membuf to, struct task_struct *tsk,
11891191
enum xstate_copy_mode copy_mode)
11901192
{
11911193
__copy_xstate_to_uabi_buf(to, tsk->thread.fpu.fpstate,
1194+
tsk->thread.fpu.fpstate->user_xfeatures,
11921195
tsk->thread.pkru, copy_mode);
11931196
}
11941197

@@ -1540,10 +1543,7 @@ static int fpstate_realloc(u64 xfeatures, unsigned int ksize,
15401543
fpregs_restore_userregs();
15411544

15421545
newfps->xfeatures = curfps->xfeatures | xfeatures;
1543-
1544-
if (!guest_fpu)
1545-
newfps->user_xfeatures = curfps->user_xfeatures | xfeatures;
1546-
1546+
newfps->user_xfeatures = curfps->user_xfeatures | xfeatures;
15471547
newfps->xfd = curfps->xfd & ~xfeatures;
15481548

15491549
/* Do the final updates within the locked region */

arch/x86/kernel/fpu/xstate.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ enum xstate_copy_mode {
4343

4444
struct membuf;
4545
extern void __copy_xstate_to_uabi_buf(struct membuf to, struct fpstate *fpstate,
46-
u32 pkru_val, enum xstate_copy_mode copy_mode);
46+
u64 xfeatures, u32 pkru_val,
47+
enum xstate_copy_mode copy_mode);
4748
extern void copy_xstate_to_uabi_buf(struct membuf to, struct task_struct *tsk,
4849
enum xstate_copy_mode mode);
4950
extern int copy_uabi_from_kernel_to_xstate(struct fpstate *fpstate, const void *kbuf, u32 *pkru);

0 commit comments

Comments
 (0)