Skip to content

Add Linux 6.0–6.17 kernel API compatibility#18

Open
indricilia wants to merge 1 commit into
goecho:mainfrom
indricilia:kernel-6.17-compat
Open

Add Linux 6.0–6.17 kernel API compatibility#18
indricilia wants to merge 1 commit into
goecho:mainfrom
indricilia:kernel-6.17-compat

Conversation

@indricilia
Copy link
Copy Markdown

Summary

The driver fails to build on Linux kernels ≥ 6.0 due to several cfg80211/timer/module-API
changes. This PR adds version-guarded compatibility shims so the driver builds and loads
cleanly on kernel 6.17, while still building on older kernels (no behavior change for
existing supported kernels).

What changed

All adaptations are wrapped in LINUX_VERSION_CODE guards so older kernels are
unaffected.

Site Kernel that broke it Adaptation
aic8800_fdrv/rwnx_compat.h 6.15, 6.16 Shim del_timer{,_sync}timer_delete{,_sync},
from_timertimer_container_of
aic8800_fdrv/rwnx_main.c MODULE_IMPORT_NS 6.13 Quote namespace as a string literal
aic_load_fw/aic_bluetooth_main.c MODULE_IMPORT_NS 6.13 Same
aic8800_fdrv/rwnx_main.c set_monitor_channel 6.10 Add struct net_device *dev parameter
aic8800_fdrv/rwnx_main.c set_wiphy_params 6.13 Add int radio_idx parameter
aic8800_fdrv/rwnx_main.c set_tx_power 6.13 Add int radio_idx parameter
aic8800_fdrv/rwnx_main.c start_radar_detection 6.0 Add int link_id parameter
aic8800_fdrv/rwnx_rx.c cfg80211_rx_spurious_frame, cfg80211_rx_unexpected_4addr_frame 6.0
Pass link_id = -1
aic8800_fdrv/rwnx_radar.c cfg80211_cac_event 6.4 Pass link_id = 0

Test setup

  • Built and loaded on Fedora 43, kernel 6.17.1-300.fc43.x86_64, gcc 15.2.1.
  • Hardware: AIC8800 USB dongle (a69c:5721 CD-ROM mode → a69c:8d80 firmware-load
    mode → a69c:8d83 Wi-Fi mode).
  • Verified aic_load_fw.ko and aic8800_fdrv.ko build with no errors, load via
    modprobe, and the device transitions through all three USB IDs to expose a
    wlan interface.

Test plan for reviewers

  • Build on a kernel < 6.0 to confirm guards don't regress older-kernel support.
  • Build on a 6.x kernel.
  • Plug in dongle; verify wlan interface appears.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant