Skip to content

Commit

Permalink
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Browse files Browse the repository at this point in the history
Cross-merge networking fixes after downstream PR.

Conflicts:

drivers/net/ethernet/stmicro/stmmac/dwmac5.c
drivers/net/ethernet/stmicro/stmmac/dwmac5.h
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
drivers/net/ethernet/stmicro/stmmac/hwif.h
  37e4b8d ("net: stmmac: fix FPE events losing")
  c3f3b97 ("net: stmmac: Refactor EST implementation")
https://lore.kernel.org/all/[email protected]/

Adjacent changes:

net/ipv4/tcp_ao.c
  9396c4e ("net/tcp: Don't store TCP-AO maclen on reqsk")
  7b0f570 ("tcp: Move TCP-AO bits from cookie_v[46]_check() to tcp_ao_syncookie().")

Signed-off-by: Jakub Kicinski <[email protected]>
  • Loading branch information
kuba-moo committed Dec 8, 2023
2 parents 87e839c + 5e3f5b8 commit 2483e7f
Show file tree
Hide file tree
Showing 345 changed files with 3,496 additions and 1,611 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ title: Analog Devices ADV7533/35 HDMI Encoders
maintainers:
- Laurent Pinchart <[email protected]>

allOf:
- $ref: /schemas/sound/dai-common.yaml#

description: |
The ADV7533 and ADV7535 are HDMI audio and video transmitters
compatible with HDMI 1.4 and DVI 1.0. They support color space
Expand Down Expand Up @@ -89,6 +92,9 @@ properties:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [ 1, 2, 3, 4 ]

"#sound-dai-cells":
const: 0

ports:
description:
The ADV7533/35 has two video ports and one audio port.
Expand Down
20 changes: 19 additions & 1 deletion Documentation/devicetree/bindings/display/fsl,lcdif.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,10 @@ properties:
minItems: 1

interrupts:
maxItems: 1
items:
- description: LCDIF DMA interrupt
- description: LCDIF Error interrupt
minItems: 1

power-domains:
maxItems: 1
Expand Down Expand Up @@ -131,6 +134,21 @@ allOf:
then:
required:
- power-domains
- if:
properties:
compatible:
contains:
enum:
- fsl,imx23-lcdif
then:
properties:
interrupts:
minItems: 2
maxItems: 2
else:
properties:
interrupts:
maxItems: 1

examples:
- |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ maintainers:
- Chun-Kuang Hu <[email protected]>
- Philipp Zabel <[email protected]>
- Jitao Shi <[email protected]>
- Xinlei Lee <[email protected]>

description: |
The MediaTek DSI function block is a sink of the display subsystem and can
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@ properties:
- description: MPM pin number
- description: GIC SPI number for the MPM pin

'#power-domain-cells':
const: 0

required:
- compatible
- reg
Expand Down Expand Up @@ -93,4 +96,5 @@ examples:
<86 183>,
<90 260>,
<91 260>;
#power-domain-cells = <0>;
};
2 changes: 1 addition & 1 deletion Documentation/networking/tcp_ao.rst
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ also [6.1]::
when it is no longer considered permitted.

Linux TCP-AO will try its best to prevent you from removing a key that's
being used, considering it a key management failure. But sine keeping
being used, considering it a key management failure. But since keeping
an outdated key may become a security issue and as a peer may
unintentionally prevent the removal of an old key by always setting
it as RNextKeyID - a forced key removal mechanism is provided, where
Expand Down
11 changes: 6 additions & 5 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -5068,7 +5068,6 @@ CLANG CONTROL FLOW INTEGRITY SUPPORT
M: Sami Tolvanen <[email protected]>
M: Kees Cook <[email protected]>
R: Nathan Chancellor <[email protected]>
R: Nick Desaulniers <[email protected]>
L: [email protected]
S: Supported
B: https://github.com/ClangBuiltLinux/linux/issues
Expand All @@ -5083,8 +5082,9 @@ F: .clang-format

CLANG/LLVM BUILD SUPPORT
M: Nathan Chancellor <[email protected]>
M: Nick Desaulniers <[email protected]>
R: Tom Rix <[email protected]>
R: Nick Desaulniers <[email protected]>
R: Bill Wendling <[email protected]>
R: Justin Stitt <[email protected]>
L: [email protected]
S: Supported
W: https://clangbuiltlinux.github.io/
Expand Down Expand Up @@ -5234,7 +5234,6 @@ F: drivers/platform/x86/compal-laptop.c

COMPILER ATTRIBUTES
M: Miguel Ojeda <[email protected]>
R: Nick Desaulniers <[email protected]>
S: Maintained
F: include/linux/compiler_attributes.h

Expand Down Expand Up @@ -11504,7 +11503,6 @@ F: fs/autofs/
KERNEL BUILD + files below scripts/ (unless maintained elsewhere)
M: Masahiro Yamada <[email protected]>
R: Nathan Chancellor <[email protected]>
R: Nick Desaulniers <[email protected]>
R: Nicolas Schier <[email protected]>
L: [email protected]
S: Maintained
Expand Down Expand Up @@ -15059,6 +15057,7 @@ F: lib/random32.c
F: net/
F: tools/net/
F: tools/testing/selftests/net/
X: net/9p/
X: net/bluetooth/

NETWORKING [IPSEC]
Expand Down Expand Up @@ -17933,6 +17932,8 @@ L: [email protected]
L: [email protected]
S: Maintained
F: drivers/iommu/arm/arm-smmu/qcom_iommu.c
F: drivers/iommu/arm/arm-smmu/arm-smmu-qcom*
F: drivers/iommu/msm_iommu*

QUALCOMM IPC ROUTER (QRTR) DRIVER
M: Manivannan Sadhasivam <[email protected]>
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
VERSION = 6
PATCHLEVEL = 7
SUBLEVEL = 0
EXTRAVERSION = -rc3
EXTRAVERSION = -rc4
NAME = Hurr durr I'ma ninja sloth

# *DOCUMENTATION*
Expand Down
4 changes: 4 additions & 0 deletions arch/arm64/kernel/cpufeature.c
Original file line number Diff line number Diff line change
Expand Up @@ -1839,6 +1839,10 @@ static int __init __kpti_install_ng_mappings(void *__unused)

static void __init kpti_install_ng_mappings(void)
{
/* Check whether KPTI is going to be used */
if (!cpus_have_cap(ARM64_UNMAP_KERNEL_AT_EL0))
return;

/*
* We don't need to rewrite the page-tables if either we've done
* it already or we have KASLR enabled and therefore have not
Expand Down
2 changes: 1 addition & 1 deletion arch/parisc/include/asm/bug.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
asm volatile("\n" \
"1:\t" PARISC_BUG_BREAK_ASM "\n" \
"\t.pushsection __bug_table,\"a\"\n" \
"\t.align %2\n" \
"\t.align 4\n" \
"2:\t" __BUG_REL(1b) "\n" \
"\t.short %0\n" \
"\t.blockz %1-4-2\n" \
Expand Down
13 changes: 13 additions & 0 deletions arch/powerpc/kernel/fpu.S
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,15 @@
#include <asm/feature-fixups.h>

#ifdef CONFIG_VSX
#define __REST_1FPVSR(n,c,base) \
BEGIN_FTR_SECTION \
b 2f; \
END_FTR_SECTION_IFSET(CPU_FTR_VSX); \
REST_FPR(n,base); \
b 3f; \
2: REST_VSR(n,c,base); \
3:

#define __REST_32FPVSRS(n,c,base) \
BEGIN_FTR_SECTION \
b 2f; \
Expand All @@ -41,9 +50,11 @@ END_FTR_SECTION_IFSET(CPU_FTR_VSX); \
2: SAVE_32VSRS(n,c,base); \
3:
#else
#define __REST_1FPVSR(n,b,base) REST_FPR(n, base)
#define __REST_32FPVSRS(n,b,base) REST_32FPRS(n, base)
#define __SAVE_32FPVSRS(n,b,base) SAVE_32FPRS(n, base)
#endif
#define REST_1FPVSR(n,c,base) __REST_1FPVSR(n,__REG_##c,__REG_##base)
#define REST_32FPVSRS(n,c,base) __REST_32FPVSRS(n,__REG_##c,__REG_##base)
#define SAVE_32FPVSRS(n,c,base) __SAVE_32FPVSRS(n,__REG_##c,__REG_##base)

Expand All @@ -67,6 +78,7 @@ _GLOBAL(store_fp_state)
SAVE_32FPVSRS(0, R4, R3)
mffs fr0
stfd fr0,FPSTATE_FPSCR(r3)
REST_1FPVSR(0, R4, R3)
blr
EXPORT_SYMBOL(store_fp_state)

Expand Down Expand Up @@ -138,4 +150,5 @@ _GLOBAL(save_fpu)
2: SAVE_32FPVSRS(0, R4, R6)
mffs fr0
stfd fr0,FPSTATE_FPSCR(r6)
REST_1FPVSR(0, R4, R6)
blr
6 changes: 3 additions & 3 deletions arch/powerpc/kernel/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -1198,11 +1198,11 @@ void kvmppc_save_user_regs(void)

usermsr = current->thread.regs->msr;

/* Caller has enabled FP/VEC/VSX/TM in MSR */
if (usermsr & MSR_FP)
save_fpu(current);

__giveup_fpu(current);
if (usermsr & MSR_VEC)
save_altivec(current);
__giveup_altivec(current);

#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
if (usermsr & MSR_TM) {
Expand Down
2 changes: 2 additions & 0 deletions arch/powerpc/kernel/vector.S
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ _GLOBAL(store_vr_state)
mfvscr v0
li r4, VRSTATE_VSCR
stvx v0, r4, r3
lvx v0, 0, r3
blr
EXPORT_SYMBOL(store_vr_state)

Expand Down Expand Up @@ -109,6 +110,7 @@ _GLOBAL(save_altivec)
mfvscr v0
li r4,VRSTATE_VSCR
stvx v0,r4,r7
lvx v0,0,r7
blr

#ifdef CONFIG_VSX
Expand Down
1 change: 1 addition & 0 deletions arch/x86/coco/tdx/tdx.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include <asm/coco.h>
#include <asm/tdx.h>
#include <asm/vmx.h>
#include <asm/ia32.h>
#include <asm/insn.h>
#include <asm/insn-eval.h>
#include <asm/pgtable.h>
Expand Down
93 changes: 92 additions & 1 deletion arch/x86/entry/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include <xen/events.h>
#endif

#include <asm/apic.h>
#include <asm/desc.h>
#include <asm/traps.h>
#include <asm/vdso.h>
Expand Down Expand Up @@ -167,7 +168,96 @@ static __always_inline void do_syscall_32_irqs_on(struct pt_regs *regs, int nr)
}
}

/* Handles int $0x80 */
#ifdef CONFIG_IA32_EMULATION
static __always_inline bool int80_is_external(void)
{
const unsigned int offs = (0x80 / 32) * 0x10;
const u32 bit = BIT(0x80 % 32);

/* The local APIC on XENPV guests is fake */
if (cpu_feature_enabled(X86_FEATURE_XENPV))
return false;

/*
* If vector 0x80 is set in the APIC ISR then this is an external
* interrupt. Either from broken hardware or injected by a VMM.
*
* Note: In guest mode this is only valid for secure guests where
* the secure module fully controls the vAPIC exposed to the guest.
*/
return apic_read(APIC_ISR + offs) & bit;
}

/**
* int80_emulation - 32-bit legacy syscall entry
*
* This entry point can be used by 32-bit and 64-bit programs to perform
* 32-bit system calls. Instances of INT $0x80 can be found inline in
* various programs and libraries. It is also used by the vDSO's
* __kernel_vsyscall fallback for hardware that doesn't support a faster
* entry method. Restarted 32-bit system calls also fall back to INT
* $0x80 regardless of what instruction was originally used to do the
* system call.
*
* This is considered a slow path. It is not used by most libc
* implementations on modern hardware except during process startup.
*
* The arguments for the INT $0x80 based syscall are on stack in the
* pt_regs structure:
* eax: system call number
* ebx, ecx, edx, esi, edi, ebp: arg1 - arg 6
*/
DEFINE_IDTENTRY_RAW(int80_emulation)
{
int nr;

/* Kernel does not use INT $0x80! */
if (unlikely(!user_mode(regs))) {
irqentry_enter(regs);
instrumentation_begin();
panic("Unexpected external interrupt 0x80\n");
}

/*
* Establish kernel context for instrumentation, including for
* int80_is_external() below which calls into the APIC driver.
* Identical for soft and external interrupts.
*/
enter_from_user_mode(regs);

instrumentation_begin();
add_random_kstack_offset();

/* Validate that this is a soft interrupt to the extent possible */
if (unlikely(int80_is_external()))
panic("Unexpected external interrupt 0x80\n");

/*
* The low level idtentry code pushed -1 into regs::orig_ax
* and regs::ax contains the syscall number.
*
* User tracing code (ptrace or signal handlers) might assume
* that the regs::orig_ax contains a 32-bit number on invoking
* a 32-bit syscall.
*
* Establish the syscall convention by saving the 32bit truncated
* syscall number in regs::orig_ax and by invalidating regs::ax.
*/
regs->orig_ax = regs->ax & GENMASK(31, 0);
regs->ax = -ENOSYS;

nr = syscall_32_enter(regs);

local_irq_enable();
nr = syscall_enter_from_user_mode_work(regs, nr);
do_syscall_32_irqs_on(regs, nr);

instrumentation_end();
syscall_exit_to_user_mode(regs);
}
#else /* CONFIG_IA32_EMULATION */

/* Handles int $0x80 on a 32bit kernel */
__visible noinstr void do_int80_syscall_32(struct pt_regs *regs)
{
int nr = syscall_32_enter(regs);
Expand All @@ -186,6 +276,7 @@ __visible noinstr void do_int80_syscall_32(struct pt_regs *regs)
instrumentation_end();
syscall_exit_to_user_mode(regs);
}
#endif /* !CONFIG_IA32_EMULATION */

static noinstr bool __do_fast_syscall_32(struct pt_regs *regs)
{
Expand Down
Loading

0 comments on commit 2483e7f

Please sign in to comment.