Linux Documentation
 help / color / mirror / Atom feed
* Re: [PATCHv7 06/18] LoongArch/mm: Align vmemmap to maximal folio size
From: patchwork-bot+linux-riscv @ 2026-04-30  3:25 UTC (permalink / raw)
  To: Kiryl Shutsemau
  Cc: linux-riscv, akpm, muchun.song, david, willy, usamaarif642, fvdl,
	osalvador, rppt, vbabka, lorenzo.stoakes, ziy, bhe, mhocko,
	hannes, corbet, chenhuacai, kernel, palmer, paul.walmsley, aou,
	alex, kernel-team, linux-mm, linux-kernel, linux-doc, loongarch
In-Reply-To: <20260227193030.272078-6-kas@kernel.org>

Hello:

This patch was applied to riscv/linux.git (fixes)
by Andrew Morton <akpm@linux-foundation.org>:

On Fri, 27 Feb 2026 19:30:07 +0000 you wrote:
> From: Kiryl Shutsemau <kas@kernel.org>
> 
> The upcoming change to the HugeTLB vmemmap optimization (HVO) requires
> struct pages of the head page to be naturally aligned with regard to the
> folio size.
> 
> Align vmemmap to MAX_FOLIO_VMEMMAP_ALIGN.
> 
> [...]

Here is the summary with links:
  - [PATCHv7,06/18] LoongArch/mm: Align vmemmap to maximal folio size
    https://git.kernel.org/riscv/c/2969b42c8f99

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply

* Re: [PATCHv7 11/18] x86/vdso: Undefine CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP for vdso32
From: patchwork-bot+linux-riscv @ 2026-04-30  3:25 UTC (permalink / raw)
  To: Kiryl Shutsemau
  Cc: linux-riscv, akpm, muchun.song, david, willy, usamaarif642, fvdl,
	osalvador, rppt, vbabka, lorenzo.stoakes, ziy, bhe, mhocko,
	hannes, corbet, chenhuacai, kernel, palmer, paul.walmsley, aou,
	alex, kernel-team, linux-mm, linux-kernel, linux-doc, loongarch
In-Reply-To: <20260227193030.272078-11-kas@kernel.org>

Hello:

This patch was applied to riscv/linux.git (fixes)
by Andrew Morton <akpm@linux-foundation.org>:

On Fri, 27 Feb 2026 19:30:12 +0000 you wrote:
> The 32-bit VDSO build on x86_64 uses fake_32bit_build.h to undefine
> various kernel configuration options that are not suitable for the
> VDSO context or may cause build issues when including kernel headers.
> 
> Undefine CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP in fake_32bit_build.h to
> prepare for change in  HugeTLB Vmemmap Optimization.
> 
> [...]

Here is the summary with links:
  - [PATCHv7,11/18] x86/vdso: Undefine CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP for vdso32
    https://git.kernel.org/riscv/c/76351f2f0c27

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply

* Re: [PATCHv7 07/18] mm: Rework compound_head() for power-of-2 sizeof(struct page)
From: patchwork-bot+linux-riscv @ 2026-04-30  3:25 UTC (permalink / raw)
  To: Kiryl Shutsemau
  Cc: linux-riscv, akpm, muchun.song, david, willy, usamaarif642, fvdl,
	osalvador, rppt, vbabka, lorenzo.stoakes, ziy, bhe, mhocko,
	hannes, corbet, chenhuacai, kernel, palmer, paul.walmsley, aou,
	alex, kernel-team, linux-mm, linux-kernel, linux-doc, loongarch,
	david
In-Reply-To: <20260227193030.272078-7-kas@kernel.org>

Hello:

This patch was applied to riscv/linux.git (fixes)
by Andrew Morton <akpm@linux-foundation.org>:

On Fri, 27 Feb 2026 19:30:08 +0000 you wrote:
> From: Kiryl Shutsemau <kas@kernel.org>
> 
> For tail pages, the kernel uses the 'compound_info' field to get to the
> head page. The bit 0 of the field indicates whether the page is a
> tail page, and if set, the remaining bits represent a pointer to the
> head page.
> 
> [...]

Here is the summary with links:
  - [PATCHv7,07/18] mm: Rework compound_head() for power-of-2 sizeof(struct page)
    https://git.kernel.org/riscv/c/8c846c879e22

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply

* Re: [PATCHv7 10/18] mm/hugetlb: Refactor code around vmemmap_walk
From: patchwork-bot+linux-riscv @ 2026-04-30  3:25 UTC (permalink / raw)
  To: Kiryl Shutsemau
  Cc: linux-riscv, akpm, muchun.song, david, willy, usamaarif642, fvdl,
	osalvador, rppt, vbabka, lorenzo.stoakes, ziy, bhe, mhocko,
	hannes, corbet, chenhuacai, kernel, palmer, paul.walmsley, aou,
	alex, kernel-team, linux-mm, linux-kernel, linux-doc, loongarch
In-Reply-To: <20260227193030.272078-10-kas@kernel.org>

Hello:

This patch was applied to riscv/linux.git (fixes)
by Andrew Morton <akpm@linux-foundation.org>:

On Fri, 27 Feb 2026 19:30:11 +0000 you wrote:
> From: Kiryl Shutsemau <kas@kernel.org>
> 
> To prepare for removing fake head pages, the vmemmap_walk code is being
> reworked.
> 
> The reuse_page and reuse_addr variables are being eliminated. There will
> no longer be an expectation regarding the reuse address in relation to
> the operated range. Instead, the caller will provide head and tail
> vmemmap pages.
> 
> [...]

Here is the summary with links:
  - [PATCHv7,10/18] mm/hugetlb: Refactor code around vmemmap_walk
    https://git.kernel.org/riscv/c/c0b495b91a47

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply

* Re: [PATCHv7 15/18] mm/hugetlb: Remove hugetlb_optimize_vmemmap_key static key
From: patchwork-bot+linux-riscv @ 2026-04-30  3:25 UTC (permalink / raw)
  To: Kiryl Shutsemau
  Cc: linux-riscv, akpm, muchun.song, david, willy, usamaarif642, fvdl,
	osalvador, rppt, vbabka, lorenzo.stoakes, ziy, bhe, mhocko,
	hannes, corbet, chenhuacai, kernel, palmer, paul.walmsley, aou,
	alex, kernel-team, linux-mm, linux-kernel, linux-doc, loongarch,
	david
In-Reply-To: <20260227193030.272078-15-kas@kernel.org>

Hello:

This patch was applied to riscv/linux.git (fixes)
by Andrew Morton <akpm@linux-foundation.org>:

On Fri, 27 Feb 2026 19:30:16 +0000 you wrote:
> From: Kiryl Shutsemau <kas@kernel.org>
> 
> The hugetlb_optimize_vmemmap_key static key was used to guard fake head
> detection in compound_head() and related functions. It allowed skipping
> the fake head checks entirely when HVO was not in use.
> 
> With fake heads eliminated and the detection code removed, the static
> key serves no purpose. Remove its definition and all increment/decrement
> calls.
> 
> [...]

Here is the summary with links:
  - [PATCHv7,15/18] mm/hugetlb: Remove hugetlb_optimize_vmemmap_key static key
    https://git.kernel.org/riscv/c/da3e2d1ca43d

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply

* Re: [PATCHv7 03/18] mm: Rename the 'compound_head' field in the 'struct page' to 'compound_info'
From: patchwork-bot+linux-riscv @ 2026-04-30  3:25 UTC (permalink / raw)
  To: Kiryl Shutsemau
  Cc: linux-riscv, akpm, muchun.song, david, willy, usamaarif642, fvdl,
	osalvador, rppt, vbabka, lorenzo.stoakes, ziy, bhe, mhocko,
	hannes, corbet, chenhuacai, kernel, palmer, paul.walmsley, aou,
	alex, kernel-team, linux-mm, linux-kernel, linux-doc, loongarch,
	david
In-Reply-To: <20260227193030.272078-3-kas@kernel.org>

Hello:

This patch was applied to riscv/linux.git (fixes)
by Andrew Morton <akpm@linux-foundation.org>:

On Fri, 27 Feb 2026 19:30:04 +0000 you wrote:
> From: Kiryl Shutsemau <kas@kernel.org>
> 
> The 'compound_head' field in the 'struct page' encodes whether the page
> is a tail and where to locate the head page. Bit 0 is set if the page is
> a tail, and the remaining bits in the field point to the head page.
> 
> As preparation for changing how the field encodes information about the
> head page, rename the field to 'compound_info'.
> 
> [...]

Here is the summary with links:
  - [PATCHv7,03/18] mm: Rename the 'compound_head' field in the 'struct page' to 'compound_info'
    https://git.kernel.org/riscv/c/d50569612c29

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply

* Re: [PATCHv7 04/18] mm: Move set/clear_compound_head() next to compound_head()
From: patchwork-bot+linux-riscv @ 2026-04-30  3:25 UTC (permalink / raw)
  To: Kiryl Shutsemau
  Cc: linux-riscv, akpm, muchun.song, david, willy, usamaarif642, fvdl,
	osalvador, rppt, vbabka, lorenzo.stoakes, ziy, bhe, mhocko,
	hannes, corbet, chenhuacai, kernel, palmer, paul.walmsley, aou,
	alex, kernel-team, linux-mm, linux-kernel, linux-doc, loongarch,
	david
In-Reply-To: <20260227193030.272078-4-kas@kernel.org>

Hello:

This patch was applied to riscv/linux.git (fixes)
by Andrew Morton <akpm@linux-foundation.org>:

On Fri, 27 Feb 2026 19:30:05 +0000 you wrote:
> From: Kiryl Shutsemau <kas@kernel.org>
> 
> Move set_compound_head() and clear_compound_head() to be adjacent to the
> compound_head() function in page-flags.h.
> 
> These functions encode and decode the same compound_info field, so
> keeping them together makes it easier to verify their logic is
> consistent, especially when the encoding changes.
> 
> [...]

Here is the summary with links:
  - [PATCHv7,04/18] mm: Move set/clear_compound_head() next to compound_head()
    https://git.kernel.org/riscv/c/67c79a5af051

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply

* Re: [PATCH RESEND v10 0/8] ACPI: Unify CPU UID interface and fix ARM64 TPH steer-tag issue
From: patchwork-bot+linux-riscv @ 2026-04-30  3:25 UTC (permalink / raw)
  To: Chengwen Feng
  Cc: linux-riscv, bhelgaas, catalin.marinas, will, rafael,
	mark.rutland, x86, liuyonglong, anshuman.khandual, linux-doc,
	kees, linux-pci, dave.hansen, Eric.VanTassell, somnath.kotur,
	kai.huang, kevinloughlin, punit.agrawal, hpa, ilkka, kernel,
	thorsten.blum, linux-acpi, corbet, masahiroy, si.yanteng, peterz,
	pawan.kumar.gupta, linux-arm-kernel, xen-devel, szy0127, lenb,
	thomas.lendacky, thuth, ryan.roberts, darwi, make24,
	suzuki.poulose, james.clark, wei.huang2, bwicaksono, loongarch,
	jonathan.cameron, sohil.mehta, boris.ostrovsky, xin,
	andrew.gospodarek, wanghuiqiang, jgross, wangyuquan1236, seanjc,
	guohanjun, linux-kernel, stable, linux-perf-users, wangzhou1,
	tglx, heinrich.schuchardt, chenl311, robin.murphy
In-Reply-To: <20260401081640.26875-1-fengchengwen@huawei.com>

Hello:

This series was applied to riscv/linux.git (fixes)
by Rafael J. Wysocki <rafael.j.wysocki@intel.com>:

On Wed, 1 Apr 2026 16:16:32 +0800 you wrote:
> This patchset unifies ACPI Processor UID retrieval across
> arm64/loongarch/riscv/x86 via acpi_get_cpu_uid() (with input validation)
> and fixes ARM64 CPU steer-tag retrieval failure in PCI/TPH:
> 
> 1-4: Add acpi_get_cpu_uid() for arm64/loongarch/riscv/x86 (update
>      respective users)
> 5: Centralize acpi_get_cpu_uid() declaration in include/linux/acpi.h
> 6: Clean up perf/arm_cspmu
> 7: Clean up ACPI/PPTT and remove unused get_acpi_id_for_cpu()
> 8: Pass ACPI Processor UID to Cache Locality _DSM
> 
> [...]

Here is the summary with links:
  - [RESEND,v10,1/8] arm64: acpi: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
    https://git.kernel.org/riscv/c/7cd5f5659ac8
  - [RESEND,v10,2/8] LoongArch: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
    https://git.kernel.org/riscv/c/d78ef9d2e1f2
  - [RESEND,v10,3/8] RISC-V: ACPI: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
    https://git.kernel.org/riscv/c/0c8231994e43
  - [RESEND,v10,4/8] x86/acpi: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
    https://git.kernel.org/riscv/c/3cfe889f8965
  - [RESEND,v10,5/8] ACPI: Centralize acpi_get_cpu_uid() declaration in include/linux/acpi.h
    https://git.kernel.org/riscv/c/f652d0a4e13c
  - [RESEND,v10,6/8] perf: arm_cspmu: Switch to acpi_get_cpu_uid() from get_acpi_id_for_cpu()
    https://git.kernel.org/riscv/c/1ab03189793f
  - [RESEND,v10,7/8] ACPI: PPTT: Use acpi_get_cpu_uid() and remove get_acpi_id_for_cpu()
    https://git.kernel.org/riscv/c/a7034e9e4491
  - [RESEND,v10,8/8] PCI/TPH: Pass ACPI Processor UID to Cache Locality _DSM
    https://git.kernel.org/riscv/c/abdd2a86535b

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply

* Re: [PATCHv7 RESEND 00/17] mm: Eliminate fake head pages from vmemmap optimization
From: patchwork-bot+linux-riscv @ 2026-04-30  3:25 UTC (permalink / raw)
  To: Kiryl Shutsemau
  Cc: linux-riscv, akpm, muchun.song, david, willy, usamaarif642, fvdl,
	osalvador, rppt, vbabka, lorenzo.stoakes, ziy, bhe, mhocko,
	hannes, corbet, chenhuacai, kernel, palmer, paul.walmsley, aou,
	alex, kernel-team, linux-mm, linux-kernel, linux-doc, loongarch
In-Reply-To: <20260227194302.274384-1-kas@kernel.org>

Hello:

This series was applied to riscv/linux.git (fixes)
by Andrew Morton <akpm@linux-foundation.org>:

On Fri, 27 Feb 2026 19:42:38 +0000 you wrote:
> This series removes "fake head pages" from the HugeTLB vmemmap
> optimization (HVO) by changing how tail pages encode their relationship
> to the head page.
> 
> It simplifies compound_head() and page_ref_add_unless(). Both are in the
> hot path.
> 
> [...]

Here is the summary with links:
  - [PATCHv7,01/18] mm: Move MAX_FOLIO_ORDER definition to mmzone.h
    https://git.kernel.org/riscv/c/a2c77ec320a9
  - [PATCHv7,02/18] mm: Change the interface of prep_compound_tail()
    https://git.kernel.org/riscv/c/f0369fb13619
  - [PATCHv7,03/18] mm: Rename the 'compound_head' field in the 'struct page' to 'compound_info'
    https://git.kernel.org/riscv/c/d50569612c29
  - [PATCHv7,04/18] mm: Move set/clear_compound_head() next to compound_head()
    https://git.kernel.org/riscv/c/67c79a5af051
  - [PATCHv7,05/18] riscv/mm: Align vmemmap to maximal folio size
    https://git.kernel.org/riscv/c/476849b0fba4
  - [PATCHv7,06/18] LoongArch/mm: Align vmemmap to maximal folio size
    https://git.kernel.org/riscv/c/2969b42c8f99
  - [PATCHv7,07/18] mm: Rework compound_head() for power-of-2 sizeof(struct page)
    https://git.kernel.org/riscv/c/8c846c879e22
  - [PATCHv7,08/18] mm/sparse: Check memmap alignment for compound_info_has_mask()
    https://git.kernel.org/riscv/c/9f94db4c7eaa
  - [PATCHv7,09/18] mm/hugetlb: Defer vmemmap population for bootmem hugepages
    https://git.kernel.org/riscv/c/209e6d9eb13a
  - [PATCHv7,10/18] mm/hugetlb: Refactor code around vmemmap_walk
    https://git.kernel.org/riscv/c/c0b495b91a47
  - [PATCHv7,11/18] x86/vdso: Undefine CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP for vdso32
    https://git.kernel.org/riscv/c/76351f2f0c27
  - [PATCHv7,12/18] mm/hugetlb: Remove fake head pages
    https://git.kernel.org/riscv/c/622026e87c40
  - [PATCHv7,13/18] mm: Drop fake head checks
    https://git.kernel.org/riscv/c/32c440d67e6c
  - [PATCHv7,14/18] hugetlb: Remove VMEMMAP_SYNCHRONIZE_RCU
    https://git.kernel.org/riscv/c/01b1d0ffb6f7
  - [PATCHv7,15/18] mm/hugetlb: Remove hugetlb_optimize_vmemmap_key static key
    https://git.kernel.org/riscv/c/da3e2d1ca43d
  - [PATCHv7,16/18] mm: Remove the branch from compound_head()
    https://git.kernel.org/riscv/c/66b2a3d9ae46
  - [PATCHv7,17/18] hugetlb: Update vmemmap_dedup.rst
    (no matching commit)
  - [PATCHv7,18/18] mm/slab: Use compound_head() in page_slab()
    https://git.kernel.org/riscv/c/8231e4c040fb

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply

* Re: [PATCHv7 16/18] mm: Remove the branch from compound_head()
From: patchwork-bot+linux-riscv @ 2026-04-30  3:25 UTC (permalink / raw)
  To: Kiryl Shutsemau
  Cc: linux-riscv, akpm, muchun.song, david, willy, usamaarif642, fvdl,
	osalvador, rppt, vbabka, lorenzo.stoakes, ziy, bhe, mhocko,
	hannes, corbet, chenhuacai, kernel, palmer, paul.walmsley, aou,
	alex, kernel-team, linux-mm, linux-kernel, linux-doc, loongarch,
	david
In-Reply-To: <20260227193030.272078-16-kas@kernel.org>

Hello:

This patch was applied to riscv/linux.git (fixes)
by Andrew Morton <akpm@linux-foundation.org>:

On Fri, 27 Feb 2026 19:30:17 +0000 you wrote:
> From: Kiryl Shutsemau <kas@kernel.org>
> 
> The compound_head() function is a hot path. For example, the zap path
> calls it for every leaf page table entry.
> 
> Rewrite the helper function in a branchless manner to eliminate the risk
> of CPU branch misprediction.
> 
> [...]

Here is the summary with links:
  - [PATCHv7,16/18] mm: Remove the branch from compound_head()
    https://git.kernel.org/riscv/c/66b2a3d9ae46

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply

* Re: [PATCH v2 00/33] rust: bump minimum Rust and `bindgen` versions
From: patchwork-bot+linux-riscv @ 2026-04-30  3:25 UTC (permalink / raw)
  To: Miguel Ojeda
  Cc: linux-riscv, nathan, nsc, dakr, a.hindborg, catalin.marinas, will,
	pjw, palmer, aou, acourbot, airlied, simona, brendan.higgins,
	david, gregkh, arve, tkjos, christian, cmllamas, aliceryhl,
	corbet, boqun, gary, bjorn3_gh, lossin, tmgross, rust-for-linux,
	linux-kbuild, lorenzo.stoakes, vbabka, Liam.Howlett, urezki,
	linux-block, linux-arm-kernel, alex, nouveau, dri-devel,
	raemoar63, linux-kselftest, kunit-dev, nick.desaulniers+lkml,
	morbo, justinstitt, llvm, linux-kernel, skhan, linux-doc
In-Reply-To: <20260405235309.418950-1-ojeda@kernel.org>

Hello:

This series was applied to riscv/linux.git (fixes)
by Miguel Ojeda <ojeda@kernel.org>:

On Mon,  6 Apr 2026 01:52:36 +0200 you wrote:
> As proposed in the past in e.g. LPC 2025 and the Maintainers Summit [1],
> we are going to follow Debian Stable's Rust versions as our minimum
> supported version.
> 
> Debian Trixie was released with a Rust 1.85.0 toolchain [2], which it
> still uses to this day [3] (i.e. no update to Rust 1.85.1).
> 
> [...]

Here is the summary with links:
  - [v2,01/33] rust: kbuild: remove `--remap-path-prefix` workarounds
    https://git.kernel.org/riscv/c/c8cbe2fc22e4
  - [v2,02/33] rust: kbuild: remove "`try` keyword" workaround for `bindgen` < 0.59.2
    https://git.kernel.org/riscv/c/518b9ad2fab3
  - [v2,03/33] rust: kbuild: remove unneeded old `allow`s for generated layout tests
    https://git.kernel.org/riscv/c/92cc022f044f
  - [v2,04/33] gpu: nova-core: bindings: remove unneeded `cfg_attr`
    https://git.kernel.org/riscv/c/341c51ee3293
  - [v2,05/33] rust: bump Rust minimum supported version to 1.85.0 (Debian Trixie)
    https://git.kernel.org/riscv/c/f32fb9c58a5b
  - [v2,06/33] rust: bump Clippy's MSRV and clean `incompatible_msrv` allows
    https://git.kernel.org/riscv/c/b6cfba436623
  - [v2,07/33] rust: allow globally `clippy::incompatible_msrv`
    https://git.kernel.org/riscv/c/7ed188605e1d
  - [v2,08/33] rust: simplify `RUSTC_VERSION` Kconfig conditions
    https://git.kernel.org/riscv/c/b28711ac98e8
  - [v2,09/33] rust: remove `RUSTC_HAS_SLICE_AS_FLATTENED` and simplify code
    https://git.kernel.org/riscv/c/9b398d056543
  - [v2,10/33] rust: remove `RUSTC_HAS_COERCE_POINTEE` and simplify code
    https://git.kernel.org/riscv/c/4ab22c543f18
  - [v2,11/33] rust: kbuild: remove skipping of `-Wrustdoc::unescaped_backticks`
    https://git.kernel.org/riscv/c/0f6e1e0705f0
  - [v2,12/33] rust: kbuild: remove `feature(...)`s that are now stable
    https://git.kernel.org/riscv/c/d1aa40daa777
  - [v2,13/33] rust: transmute: simplify code with Rust 1.80.0 `split_at_*checked()`
    https://git.kernel.org/riscv/c/f309a6edda53
  - [v2,14/33] rust: alloc: simplify with `NonNull::add()` now that it is stable
    https://git.kernel.org/riscv/c/161dd7b51e96
  - [v2,15/33] rust: macros: simplify code using `feature(extract_if)`
    https://git.kernel.org/riscv/c/42ec980024f0
  - [v2,16/33] rust: block: update `const_refs_to_static` MSRV TODO comment
    https://git.kernel.org/riscv/c/961b72d45ae4
  - [v2,17/33] rust: bump `bindgen` minimum supported version to 0.71.1 (Debian Trixie)
    https://git.kernel.org/riscv/c/c3a00a3f31ff
  - [v2,18/33] rust: rust_is_available: remove warning for `bindgen` 0.66.[01]
    https://git.kernel.org/riscv/c/41cfbb4295cf
  - [v2,19/33] rust: rust_is_available: remove warning for `bindgen` < 0.69.5 && libclang >= 19.1
    https://git.kernel.org/riscv/c/ae64324ad5c1
  - [v2,20/33] rust: kbuild: update `bindgen --rust-target` version and replace comment
    https://git.kernel.org/riscv/c/276ed30c558e
  - [v2,21/33] rust: kbuild: remove "dummy parameter" workaround for `bindgen` < 0.71.1
    https://git.kernel.org/riscv/c/93553d9922b0
  - [v2,22/33] docs: rust: quick-start: openSUSE provides `rust-src` package nowadays
    https://git.kernel.org/riscv/c/53c9647c0a48
  - [v2,23/33] docs: rust: quick-start: update Ubuntu versioned packages
    https://git.kernel.org/riscv/c/982e1aa6de73
  - [v2,24/33] docs: rust: quick-start: update minimum Ubuntu version
    https://git.kernel.org/riscv/c/6767147cb941
  - [v2,25/33] docs: rust: quick-start: add Ubuntu 26.04 LTS and remove subsection title
    https://git.kernel.org/riscv/c/780f847e1419
  - [v2,26/33] docs: rust: quick-start: remove Gentoo "testing" note
    https://git.kernel.org/riscv/c/99c672426aed
  - [v2,27/33] docs: rust: quick-start: remove Nix "unstable channel" note
    https://git.kernel.org/riscv/c/b69a14650009
  - [v2,28/33] docs: rust: quick-start: remove GDB/Binutils mention
    https://git.kernel.org/riscv/c/a4392ed1c8b9
  - [v2,29/33] docs: rust: general-information: simplify Kconfig example
    https://git.kernel.org/riscv/c/9375ea727d7e
  - [v2,30/33] docs: rust: general-information: use real example
    https://git.kernel.org/riscv/c/86c5d1c6740c
  - [v2,31/33] rust: declare cfi_encoding for lru_status
    https://git.kernel.org/riscv/c/9e5946de3a38
  - [v2,32/33] rust: kbuild: support global per-version flags
    https://git.kernel.org/riscv/c/b2aa1535ecdd
  - [v2,33/33] rust: kbuild: allow `clippy::precedence` for Rust < 1.86.0
    https://git.kernel.org/riscv/c/2e2f8b5a0656

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply

* Re: [PATCH net v2 15/15] drivers: net: 8390: wd80x3: Remove this driver
From: kernel test robot @ 2026-04-30  3:14 UTC (permalink / raw)
  To: Andrew Lunn, Andrew Lunn, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Simon Horman, Jonathan Corbet,
	Shuah Khan
  Cc: oe-kbuild-all, netdev, Geert Uytterhoeven, Michael Fritscher,
	Byron Stanoszek, Daniel Palmer, linux-kernel, linux-doc
In-Reply-To: <20260422-v7-0-0-net-next-driver-removal-v1-v2-15-08a5b59784d5@lunn.ch>

Hi Andrew,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 1f5ffc672165ff851063a5fd044b727ab2517ae3]

url:    https://github.com/intel-lab-lkp/linux/commits/Andrew-Lunn/drivers-net-3com-3c509-Remove-this-driver/20260424-104110
base:   1f5ffc672165ff851063a5fd044b727ab2517ae3
patch link:    https://lore.kernel.org/r/20260422-v7-0-0-net-next-driver-removal-v1-v2-15-08a5b59784d5%40lunn.ch
patch subject: [PATCH net v2 15/15] drivers: net: 8390: wd80x3: Remove this driver
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
docutils: docutils (Docutils 0.21.2, Python 3.13.5, on linux)
reproduce: (https://download.01.org/0day-ci/archive/20260430/202604300512.3KcfhJGd-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202604300512.3KcfhJGd-lkp@intel.com/

All warnings (new ones prefixed by >>):

   Non-Preserved Properties
   ======================== [docutils]
>> Documentation/networking/device_drivers/ethernet/index.rst:10: WARNING: toctree contains reference to nonexisting document 'networking/device_drivers/ethernet/3com/3c509' [toc.not_readable]
   Documentation/networking/skbuff:36: ./include/linux/skbuff.h:48: ERROR: Unexpected section title.


vim +10 Documentation/networking/device_drivers/ethernet/index.rst

132db93572821e Jakub Kicinski 2020-06-26   7  
132db93572821e Jakub Kicinski 2020-06-26   8  Contents:
132db93572821e Jakub Kicinski 2020-06-26   9  
132db93572821e Jakub Kicinski 2020-06-26 @10  .. toctree::

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply

* Re: [PATCH v2] docs/ja_JP: translate more of submitting-patches.rst
From: Akira Yokosawa @ 2026-04-30  3:09 UTC (permalink / raw)
  To: Akiyoshi Kurita; +Cc: linux-kernel, corbet, linux-doc
In-Reply-To: <20260425120941.1290861-1-weibu@redadmin.org>

Hi,

On Sat, 25 Apr 2026 21:09:41 +0900, Akiyoshi Kurita wrote:
> Translate the "Separate your changes", "Style-check your changes",
> and "Select the recipients for your patch" sections in
> Documentation/translations/ja_JP/process/submitting-patches.rst.
> 
> Keep the wording close to the English text and wrap lines to match
> the style used in the surrounding Japanese translation.
> 
> Signed-off-by: Akiyoshi Kurita <weibu@redadmin.org>
> ---
> v2:
>  - drop conflicting label

Well, that is what I said earlier, but you can now add a file-local
crossref to "変更を分割する" as noted at line 97.  Something like:

-------------------------------------------------------
--- a/Documentation/translations/ja_JP/process/submitting-patches.rst
+++ b/Documentation/translations/ja_JP/process/submitting-patches.rst
@@ -92,10 +92,7 @@ Linux の多くの環境は、上流から特定のパッチだけを取り込
 
 1 つのパッチでは 1 つの問題だけを解決してください。記述が長くなり
 始めたら、それはパッチを分割すべきサインです。
-詳細は原文の該当節 ("Separate your changes") を参照してください。
-
-.. TODO: Convert to file-local cross-reference when the destination is
-   translated.
+詳細は `変更を分割する`_ を参照してください。
 
 パッチまたはパッチシリーズを投稿/再投稿する際は、その完全な
 説明と、それを正当化する理由を含めてください。単に「これはパッチ
-------------------------------------------------------

Here, an implicit hyperlink target (of docutils [1]) is used to avoid
target name collisions.  This should be good enough for now.

[1]: https://docutils.sourceforge.io/docs/user/rst/quickref.html#implicit-hyperlink-targets

>  - rewrap lines more consistently

I still see short lines in the latter part of this patch ...

Thanks, Akira

> 
>  .../ja_JP/process/submitting-patches.rst      | 122 ++++++++++++++++++
>  1 file changed, 122 insertions(+)
> 
[...]


^ permalink raw reply

* [PATCH v2 2/3] Documentation/hwmon: add Delta E50SN12051 documentation
From: Colin Huang via B4 Relay @ 2026-04-30  3:01 UTC (permalink / raw)
  To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Kevin Chang, Jonathan Corbet, Shuah Khan
  Cc: linux-hwmon, devicetree, linux-kernel, linux-doc, Colin Huang,
	Colin Huang
In-Reply-To: <20260430-add-e50sn12051-v2-0-d76fe42482ab@gmail.com>

From: Colin Huang <u8813345@gmail.com>

Document the hardware monitoring support for the Delta E50SN12051
device.

The documentation describes the supported sensors exposed via the
hwmon subsystem, including voltage, current, and temperature measurements.

Signed-off-by: Colin Huang <u8813345@gmail.com>
---
 Documentation/hwmon/e50sn12051.rst | 81 ++++++++++++++++++++++++++++++++++++++
 Documentation/hwmon/index.rst      |  1 +
 2 files changed, 82 insertions(+)

diff --git a/Documentation/hwmon/e50sn12051.rst b/Documentation/hwmon/e50sn12051.rst
new file mode 100644
index 000000000000..cbbfa7895d82
--- /dev/null
+++ b/Documentation/hwmon/e50sn12051.rst
@@ -0,0 +1,81 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+
+Kernel driver e50sn12051
+========================
+
+Supported chips:
+
+  * Delta E50SN12051
+
+    Prefix: 'e50sn12051'
+
+    Addresses scanned: -
+
+    Datasheet:
+
+      Provided by Delta upon request and NDA
+
+Description
+-----------
+
+E50SN12051 is a 600W non-isolated 1/8th brick DC-DC power module.
+
+This driver supports the E50SN12051 PMBus compliant monitor device.
+
+The device provides measurements for:
+
+* Input voltage
+* Output current
+* Output voltage
+* Temperature
+
+The driver is based on the PMBus core and exposes standard hwmon
+sysfs attributes.
+
+Sysfs attributes
+----------------
+
+======================= =======================================================
+curr1_label             "iout1"
+curr1_crit              Critical maximum current.
+                        From IOUT_OC_FAULT_LIMIT register.
+curr1_crit_alarm        Current critical high alarm.
+                        From IOUT_OC_FAULT status.
+curr1_input             Measured current.
+                        From READ_IOUT register.
+curr1_max               Maximum current.
+                        From IOUT_OC_WARN_LIMIT register.
+curr1_max_alarm         Current high alarm.
+                        From IOUT_OC_WARN_LIMIT status.
+
+in1_label               "vin"
+in1_alarm               Input voltage alarm.
+in1_input               Measured voltage.
+                        From READ_VIN register.
+
+in2_label               "vout1"
+in2_crit                Critical maximum voltage.
+                        From VOUT_OV_FAULT_LIMIT register.
+in2_crit_alarm          Voltage critical high alarm.
+                        From VOLTAGE_OV_FAULT status.
+in2_input               Measured voltage.
+                        From READ_VOUT register.
+in2_max                 Maximum voltage.
+                        From VOUT_OV_WARN_LIMIT register.
+in2_max_alarm           Voltage high alarm.
+                        From VOLTAGE_OV_WARNING status.
+
+temp1_crit              Critical high temperature.
+                        From OT_FAULT_LIMIT register.
+temp1_crit_alarm        Module temperature critical high alarm.
+                        Set by comparing READ_TEMPERATURE_1 with OT_FAULT_LIMIT
+                        if TEMP_OT_FAULT status is set.
+temp1_input             Measured module's hot spot temperature.
+                        From READ_TEMPERATURE_1 register.
+temp1_max               Maximum temperature.
+                        From OT_WARN_LIMIT register.
+temp1_max_alarm         Module temperature high alarm.
+                        Set by comparing READ_TEMPERATURE_1 with OT_WARN_LIMIT if
+                        TEMP_OT_WARNING status is set.
+======================= =======================================================
+
diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst
index 8b655e5d6b68..ba08655fc496 100644
--- a/Documentation/hwmon/index.rst
+++ b/Documentation/hwmon/index.rst
@@ -68,6 +68,7 @@ Hardware Monitoring Kernel Drivers
    drivetemp
    ds1621
    ds620
+   e50sn12051
    emc1403
    emc2103
    emc2305

-- 
2.34.1



^ permalink raw reply related

* [PATCH v2 1/3] dt-bindings: hwmon: pmbus: add Delta E50SN12051 binding
From: Colin Huang via B4 Relay @ 2026-04-30  3:01 UTC (permalink / raw)
  To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Kevin Chang, Jonathan Corbet, Shuah Khan
  Cc: linux-hwmon, devicetree, linux-kernel, linux-doc, Colin Huang,
	Colin Huang
In-Reply-To: <20260430-add-e50sn12051-v2-0-d76fe42482ab@gmail.com>

From: Colin Huang <u8813345@gmail.com>

Add devicetree binding documentation for the Delta E50SN12051
PMBus-compliant device.

Signed-off-by: Colin Huang <u8813345@gmail.com>
---
 .../bindings/hwmon/pmbus/delta,e50sn12051.yaml     | 41 ++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/delta,e50sn12051.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/delta,e50sn12051.yaml
new file mode 100644
index 000000000000..ea7b6d001d66
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/pmbus/delta,e50sn12051.yaml
@@ -0,0 +1,41 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/pmbus/delta,e50sn12051.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Delta E50SN12051 PMBus Sensor
+
+maintainers:
+  - Kevin Chang <kevin.chang2@amd.com>
+
+description: |
+  This binding describes the Delta E50SN12051 PMBus sensor.
+  The driver supports reading voltage, current, and temperature
+  using the PMBus interface.
+
+properties:
+  compatible:
+    const: delta,e50sn12051
+
+  reg:
+    maxItems: 1
+    description: I2C bus address of the PMBus device
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        hwmon@40 {
+            compatible = "delta,e50sn12051";
+            reg = <0x40>;
+        };
+    };

-- 
2.34.1



^ permalink raw reply related

* [PATCH v2 3/3] hwmon: (pmbus) add support for Delta E50SN12051
From: Colin Huang via B4 Relay @ 2026-04-30  3:01 UTC (permalink / raw)
  To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Kevin Chang, Jonathan Corbet, Shuah Khan
  Cc: linux-hwmon, devicetree, linux-kernel, linux-doc, Colin Huang,
	Colin Huang
In-Reply-To: <20260430-add-e50sn12051-v2-0-d76fe42482ab@gmail.com>

From: Colin Huang <u8813345@gmail.com>

Add the pmbus driver for Delta E50SN12051 600W Non-isolated
1/8th Brick DCDC Power Modules.

Signed-off-by: Colin Huang <u8813345@gmail.com>
---
 drivers/hwmon/pmbus/Kconfig      |  9 ++++++
 drivers/hwmon/pmbus/Makefile     |  1 +
 drivers/hwmon/pmbus/e50sn12051.c | 59 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 69 insertions(+)

diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
index 8f4bff375ecb..4fbfcbc4a9c5 100644
--- a/drivers/hwmon/pmbus/Kconfig
+++ b/drivers/hwmon/pmbus/Kconfig
@@ -161,6 +161,15 @@ config SENSORS_DPS920AB
 	  This driver can also be built as a module. If so, the module will
 	  be called dps920ab.
 
+config SENSORS_E50SN12051
+	tristate "Delta E50SN12051 Power Modules"
+	help
+	  If you say yes here you get hardware monitoring support for Delta
+	  E50SN12051 Power Modules.
+
+	  This driver can also be built as a module. If so, the module will
+	  be called e50sn12051.
+
 config SENSORS_INA233
 	tristate "Texas Instruments INA233 and compatibles"
 	help
diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile
index 7129b62bc00f..fc910bf34fe3 100644
--- a/drivers/hwmon/pmbus/Makefile
+++ b/drivers/hwmon/pmbus/Makefile
@@ -17,6 +17,7 @@ obj-$(CONFIG_SENSORS_FSP_3Y)	+= fsp-3y.o
 obj-$(CONFIG_SENSORS_HAC300S)	+= hac300s.o
 obj-$(CONFIG_SENSORS_IBM_CFFPS)	+= ibm-cffps.o
 obj-$(CONFIG_SENSORS_DPS920AB)	+= dps920ab.o
+obj-$(CONFIG_SENSORS_E50SN12051) += e50sn12051.o
 obj-$(CONFIG_SENSORS_INA233)	+= ina233.o
 obj-$(CONFIG_SENSORS_INSPUR_IPSPS) += inspur-ipsps.o
 obj-$(CONFIG_SENSORS_IR35221)	+= ir35221.o
diff --git a/drivers/hwmon/pmbus/e50sn12051.c b/drivers/hwmon/pmbus/e50sn12051.c
new file mode 100644
index 000000000000..3d61db949afb
--- /dev/null
+++ b/drivers/hwmon/pmbus/e50sn12051.c
@@ -0,0 +1,59 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Hardware monitoring driver for E50SN12051
+ */
+
+#include <linux/i2c.h>
+#include <linux/module.h>
+#include <linux/mod_devicetable.h>
+#include "pmbus.h"
+
+static struct pmbus_driver_info e50sn12051_info = {
+	.pages = 1,
+	.format[PSC_VOLTAGE_IN] = linear,
+	.format[PSC_VOLTAGE_OUT] = linear,
+	.format[PSC_CURRENT_OUT] = linear,
+	.format[PSC_TEMPERATURE] = linear,
+	.func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_STATUS_INPUT |
+		   PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT |
+		   PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT |
+		   PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
+};
+
+static const struct i2c_device_id e50sn12051_id[] = { { "e50sn12051", 0 }, {} };
+MODULE_DEVICE_TABLE(i2c, e50sn12051_id);
+
+static const struct of_device_id e50sn12051_of_match[] = {
+	{ .compatible = "delta,e50sn12051" },
+	{},
+};
+MODULE_DEVICE_TABLE(of, e50sn12051_of_match);
+
+static int e50sn12051_probe(struct i2c_client *client)
+{
+	struct pmbus_driver_info *info;
+
+	info = devm_kmemdup(&client->dev, &e50sn12051_info, sizeof(*info),
+			    GFP_KERNEL);
+	if (!info)
+		return -ENOMEM;
+
+	return pmbus_do_probe(client, info);
+}
+
+static struct i2c_driver e50sn12051_driver = {
+	.driver = {
+		.name = "e50sn12051",
+		.of_match_table = e50sn12051_of_match,
+	},
+	.probe = e50sn12051_probe,
+
+	.id_table = e50sn12051_id,
+};
+
+module_i2c_driver(e50sn12051_driver);
+
+MODULE_AUTHOR("Kevin Chang <kevin.chang2@amd.com>");
+MODULE_DESCRIPTION("PMBus driver for E50SN12051");
+MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS("PMBUS");

-- 
2.34.1



^ permalink raw reply related

* [PATCH v2 0/3] add support for Delta E50SN12051
From: Colin Huang via B4 Relay @ 2026-04-30  3:01 UTC (permalink / raw)
  To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Kevin Chang, Jonathan Corbet, Shuah Khan
  Cc: linux-hwmon, devicetree, linux-kernel, linux-doc, Colin Huang,
	Colin Huang

Delta E50SN12051 is a 600W non-isolated 1/8th brick DC-DC power module.
With this series applied, voltage, current and temperature sensors can 
be exposed through the standard hwmon interface.

Changes in this series:
- Introduce device-tree binding documentation for the new device
- Add hwmon documentation describing the supported sensors
- Add PMBus driver support for Delta E50SN12051

Signed-off-by: Colin Huang <u8813345@gmail.com>
---
Changes in v2:
- Add %YAML 1.2 declaration in binding document.
- Use a generic node name in examples in binding document.
- Add MODULE_IMPORT_NS("PMBUS")
- Remove unused / incorrect headers
- Link to v1: https://lore.kernel.org/r/20260429-add-e50sn12051-v1-0-c101e6c80bbb@gmail.com

---
Colin Huang (3):
      dt-bindings: hwmon: pmbus: add Delta E50SN12051 binding
      Documentation/hwmon: add Delta E50SN12051 documentation
      hwmon: (pmbus) add support for Delta E50SN12051

 .../bindings/hwmon/pmbus/delta,e50sn12051.yaml     | 41 +++++++++++
 Documentation/hwmon/e50sn12051.rst                 | 81 ++++++++++++++++++++++
 Documentation/hwmon/index.rst                      |  1 +
 drivers/hwmon/pmbus/Kconfig                        |  9 +++
 drivers/hwmon/pmbus/Makefile                       |  1 +
 drivers/hwmon/pmbus/e50sn12051.c                   | 59 ++++++++++++++++
 6 files changed, 192 insertions(+)
---
base-commit: b584e7d50af502462349910bf4ed30057620b69f
change-id: 20260316-add-e50sn12051-ad828ad6777a

Best regards,
-- 
Colin Huang <u8813345@gmail.com>



^ permalink raw reply

* Re: [RFC PATCH net-next 0/3] netns: optionally inherit IPv4 TCP sysctls from old net
From: Eric Dumazet @ 2026-04-30  2:46 UTC (permalink / raw)
  To: nmreadelf
  Cc: davem, kuba, pabeni, corbet, dsahern, horms, chia-yu.chang,
	idosch, ij, brauner, jack, kuniyu, jlayton, netdev, linux-doc,
	linux-kernel, lance.yang, leon.hwang
In-Reply-To: <TY7PR01MB172057C053E8D550485A29A08E0352@TY7PR01MB17205.jpnprd01.prod.outlook.com>

On Wed, Apr 29, 2026 at 6:30 PM nmreadelf <kong414@outlook.com> wrote:
>
> a new network namespace starts with built-in TCP defaults.
> In container-heavy setups, operators often tune TCP sysctls in init_net and then
> need to re-apply the same values for each new netns.
>

There is a mistake here.  init_net is not the same as parent_net (or
old_net in your patches)

unshare -n  # Parent netns might be init_net
unshare -n  # Parent netns is not init_net
...


> This series adds an opt-in mechanism to initialize per-netns IPv4 TCP sysctl
> settings from init_net at netns creation time.
>
> Behavior:
>
> Default is unchanged.
> When net.ipv4.netns_inherit_tcp_sysctls=1, new netns inherit
> TCP sysctl from old_net.
>
> nmreadelf (3):
>   ipv4: netns: group copyable TCP sysctls in netns_ipv4
>   net: ipv4: add netns_inherit_tcp_sysctls sysctl
>   tcp: netns: optionally inherit IPv4 TCP sysctls from parent netns
>
>  .../net_cachelines/netns_ipv4_sysctl.rst      | 25 +++----
>  include/net/netns/ipv4.h                      | 33 +++++----
>  net/core/net_namespace.c                      | 72 +++++++++++++++++++
>  net/ipv4/sysctl_net_ipv4.c                    |  9 +++
>  4 files changed, 114 insertions(+), 25 deletions(-)
>
> --
> 2.47.3
>

^ permalink raw reply

* Re: [PATCH] crypto: af_alg - Document the deprecation of AF_ALG
From: Herbert Xu @ 2026-04-30  2:05 UTC (permalink / raw)
  To: Eric Biggers
  Cc: linux-crypto, linux-doc, linux-api, linux-kernel, netdev,
	Linus Torvalds, David Howells
In-Reply-To: <20260430011544.31823-1-ebiggers@kernel.org>

On Wed, Apr 29, 2026 at 06:15:44PM -0700, Eric Biggers wrote:
> AF_ALG is almost completely unnecessary, and it exposes a massive attack
> surface that hasn't been standing up to modern vulnerability discovery
> tools.  The latest one even has its own website, providing a small
> Python script that reliably roots most Linux distros: https://copy.fail/
> 
> This isn't sustainable, especially as LLMs have accelerated the rate the
> vulnerabilities are coming in.  The effort that is being put into this
> thing is vastly disproportional to the few programs that actually use
> it, and those programs would be better served by userspace code anyway.
> 
> These issues have been noted in many mailing list discussions already.
> But until now they haven't been reflected in the documentation or
> kconfig menu itself, and the vulnerabilities are still coming in.
> 
> Let's go ahead and document the deprecation.
> 
> This isn't intended to change anything overnight.  After all, most Linux
> distros won't be able to disable the kconfig options quite yet, mainly
> because of iwd.  But this should create a bit more impetus for these
> userspace programs to be fixed, and the documentation update should also
> help prevent more users from appearing.
> 
> Signed-off-by: Eric Biggers <ebiggers@kernel.org>

What about the exposure of akcipher through security/keys/keyctl_pkey.c?

There isn't even a Kconfig option to disable that user-space API.
If module signatures are enabled then this automatically gets added
to the kernel:

MODULE_SIG -> MODULE_SIG_FORMAT -> SYSTEM_DATA_VERIFICATION ->
KEYS + ASYMMETRIC_KEY_TYPE

Cheers,
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply

* Re: [PATCH] crypto: af_alg - Document the deprecation of AF_ALG
From: Eric Biggers @ 2026-04-30  2:10 UTC (permalink / raw)
  To: Herbert Xu
  Cc: linux-crypto, linux-doc, linux-api, linux-kernel, netdev,
	Linus Torvalds, David Howells
In-Reply-To: <afK4zC-Mgo6LBfUh@gondor.apana.org.au>

On Thu, Apr 30, 2026 at 10:05:00AM +0800, Herbert Xu wrote:
> On Wed, Apr 29, 2026 at 06:15:44PM -0700, Eric Biggers wrote:
> > AF_ALG is almost completely unnecessary, and it exposes a massive attack
> > surface that hasn't been standing up to modern vulnerability discovery
> > tools.  The latest one even has its own website, providing a small
> > Python script that reliably roots most Linux distros: https://copy.fail/
> > 
> > This isn't sustainable, especially as LLMs have accelerated the rate the
> > vulnerabilities are coming in.  The effort that is being put into this
> > thing is vastly disproportional to the few programs that actually use
> > it, and those programs would be better served by userspace code anyway.
> > 
> > These issues have been noted in many mailing list discussions already.
> > But until now they haven't been reflected in the documentation or
> > kconfig menu itself, and the vulnerabilities are still coming in.
> > 
> > Let's go ahead and document the deprecation.
> > 
> > This isn't intended to change anything overnight.  After all, most Linux
> > distros won't be able to disable the kconfig options quite yet, mainly
> > because of iwd.  But this should create a bit more impetus for these
> > userspace programs to be fixed, and the documentation update should also
> > help prevent more users from appearing.
> > 
> > Signed-off-by: Eric Biggers <ebiggers@kernel.org>
> 
> What about the exposure of akcipher through security/keys/keyctl_pkey.c?
> 
> There isn't even a Kconfig option to disable that user-space API.
> If module signatures are enabled then this automatically gets added
> to the kernel:
> 
> MODULE_SIG -> MODULE_SIG_FORMAT -> SYSTEM_DATA_VERIFICATION ->
> KEYS + ASYMMETRIC_KEY_TYPE

Yes, that would be a different patch, but KEYCTL_PKEY_* have a very
similar issue.  That should have a kconfig option added too.

I believe iwd is the main (or even only?) user there, as well.

- Eric

^ permalink raw reply

* [RFC PATCH net-next 3/3] tcp: netns: optionally inherit IPv4 TCP sysctls from parent netns
From: nmreadelf @ 2026-04-30  1:33 UTC (permalink / raw)
  To: davem, edumazet, kuba, pabeni, corbet, dsahern
  Cc: horms, chia-yu.chang, idosch, ij, brauner, jack, kuniyu, jlayton,
	netdev, linux-doc, linux-kernel, kong414, lance.yang, leon.hwang
In-Reply-To: <TY7PR01MB172057C053E8D550485A29A08E0352@TY7PR01MB17205.jpnprd01.prod.outlook.com>

During netns creation, setup_net() initializes IPv4 TCP sysctls. Add an
optional follow-up copy step in copy_net_ns() so selected IPv4 TCP sysctl
settings can be inherited from old_net when
net.ipv4.netns_inherit_tcp_sysctls=1.

The copy uses the tcp_sysctl struct_group plus selected related fields
outside that group, guarded by BUILD_BUG_ON checks for layout safety.

Default behavior is unchanged because inheritance is disabled unless
explicitly enabled in old_net.
---
 net/core/net_namespace.c | 72 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)

diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index a6e6a964a287..d6587362d450 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -548,6 +548,74 @@ void net_drop_ns(void *p)
 		net_passive_dec(net);
 }
 
+static int __net_init copy_net_ns_tcp_sysctls(struct net *net, struct net *old_net)
+{
+	if (net == old_net)
+		return 0;
+
+	/* Make sure TCP sysctl fields are contained by tcp_sysctl group */
+#define CHECK_SYSCTL_TCP_FIELD(lhs, rhs) \
+	BUILD_BUG_ON(offsetof(struct netns_ipv4, lhs) !=                \
+		offsetof(struct netns_ipv4, tcp_sysctl.rhs))
+
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_ecn, sysctl_tcp_ecn);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_ecn_fallback, sysctl_tcp_ecn_fallback);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_base_mss, sysctl_tcp_base_mss);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_keepalive_time, sysctl_tcp_keepalive_time);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_syncookies, sysctl_tcp_syncookies);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_fin_timeout, sysctl_tcp_fin_timeout);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_sack, sysctl_tcp_sack);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_window_scaling, sysctl_tcp_window_scaling);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_timestamps, sysctl_tcp_timestamps);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_rto_min_us, sysctl_tcp_rto_min_us);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_rto_max_ms, sysctl_tcp_rto_max_ms);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_recovery, sysctl_tcp_recovery);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_max_reordering, sysctl_tcp_max_reordering);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_challenge_ack_limit, sysctl_tcp_challenge_ack_limit);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_pacing_ss_ratio, sysctl_tcp_pacing_ss_ratio);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_pacing_ca_ratio, sysctl_tcp_pacing_ca_ratio);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_comp_sack_delay_ns, sysctl_tcp_comp_sack_delay_ns);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_comp_sack_slack_ns, sysctl_tcp_comp_sack_slack_ns);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_fastopen, sysctl_tcp_fastopen);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_fastopen_blackhole_timeout,
+			       sysctl_tcp_fastopen_blackhole_timeout);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_plb_enabled, sysctl_tcp_plb_enabled);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_plb_cong_thresh, sysctl_tcp_plb_cong_thresh);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_shrink_window, sysctl_tcp_shrink_window);
+	CHECK_SYSCTL_TCP_FIELD(sysctl_tcp_syn_linear_timeouts, sysctl_tcp_syn_linear_timeouts);
+
+	memcpy(&net->ipv4.tcp_sysctl,
+	       &old_net->ipv4.tcp_sysctl, sizeof(net->ipv4.tcp_sysctl));
+	net->ipv4.sysctl_netns_inherit_tcp_sysctls =
+	   old_net->ipv4.sysctl_netns_inherit_tcp_sysctls;
+	net->ipv4.sysctl_tcp_min_snd_mss =
+	   old_net->ipv4.sysctl_tcp_min_snd_mss;
+	net->ipv4.sysctl_tcp_reordering =
+	   old_net->ipv4.sysctl_tcp_reordering;
+	net->ipv4.sysctl_tcp_notsent_lowat =
+	   old_net->ipv4.sysctl_tcp_notsent_lowat;
+
+	net->ipv4.sysctl_tcp_early_retrans =
+	   old_net->ipv4.sysctl_tcp_early_retrans;
+	net->ipv4.sysctl_tcp_tso_win_divisor =
+	   old_net->ipv4.sysctl_tcp_tso_win_divisor;
+	net->ipv4.sysctl_tcp_tso_rtt_log =
+	   old_net->ipv4.sysctl_tcp_tso_rtt_log;
+	net->ipv4.sysctl_tcp_autocorking =
+	   old_net->ipv4.sysctl_tcp_autocorking;
+	net->ipv4.sysctl_tcp_limit_output_bytes =
+	   old_net->ipv4.sysctl_tcp_limit_output_bytes;
+	net->ipv4.sysctl_tcp_min_rtt_wlen =
+	   old_net->ipv4.sysctl_tcp_min_rtt_wlen;
+	net->ipv4.sysctl_tcp_moderate_rcvbuf =
+	   old_net->ipv4.sysctl_tcp_moderate_rcvbuf;
+	net->ipv4.sysctl_tcp_rcvbuf_low_rtt =
+	   old_net->ipv4.sysctl_tcp_rcvbuf_low_rtt;
+	atomic_set(&net->ipv4.tfo_active_disable_times,
+		   atomic_read(&old_net->ipv4.tfo_active_disable_times));
+	return 0;
+}
+
 struct net *copy_net_ns(u64 flags,
 			struct user_namespace *user_ns, struct net *old_net)
 {
@@ -594,6 +662,10 @@ struct net *copy_net_ns(u64 flags,
 		dec_net_namespaces(ucounts);
 		return ERR_PTR(rv);
 	}
+
+	if (READ_ONCE(old_net->ipv4.sysctl_netns_inherit_tcp_sysctls))
+		copy_net_ns_tcp_sysctls(net, old_net);
+
 	return net;
 }
 
-- 
2.47.3


^ permalink raw reply related

* [RFC PATCH net-next 2/3] net: ipv4: add netns_inherit_tcp_sysctls sysctl
From: nmreadelf @ 2026-04-30  1:33 UTC (permalink / raw)
  To: davem, edumazet, kuba, pabeni, corbet, dsahern
  Cc: horms, chia-yu.chang, idosch, ij, brauner, jack, kuniyu, jlayton,
	netdev, linux-doc, linux-kernel, kong414, lance.yang, leon.hwang
In-Reply-To: <TY7PR01MB172057C053E8D550485A29A08E0352@TY7PR01MB17205.jpnprd01.prod.outlook.com>

Add net.ipv4.netns_inherit_tcp_sysctls to control whether a newly created
netns inherits selected IPv4 TCP sysctl state from old_net.

Default is 0, preserving current behavior.
When set to 1 in old_net, child netns receives parent TCP sysctl policy
during netns creation.
---
 include/net/netns/ipv4.h   | 1 +
 net/ipv4/sysctl_net_ipv4.c | 9 +++++++++
 2 files changed, 10 insertions(+)

diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
index 53b180cc7a94..184498d4d541 100644
--- a/include/net/netns/ipv4.h
+++ b/include/net/netns/ipv4.h
@@ -60,6 +60,7 @@ struct netns_ipv4 {
 
 	/* TX readonly hotpath cache lines */
 	__cacheline_group_begin(netns_ipv4_read_tx);
+	u8 sysctl_netns_inherit_tcp_sysctls;
 	u8 sysctl_tcp_early_retrans;
 	u8 sysctl_tcp_tso_win_divisor;
 	u8 sysctl_tcp_tso_rtt_log;
diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
index a1a50a5c80dc..58a310c029d9 100644
--- a/net/ipv4/sysctl_net_ipv4.c
+++ b/net/ipv4/sysctl_net_ipv4.c
@@ -1641,6 +1641,15 @@ static struct ctl_table ipv4_net_table[] = {
 		.extra1		= SYSCTL_ONE_THOUSAND,
 		.extra2		= &tcp_rto_max_max,
 	},
+	{
+		.procname	= "netns_inherit_tcp_sysctls",
+		.data		= &init_net.ipv4.sysctl_netns_inherit_tcp_sysctls,
+		.maxlen		= sizeof(u8),
+		.mode		= 0644,
+		.proc_handler	= proc_dou8vec_minmax,
+		.extra1		= SYSCTL_ZERO,
+		.extra2		= SYSCTL_ONE,
+	},
 };
 
 static __net_init int ipv4_sysctl_init_net(struct net *net)
-- 
2.47.3


^ permalink raw reply related

* [RFC PATCH net-next 1/3] ipv4: netns: group copyable TCP sysctls in netns_ipv4
From: nmreadelf @ 2026-04-30  1:33 UTC (permalink / raw)
  To: davem, edumazet, kuba, pabeni, corbet, dsahern
  Cc: horms, chia-yu.chang, idosch, ij, brauner, jack, kuniyu, jlayton,
	netdev, linux-doc, linux-kernel, kong414, lance.yang, leon.hwang
In-Reply-To: <TY7PR01MB172057C053E8D550485A29A08E0352@TY7PR01MB17205.jpnprd01.prod.outlook.com>

Group the TCP sysctl members into tcp_sysctl using struct_group().
This makes the memcpy and sizeof boundaries clear in follow-up
patches, avoids relying on writes across neighboring
members, and improves readability.
---
 .../net_cachelines/netns_ipv4_sysctl.rst      | 25 ++++++++-------
 include/net/netns/ipv4.h                      | 32 +++++++++++--------
 2 files changed, 32 insertions(+), 25 deletions(-)

diff --git a/Documentation/networking/net_cachelines/netns_ipv4_sysctl.rst b/Documentation/networking/net_cachelines/netns_ipv4_sysctl.rst
index beaf1880a19b..f6edf02618fa 100644
--- a/Documentation/networking/net_cachelines/netns_ipv4_sysctl.rst
+++ b/Documentation/networking/net_cachelines/netns_ipv4_sysctl.rst
@@ -43,23 +43,20 @@ u32                             ip_rt_min_pmtu
 int                             ip_rt_mtu_expires
 int                             ip_rt_min_advmss
 struct_local_ports              ip_local_ports
-u8                              sysctl_tcp_ecn
-u8                              sysctl_tcp_ecn_fallback
 u8                              sysctl_ip_default_ttl                                                                ip4_dst_hoplimit/ip_select_ttl
 u8                              sysctl_ip_no_pmtu_disc
-u8                              sysctl_ip_fwd_use_pmtu                       read_mostly                             ip_dst_mtu_maybe_forward/ip_skb_dst_mtu
 u8                              sysctl_ip_fwd_update_priority                                                        ip_forward
 u8                              sysctl_ip_nonlocal_bind
 u8                              sysctl_ip_autobind_reuse
 u8                              sysctl_ip_dynaddr
-u8                              sysctl_ip_early_demux                                            read_mostly         ip(6)_rcv_finish_core
 u8                              sysctl_raw_l3mdev_accept
-u8                              sysctl_tcp_early_demux                                           read_mostly         ip(6)_rcv_finish_core
 u8                              sysctl_udp_early_demux
 u8                              sysctl_nexthop_compat_mode
 u8                              sysctl_fwmark_reflect
+..                              struct_group(tcp_sysctl)                                                             bulk-copied via memcpy() in tcp_sk_init()
+u8                              sysctl_tcp_ecn
+u8                              sysctl_tcp_ecn_fallback
 u8                              sysctl_tcp_fwmark_accept
-u8                              sysctl_tcp_l3mdev_accept                                         read_mostly         __inet6_lookup_established/inet_request_bound_dev_if
 u8                              sysctl_tcp_mtu_probing
 int                             sysctl_tcp_mtu_probe_floor
 int                             sysctl_tcp_base_mss
@@ -85,6 +82,7 @@ unsigned_int                    sysctl_tcp_notsent_lowat                     rea
 u8                              sysctl_tcp_sack                                                                      tcp_syn_options
 u8                              sysctl_tcp_window_scaling                                                            tcp_syn_options,tcp_parse_options
 u8                              sysctl_tcp_timestamps
+u8                              sysctl_netns_inherit_tcp_sysctls                     read_mostly                             tcp_schedule_loss_probe(tcp_write_xmit)
 u8                              sysctl_tcp_early_retrans                     read_mostly                             tcp_schedule_loss_probe(tcp_write_xmit)
 u32                             sysctl_tcp_rto_max_ms
 u8                              sysctl_tcp_recovery                                                                  tcp_fastretrans_alert
@@ -123,18 +121,21 @@ unsigned_long                   sysctl_tcp_comp_sack_delay_ns
 unsigned_long                   sysctl_tcp_comp_sack_slack_ns                                                        __tcp_ack_snd_check
 int                             sysctl_max_syn_backlog
 int                             sysctl_tcp_fastopen
-struct_tcp_congestion_ops       tcp_congestion_control                                                               init_cc
-struct_tcp_fastopen_context     tcp_fastopen_ctx
 unsigned_int                    sysctl_tcp_fastopen_blackhole_timeout
-atomic_t                        tfo_active_disable_times
-unsigned_long                   tfo_active_disable_stamp
-u32                             tcp_challenge_timestamp
-u32                             tcp_challenge_count
 u8                              sysctl_tcp_plb_enabled
 u8                              sysctl_tcp_plb_idle_rehash_rounds
 u8                              sysctl_tcp_plb_rehash_rounds
 u8                              sysctl_tcp_plb_suspend_rto_sec
 int                             sysctl_tcp_plb_cong_thresh
+u8                              sysctl_tcp_shrink_window
+u8                              sysctl_tcp_syn_linear_timeouts
+..                              end_of(tcp_sysctl)
+struct_tcp_congestion_ops       tcp_congestion_control                                                               init_cc
+struct_tcp_fastopen_context     tcp_fastopen_ctx
+atomic_t                        tfo_active_disable_times
+unsigned_long                   tfo_active_disable_stamp
+u32                             tcp_challenge_timestamp
+u32                             tcp_challenge_count
 int                             sysctl_udp_wmem_min
 int                             sysctl_udp_rmem_min
 u8                              sysctl_fib_notify_on_flag_change
diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
index 2dbd46fc4734..53b180cc7a94 100644
--- a/include/net/netns/ipv4.h
+++ b/include/net/netns/ipv4.h
@@ -116,7 +116,6 @@ struct netns_ipv4 {
 #endif
 	bool			fib_has_custom_local_routes;
 	bool			fib_offload_disabled;
-	u8			sysctl_tcp_shrink_window;
 #ifdef CONFIG_IP_ROUTE_CLASSID
 	atomic_t		fib_num_tclassid_users;
 #endif
@@ -149,11 +148,6 @@ struct netns_ipv4 {
 
 	struct local_ports ip_local_ports;
 
-	u8 sysctl_tcp_ecn;
-	u8 sysctl_tcp_ecn_option;
-	u8 sysctl_tcp_ecn_option_beacon;
-	u8 sysctl_tcp_ecn_fallback;
-
 	u8 sysctl_ip_default_ttl;
 	u8 sysctl_ip_no_pmtu_disc;
 	u8 sysctl_ip_fwd_update_priority;
@@ -169,6 +163,14 @@ struct netns_ipv4 {
 	u8 sysctl_nexthop_compat_mode;
 
 	u8 sysctl_fwmark_reflect;
+
+	/* TCP sysctl fields enclosed in tcp_sysctl group are copied
+	 * using a single memcpy() in tcp_sk_init()
+	 */
+	struct_group(tcp_sysctl, u8 sysctl_tcp_ecn;
+	u8 sysctl_tcp_ecn_option;
+	u8 sysctl_tcp_ecn_option_beacon;
+	u8 sysctl_tcp_ecn_fallback;
 	u8 sysctl_tcp_fwmark_accept;
 	u8 sysctl_tcp_mtu_probing;
 	int sysctl_tcp_mtu_probe_floor;
@@ -227,24 +229,28 @@ struct netns_ipv4 {
 	unsigned long sysctl_tcp_comp_sack_slack_ns;
 	int sysctl_max_syn_backlog;
 	int sysctl_tcp_fastopen;
-	const struct tcp_congestion_ops __rcu  *tcp_congestion_control;
-	struct tcp_fastopen_context __rcu *tcp_fastopen_ctx;
 	unsigned int sysctl_tcp_fastopen_blackhole_timeout;
-	atomic_t tfo_active_disable_times;
-	unsigned long tfo_active_disable_stamp;
-	u32 tcp_challenge_timestamp;
-	u32 tcp_challenge_count;
 	u8 sysctl_tcp_plb_enabled;
 	u8 sysctl_tcp_plb_idle_rehash_rounds;
 	u8 sysctl_tcp_plb_rehash_rounds;
 	u8 sysctl_tcp_plb_suspend_rto_sec;
 	int sysctl_tcp_plb_cong_thresh;
+	u8 sysctl_tcp_shrink_window;
+	u8 sysctl_tcp_syn_linear_timeouts;
+
+	); /* end tcp_sysctl group */
+
+	const struct tcp_congestion_ops __rcu  *tcp_congestion_control;
+	struct tcp_fastopen_context __rcu *tcp_fastopen_ctx;
+	atomic_t tfo_active_disable_times;
+	unsigned long tfo_active_disable_stamp;
+	u32 tcp_challenge_timestamp;
+	u32 tcp_challenge_count;
 
 	int sysctl_udp_wmem_min;
 	int sysctl_udp_rmem_min;
 
 	u8 sysctl_fib_notify_on_flag_change;
-	u8 sysctl_tcp_syn_linear_timeouts;
 
 #ifdef CONFIG_NET_L3_MASTER_DEV
 	u8 sysctl_udp_l3mdev_accept;
-- 
2.47.3


^ permalink raw reply related

* [RFC PATCH net-next 0/3] netns: optionally inherit IPv4 TCP sysctls from old net
From: nmreadelf @ 2026-04-30  1:32 UTC (permalink / raw)
  To: davem, edumazet, kuba, pabeni, corbet, dsahern
  Cc: horms, chia-yu.chang, idosch, ij, brauner, jack, kuniyu, jlayton,
	netdev, linux-doc, linux-kernel, kong414, lance.yang, leon.hwang
In-Reply-To: <TY7PR01MB172057C053E8D550485A29A08E0352@TY7PR01MB17205.jpnprd01.prod.outlook.com>

a new network namespace starts with built-in TCP defaults.
In container-heavy setups, operators often tune TCP sysctls in init_net and then
need to re-apply the same values for each new netns.

This series adds an opt-in mechanism to initialize per-netns IPv4 TCP sysctl
settings from init_net at netns creation time.

Behavior:

Default is unchanged.
When net.ipv4.netns_inherit_tcp_sysctls=1, new netns inherit
TCP sysctl from old_net.

nmreadelf (3):
  ipv4: netns: group copyable TCP sysctls in netns_ipv4
  net: ipv4: add netns_inherit_tcp_sysctls sysctl
  tcp: netns: optionally inherit IPv4 TCP sysctls from parent netns

 .../net_cachelines/netns_ipv4_sysctl.rst      | 25 +++----
 include/net/netns/ipv4.h                      | 33 +++++----
 net/core/net_namespace.c                      | 72 +++++++++++++++++++
 net/ipv4/sysctl_net_ipv4.c                    |  9 +++
 4 files changed, 114 insertions(+), 25 deletions(-)

-- 
2.47.3


^ permalink raw reply

* [RFC PATCH net-next 0/3] netns: optionally inherit IPv4 TCP sysctls from old net
From: nmreadelf @ 2026-04-30  1:30 UTC (permalink / raw)
  To: davem, edumazet, kuba, pabeni, corbet, dsahern
  Cc: horms, chia-yu.chang, idosch, ij, brauner, jack, kuniyu, jlayton,
	netdev, linux-doc, linux-kernel, kong414, lance.yang, leon.hwang

a new network namespace starts with built-in TCP defaults.
In container-heavy setups, operators often tune TCP sysctls in init_net and then
need to re-apply the same values for each new netns.

This series adds an opt-in mechanism to initialize per-netns IPv4 TCP sysctl
settings from init_net at netns creation time.

Behavior:

Default is unchanged.
When net.ipv4.netns_inherit_tcp_sysctls=1, new netns inherit
TCP sysctl from old_net.

nmreadelf (3):
  ipv4: netns: group copyable TCP sysctls in netns_ipv4
  net: ipv4: add netns_inherit_tcp_sysctls sysctl
  tcp: netns: optionally inherit IPv4 TCP sysctls from parent netns

 .../net_cachelines/netns_ipv4_sysctl.rst      | 25 +++----
 include/net/netns/ipv4.h                      | 33 +++++----
 net/core/net_namespace.c                      | 72 +++++++++++++++++++
 net/ipv4/sysctl_net_ipv4.c                    |  9 +++
 4 files changed, 114 insertions(+), 25 deletions(-)

-- 
2.47.3


^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox