Backport main commit 2c4ab4b421 to
legacy-mcu1, preserving the branch's MCU1 firmware and loader profile.
Adapt the probe status link ID, probe_peer callback and input cookie APIs;
retain cfg80211-assigned cookies through asynchronous completion paths.
Add an isolated native-kernel build check and record the regression results.
The original branch reproduces all six reported errors on 7.3-rc3. The fix
builds all three modules and passes MODPOST on upstream 7.3 final and Ubuntu
7.3-rc3, 7.2 and 6.17 headers. The final-release module_layout CRCs match
the fully built test kernel. Hardware operation has not been tested.
Refs #111
Co-authored-by: MastaG <badouri.g@gmail.com>
Native kernel build regression
Build the current driver against real, prepared kernel headers and symbol versions. The script cleans a temporary source copy, builds all three modules and leaves the results for inspection. It does not install or load them.
bash tests/kernel-build/build.sh /path/to/kernel/build CC=gcc-14
Set JOBS to choose parallelism and TMPDIR to an existing directory if
build outputs need to survive system temporary-directory cleanup.
Use the kernel's matching compiler and configuration. For a custom kernel,
pass the exact output directory used to build it, including O=... when
applicable. make modules_prepare alone does not generate Module.symvers;
see the external module build documentation.
For OpenWrt wireless backports, use the separate
backports build check, which supplies the
staged wireless headers, symbol versions and CFG80211_VERSION together.
Issue #111: Linux 7.3 on legacy-mcu1
The legacy-mcu1 branch was missing main's Linux 7.3 compatibility commit
2c4ab4b.
The backport adapts cfg80211_probe_status()'s link ID, the renamed
probe_peer callback, and the input cookies for probe, management TX and
remain-on-channel operations. Completion notifications retain the cookie
assigned by cfg80211; internal TX/RoC callers keep their driver-assigned
cookies. The existing MCU1 firmware and loader profile are unchanged.
The original branch at e074b7e reproduces all six errors from the
issue's build log
against Linux 7.3-rc3 headers: two probe-status argument errors, the renamed
probe callback and its resulting initializer error, and incompatible
management TX and remain-on-channel callback types.
Verified on 2026-10-21
| Kernel/build headers | Fixed legacy-mcu1 result |
|---|---|
| Upstream Linux 7.3.0 final, x86_64 test configuration | All three modules built; MODPOST passed |
| Ubuntu 7.3.0-070300rc3-generic headers | All three modules built; MODPOST passed |
| Ubuntu 7.2.0-070200-generic headers | All three modules built; MODPOST passed |
| Ubuntu 6.17.0-14-generic headers | All three modules built; MODPOST passed |
The final-release check uses the upstream linux-7.3.tar.xz source, checked
against kernel.org's SHA-256 manifest. The test kernel enables modules,
symbol versioning, cfg80211, USB, Bluetooth and kprobes. Both vmlinux and
the in-tree modules were built with GCC 14.2.0 to generate matching headers
and Module.symvers before running this script. No symbol-version or
MODPOST checks were bypassed. All three modules report 7.3.0 vermagic and
the same module_layout CRC as that kernel's Module.symvers.
The Ubuntu header checks also use GCC 14.2.0. The 7.2 and 7.3-rc3 headers
were generated with GCC 15 and produce compiler/attribute warnings; BTF
generation is skipped where a matching vmlinux is unavailable. The rc3
cfg80211.h is byte-identical to the
upstream 7.3 final header.
These checks cover compilation and symbol resolution. They do not test the
reporter's custom 7.3.0-lxpup64 configuration, module loading, firmware
startup, Wi-Fi traffic or Bluetooth operation on hardware.
After a successful build, install only the newly built modules against the
same kernel. Chain build and installation with && so a failed build cannot
lead to an attempt to install stale modules. MCU1 hardware should continue
using legacy-mcu1.