Skip to content

Conversation

@belegdol
Copy link
Collaborator

@belegdol belegdol commented Dec 7, 2025

Description

Update odroidxu4-current kernel to 6.6.119.
I had to adjust two patches to apply on top of hardkernel changes.
The change to 117 → 118 is trivial.
For 116 → 117, the hardkernel change (hardkernel/linux@0cd454a) is quite extensive. The change needing adjustment is gregkh/linux@4e83377. As discussed in #9034, gregkh/linux@4e83377 has been dropped entirely.

How Has This Been Tested?

  • Reboot of my Odroid HC1

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules

Summary by CodeRabbit

  • New Features

    • Added polling interval configuration for USB debug capability devices.
    • Extended GPIO regmap configuration with fixed direction output support.
  • Bug Fixes

    • Improved BTRFS zone finishing handling and error paths.
    • Enhanced audit system conditional checks.
    • Refined network queue discipline control flow for edge cases.
  • Chores

    • Kernel version bump to 6.6.116.
    • Various driver and subsystem stability improvements.

✏️ Tip: You can customize this high-level summary in your review settings.

6.6-stable commit 4e83377 is not easily mergeable with hardkernel 0cd454a
and it is not clear whether the memleak it fixes occurs with the
hardkernel code at all. As such, drop it entirely.
@belegdol belegdol requested a review from joekhoobyar as a code owner December 7, 2025 13:30
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 7, 2025

Walkthrough

Linux kernel patch incrementing SUBLEVEL from 115 to 116, introducing architectural additions and modifications across multiple subsystems: GPIO regmap fixed-direction support, USB xHCI debug polling intervals, BTRFS zoned storage function signature changes, network qdisc refactoring, and various driver and subsystem enhancements.

Changes

Cohort / File(s) Summary
Kernel Version Bump
Makefile
SUBLEVEL incremented from 115 to 116
GPIO Regmap Enhancements
include/linux/gpio/regmap.h, drivers/gpio/gpio-regmap.c
Extended gpio_regmap_config struct with fixed_direction_output bitmap, optional regmap IRQ fields, and irq_domain pointer; updated allocation and lifecycle management logic in registration/unregistration handlers
USB xHCI Debug Capabilities
drivers/usb/host/xhci-dbgcap.h, drivers/usb/host/xhci-dbgcap.c
Added poll interval feature with new constants (DBC_POLL_INTERVAL_DEFAULT, DBC_POLL_INTERVAL_MAX, DBC_XFER_INACTIVITY_TIMEOUT), struct fields (poll_interval, xfer_timestamp), and sysfs DEVICE_ATTR_RW attribute dbc_poll_interval_ms
BTRFS Zone Management
fs/btrfs/zoned.h, fs/btrfs/zoned.c, fs/btrfs/disk-io.c, fs/btrfs/extent-tree.c, fs/btrfs/tree-log.c, fs/btrfs/inode.c, fs/btrfs/scrub.c, fs/btrfs/transaction.c
Function signature changes including btrfs_zone_finish_endio return type changed to int; adjusted zone finish/endio semantics and error path handling; memory barrier primitive updates; minor control flow refinements across zone and tree operations
Network Qdisc Scheduling
include/net/pkt_sched.h, net/sched/sch_api.c
Removed qdisc_warn_nonwc prototype from header; converted to static inline in sch_api.c; added static inline qdisc_peek_len helper function and updated call sites
MPTCP Path Management
net/mptcp/pm_netlink.c
Added early exit label path in create_subflow_or_signal_addr for conditional flag handling
Performance Events
kernel/events/callchain.c
Enhanced guard condition for crosstask user stack processing with additional early return
Audit Subsystem
include/linux/audit.h
Minor conditional variation in audit helper signature affecting audit_fanotify usage patterns
Architecture Support
arch/\\*/kernel/asm-offsets.c (multiple architectures)
Added COMPILE_OFFSETS define in asm-offsets headers across architecture-specific files

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45–75 minutes

Areas requiring extra attention:

  • BTRFS public API changes: Return type modifications to btrfs_zone_finish_endio and related zone management functions require careful verification of all call sites and error handling paths across multiple BTRFS files
  • GPIO regmap structure expansion: New fixed_direction_output bitmap and optional IRQ fields affect allocation, initialization, and cleanup logic; conditional compilation paths must be validated
  • USB xHCI debug sysfs attribute: Poll interval feature adds new user-facing interface requiring careful sysfs handler implementation and boundary validation
  • Qdisc refactoring: Moving function from exported prototype to static inline requires ensuring all consumers properly include the implementation file
  • Cross-subsystem interactions: Changes span filesystem, networking, USB, and GPIO drivers requiring verification that modifications don't inadvertently affect inter-subsystem dependencies

Suggested reviewers

  • joekhoobyar
  • rpardini
  • pyavitz
  • amazingfate
  • igorpecovnik

Poem

🐰 A kernel patch hops through the code,
Version bumps lighter the load,
GPIO regmaps take their flight,
BTRFS zones finish just right,
While qdisc schedules keep the road. 🚀

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Title check ⚠️ Warning The title 'Update odroidxu4-current to 6.6.119' is vague and does not match the actual patch file content, which contains changes for version 6.6.115-116 according to the raw summary. Update the title to accurately reflect the patch version range (e.g., 'Update odroidxu4 kernel patch to 6.6.115-116') or clarify the version progression in the title.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between f9cf9ae and a8a847d.

📒 Files selected for processing (1)
  • patch/kernel/archive/odroidxu4-6.6/patch-6.6.115-116.patch (1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub API (https://api.github.com/repos/armbian/build/pulls/{pr_number}/files) to get the complete picture of what files are being added or modified, especially for U-Boot patches that will be applied during the build process.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:76-86
Timestamp: 2025-03-31T22:20:48.475Z
Learning: For the Armbian build project, maintaining consistency with existing patches across U-Boot versions (such as between 2025.01 and 2025.04) is prioritized over refactoring individual patches for code improvements.
📚 Learning: 2025-11-20T18:20:11.985Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8968
File: patch/u-boot/u-boot-sunxi/arm64-dts-sun50i-h6-orangepi.dtsi-Rollback-r_rsb-to-r_i2c.patch:36-36
Timestamp: 2025-11-20T18:20:11.985Z
Learning: The rewrite-patches tool (REWRITE_PATCHES=yes) in the Armbian build system can inadvertently introduce semantic changes when the u-boot/kernel git base revision differs from expected state. The tool applies patches, commits them, and re-exports them using git format-patch, which can cause the re-exported patch to reflect the base revision's state rather than preserving the original patch intent. This is particularly problematic for device tree changes like interrupt specifications. The tool currently lacks validation mechanisms to detect such semantic drift, and affected patches must be manually corrected after rewriting.

Applied to files:

  • patch/kernel/archive/odroidxu4-6.6/patch-6.6.115-116.patch
📚 Learning: 2025-07-27T15:56:34.414Z
Learnt from: pyavitz
Repo: armbian/build PR: 8421
File: config/kernel/linux-sunxi64-edge.config:438-439
Timestamp: 2025-07-27T15:56:34.414Z
Learning: CONFIG_NET_SCH_DEFAULT is a boolean kernel configuration option (=y or =n) that enables/disables the ability to override the default network queueing discipline at runtime. When set to 'y', it allows setting the actual qdisc name via /proc/sys/net/core/default_qdisc at runtime, not in the kernel config file itself.

Applied to files:

  • patch/kernel/archive/odroidxu4-6.6/patch-6.6.115-116.patch
🔇 Additional comments (1)
patch/kernel/archive/odroidxu4-6.6/patch-6.6.115-116.patch (1)

1-1467: Upstream kernel stable patch (6.6.115 → 6.6.116) — standard kernel update

This patch is part of the Linux kernel stable series update. Key changes include:

  1. Security hardening (x86 CPU bugs): LFENCE is now correctly marked as "Vulnerable" for Spectre v2 mitigation status, and retbleed mitigation explicitly sets NONE on failure.

  2. BTRFS zoned storage: btrfs_zone_finish_endio signature changed from void to int to properly propagate errors. This is a correctness fix.

  3. Network scheduler: qdisc_warn_nonwc moved to header as inline function, and qdisc_peek_len is now shared between sch_hfsc and sch_qfq. Note: This removes an exported symbol which could affect out-of-tree modules.

  4. Perf events: Improved handling of kernel threads and io_uring workers (PF_USER_WORKER) to prevent incorrect user stack sampling.

  5. GPIO regmap: Added fixed_direction_output bitmap support with proper resource management.

  6. Build system: COMPILE_OFFSETS define added to all architecture asm-offsets.c files.

The patch structure is well-formed and the changes are consistent with upstream kernel stable policy.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot added 02 Milestone: First quarter release size/large PR with 250 lines or more Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... Patches Patches related to kernel, U-Boot, ... labels Dec 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

02 Milestone: First quarter release Hardware Hardware related like kernel, U-Boot, ... Needs review Seeking for review Patches Patches related to kernel, U-Boot, ... size/large PR with 250 lines or more

Development

Successfully merging this pull request may close these issues.

1 participant