VT-USB-AH-8108 (MM8108) asymmetric TX/RX rates — TX stuck at MCS0 despite 8MHz primary BW

Subject: VT-USB-AH-8108 (MM8108) asymmetric TX/RX rates — TX stuck at MCS0 despite 8MHz primary BW

Hardware/Software Setup

  • Dongle: Vantron VT-USB-AH-8108 (Morse Micro MM8108B2 chipset, MF15457 module)
  • Host: Ubuntu 24.04 LTS, kernel 6.8.0-124-generic, x86_64 (ESXi 8 VM with USB passthrough)
  • Driver: morse_driver v1.17.9 (rel_1_17_9_2026_Apr_20)
  • Firmware: mm8108b2-rl.bin (crc32 0x99d66138)
  • BCF: bcf_mf15457.bin (crc32 0x80459e55) — note: this BCF defaults to AU country, loaded with country=US module parameter
  • wpa_supplicant_s1g from MorseMicro/hostap (DPP disabled to work around OpenSSL 3.0 build errors)
  • morse_cli v1.17.8, built with CONFIG_MORSE_TRANS_NL80211=1

AP Setup

  • Country: US
  • Frequency: 916 MHz, Channel 27, 8 MHz bandwidth
  • WPA2-PSK

Problem
Asymmetric negotiated rates:

  • Downlink (AP → dongle): High rate, confirmed by server-side signal_poll (LINKSPEED=866, WIDTH=160MHz)
  • Uplink (dongle → AP): TX dominated by MCS0 per server-side stats; AP GUI reports this as MCS0/2MHz (~0.7 Mbps)

RSSI is excellent at -35 dBm so signal is not the issue.

Diagnostics

module parameters tried:

country=US fixed_bw=8 fixed_mcs=9 enable_rts_8mhz=1

signal_poll output:

RSSI=-35
LINKSPEED=866
NOISE=9999
FREQUENCY=5560
WIDTH=160 MHz
CENTER_FRQ1=5570
AVG_RSSI=-40

morse_cli stats (TX MCS distribution confirms uplink stuck at MCS0):

TX MCS                         : 82 0 0 0 0 0 0 1 11 0 0 0 0
Current Operating BW (MHz)     : 8
Current Primary Channel BW     : 8 MHz (after setting -p 8 via morse_cli channel)
Detected channel BW (Hz)       : 8000000
MCS max estimated              : 9
MCS min estimated              : 9
PHY rate max (kbps)            : 39000

After manually setting primary BW to 8MHz via morse_cli:

sudo morse_cli -i wlx189ba5195793 channel -c 916000 -o 8 -p 8 -n 5

The AP still reports uplink at MCS0/2MHz with no improvement in throughput.

Note: rc_stats command fails with error code -32757.

Questions

  1. Is the bcf_mf15457.bin BCF (defaulting to AU) causing TX rate control issues when overridden with country=US via module parameter? Should we request a US-specific BCF from Vantron?
  2. Why does the rate control fall back to MCS0 despite excellent signal (-35 dBm) and MCS max estimated = 9?
  3. Is there a known fix for TX rate asymmetry with the MM8108 USB dongle on Linux?
  4. Why does rc_stats fail with error -32757?

Any guidance appreciated. Happy to provide additional diagnostics.

Update with additional diagnostics

I’ve done some further testing that points more strongly to the BCF as the root cause.

Board type is not set

Running morse_cli boardtype returns:

Board type is not set

This suggests the BCF (bcf_mf15457.bin) is not being applied correctly, possibly because it is configured for AU and we are overriding country via the module parameter rather than having a native US BCF.

Fixed rate test

To rule out rate control as the cause, I forced fixed rate with the following module parameters:

country=US fixed_bw=8 fixed_mcs=9 enable_fixed_rate=1

Even with these settings, the stats show:

TX MCS                         : 46 0 0 0 0 0 0 0 0 6 0 0 0
Current Operating BW (MHz)     : 8
Current Primary Channel BW     : 2 MHz  (reverts to 2MHz despite fixed_bw=8)
Detected channel BW (Hz)       : 8000000
MCS max estimated              : 9
MCS min estimated              : 9
PHY rate max (kbps)            : 39000

Key observations:

  • TX is still dominated by MCS0 (46 packets) with only 6 at MCS9, even with fixed rate forced
  • Primary Channel BW reverts to 2 MHz on reconnect despite fixed_bw=8 module parameter
  • The AP continues to report uplink as MCS0/2MHz

Conclusion

The fixed_bw module parameter appears to be ignored for primary channel BW, and the rate control falls back to MCS0 even when fixed rate is forced. Combined with “Board type is not set”, this strongly suggests the BCF is not configuring the hardware correctly for US operation.

We are using bcf_mf15457.bin which defaults to AU country code. We are overriding via country=US module parameter rather than a native US BCF. Is there a US-specific BCF available for the MF15457 module? Or is there another way to correctly configure the BCF for US operation?

Also noting that rc_stats continues to fail with error code -32757 which may be related.

Happy to provide any additional diagnostics.

Further update - rate control ignoring fixed rate parameters, OTP confirmed as AU

After extensive additional diagnostics I believe I have identified the root cause. Summarizing findings below.

OTP contains AU country code

The MM8108B2 chip has AU burned into its OTP. When enable_otp_check=1 (default), the driver reads AU from OTP and sets MORSE_STATE_FLAG_REGDOM_SET_BY_OTP, overriding our country=US module parameter. This was confirmed by examining firmware.c and mm8108.c in the driver source.

Loading .regdom_US via enable_otp_check=0

Disabling OTP check via enable_otp_check=0 correctly causes the driver to load .regdom_US from the BCF:

morse_usb 1-1:1.0: Write BCF .regdom_US to chip - addr 11cb40 size 124

This briefly improved uplink to ~33 Mbps at reconnect, confirming the hardware is physically capable of high rates with the correct regdom.

Rate control falls back immediately

Despite loading .regdom_US, the uplink rate falls back to MCS0/2MHz within seconds. Stats show:

TX MCS                    : 53 0 0 0 0 0 0 0 0 7 0 0 0
Current Primary Channel BW: 2 MHz  (stuck, despite operating BW=8MHz)
MCS max estimated         : 9
MCS min estimated         : 9

Note: no TX retries or drops — rate control is choosing MCS0 proactively, not as a response to packet loss.

Fixed rate parameters ignored by firmware

Even with explicit fixed rate forced via module parameters:

enable_fixed_rate=1 fixed_mcs=9 fixed_bw=8

The firmware continues to transmit mostly at MCS0 with primary BW stuck at 2MHz. These parameters appear to be ignored at the firmware level.

Board type never set

morse_cli boardtype consistently returns Board type is not set regardless of OTP check setting, suggesting the board type OTP bank is also not programmed for this device.

rc_stats unavailable

morse_cli rc_stats fails with error -32757, preventing deeper rate control diagnostics.

Conclusion

The hardware briefly achieves 33 Mbps uplink when .regdom_US is loaded, confirming physical capability. However the firmware’s TX rate control immediately falls back to MCS0/2MHz and ignores fixed rate override parameters. Combined with the unprogrammed board type OTP and AU country OTP, this suggests the firmware requires either:

  1. A US-specific firmware build, or
  2. The OTP to be programmed with US country code and correct board type

Neither appears achievable from Linux userspace. Is this a known issue with the MM8108 USB dongle on US firmware? Is there a US-specific firmware or BCF available that would address this?

Happy to provide any additional diagnostics including full stats output or dmesg logs.

I think AI is leading you astray here.

Go back to your standard setup without any strange overrides or hackery, and don’t determine the TX/RX by looking at the current MCS. This is because if you’re not doing traffic this will be low (since a higher MCS isn’t used for management frames).

Try actually sending UDP data using iperf3 or similar and see what your performance is. While doing this, you can check your MCS, and my bet is that it will be much higher :slight_smile:

If it’s still not working, please show the dmesg output from the driver load, as this will show what BCF is being used (and why it’s being used).

Yes, AI is so seductive :slight_smile:
So tried putting everything back.
Using: iperf3 -c -u -b 50M -P 1 -t 60 -p 5201
Downlink AP->MM8108, I’m getting 49Mb/s, that’s great.
Uplink MM8108->AP, I’m getting 12MB/s, I was hoping for more.

My AI buddy pointed this out…

==Uplink MM8108->AP==
=== signal_poll ===
RSSI=-48
LINKSPEED=866
NOISE=9999
FREQUENCY=5560
WIDTH=160 MHz
CENTER_FRQ1=5570
AVG_RSSI=-46
=== morse stats ===
ARP gratuitous generated : 0
TCP keepalives generated : 0
AGG TX rate is NULL : 0
TX MCS : 122 0 0 0 0 1 0 9 16 42 0 0 0
Current Operating BW (MHz) : 8
Current Primary Channel BW (MHz) : 2
Detected channel BW (Hz) : 4000000
Oper BW indicator : 3
TX subband operating BW (MHz) : 0
TX subband primary channel BW (MHz) : 0
TX subband primary index : 0
PHY rate max (kbps) : 43333
PHY rate min (kbps) : 43333

Update - you were right, rate control is working correctly under load

Thank you for the correction. Running UDP iperf while monitoring stats confirmed the rate control is working as expected under traffic load:

TX MCS: 241 0 0 0 1 0 1 127 336 36940 0 0 0

MCS9 dominates with 36,940 packets during the test, giving ~12 Mbps throughput. The idle MCS0 stats we were seeing earlier were simply management frames, not a rate control problem. Apologies for the noise in the previous posts.

Remaining issue - Primary Channel BW stuck at 2MHz

However there is still a real performance limitation. During the UDP iperf test, stats show:

TX MCS                         : MCS9 (correct)
Current Operating BW (MHz)     : 8
Current Primary Channel BW     : 2 MHz  (expected 8 MHz)
Detected channel BW (Hz)       : 2000000
PHY rate max (kbps)            : 39000 (~39 Mbps)

The operating BW is correctly set to 8MHz, but the primary channel BW is stuck at 2MHz. At MCS9/8MHz we would expect ~43 Mbps, but we are getting ~12 Mbps because the primary BW is limited to 2MHz.

Setup

  • Device: Vantron VT-USB-AH-8108 (MM8108B2, MF15457 module)
  • Driver: morse_driver v1.17.9
  • BCF: bcf_mf15457.bin (OTP has AU country code, using enable_otp_check=0 with country=US)
  • AP: US, 916 MHz, Channel 27, 8MHz bandwidth, WPA2
  • RSSI: -47 dBm

==========

So what’s constraining the uplink rate? Do I have the correct BCF, the country code is concerning as I’m in the USA?

Thx much

Please show the output of dmesg when the driver loads.

I still strongly doubt that your Vantron dongle is locked to AU.

Primary channel BW is expected to be 2MHz (this is the maximum). Maybe get a better AI :laughing:

Something is going wrong with your testing because you’re getting performance above the phy rate on the downlink. Make sure to measure on the receiver side rather than the sender. In our testing, we see max ~30Mbps UDP on MM8108.

Thx, here is the dmesg output part #1:

[89251.320867] usbcore: deregistering interface driver morse_usb
[89251.333003] wlx189ba5195793: deauthenticating from 50:2e:91:d2:cf:e4 by local choice (Reason: 3=DEAUTH_LEAVING)
[89251.711017] morse_usb 1-1:1.0: USB Morse #-1 now disconnected
[89253.919311] Morse Micro Dot11ah driver registration. Version 0-rel_1_17_9_2026_Apr_20
[89253.919327] channelization_scheme = 3 (IEEE802.11-REVmf)
[89254.801905] morse micro driver registration. Version 0-rel_1_17_9_2026_Apr_20
[89254.801944] morse_usb 1-1:1.0: USB Morse device now attached to Morse driver (minor=-1)
[89254.805859] morse_usb 1-1:1.0: Loaded firmware from morse/mm8108b2-rl.bin, size 479624, crc32 0x99d66138
[89254.805930] morse_usb 1-1:1.0: Loaded BCF from morse/bcf_default.bin, size 2124, crc32 0x80459e55
[89255.990036] morse_usb 1-1:1.0: Driver loaded with kernel module parameters
[89255.990056] morse_usb 1-1:1.0: enable_pre_assoc_ps : N
[89255.990071] morse_usb 1-1:1.0: slow_clock_mode : 0
[89255.990085] morse_usb 1-1:1.0: enable_1mhz_probes : Y
[89255.990099] morse_usb 1-1:1.0: enable_sched_scan : Y
[89255.990113] morse_usb 1-1:1.0: enable_hw_scan : Y
[89255.990126] morse_usb 1-1:1.0: enable_pv1 : N
[89255.990139] morse_usb 1-1:1.0: enable_page_slicing : N
[89255.990152] morse_usb 1-1:1.0: log_modparams_on_boot : Y
[89255.990165] morse_usb 1-1:1.0: enable_mcast_rate_control : N
[89255.990179] morse_usb 1-1:1.0: enable_mcast_whitelist : Y
[89255.990194] morse_usb 1-1:1.0: ocs_type : 1
[89255.990207] morse_usb 1-1:1.0: enable_wiphy : N
[89255.990220] morse_usb 1-1:1.0: enable_auto_mpsw : Y
[89255.990235] morse_usb 1-1:1.0: duty_cycle_probe_retry_threshold : 2500
[89255.990249] morse_usb 1-1:1.0: duty_cycle_mode : 0
[89255.990262] morse_usb 1-1:1.0: enable_auto_duty_cycle : Y
[89255.990276] morse_usb 1-1:1.0: dhcpc_lease_update_script : /morse/scripts/dhcpc_update.sh
[89255.990291] morse_usb 1-1:1.0: enable_ibss_probe_filtering : Y
[89255.990305] morse_usb 1-1:1.0: enable_dhcpc_offload : N
[89255.990318] morse_usb 1-1:1.0: enable_arp_offload : N
[89255.990331] morse_usb 1-1:1.0: enable_bcn_change_seq_monitor : N
[89255.990344] morse_usb 1-1:1.0: enable_cac : N
[89255.990357] morse_usb 1-1:1.0: max_mc_frames : 10
[89255.990371] morse_usb 1-1:1.0: tx_max_power_mbm : 2200
[89255.990385] morse_usb 1-1:1.0: enable_twt : Y
[89255.990397] morse_usb 1-1:1.0: enable_mac80211_connection_monitor : N
[89255.990411] morse_usb 1-1:1.0: enable_airtime_fairness : N
[89255.990424] morse_usb 1-1:1.0: max_aggregation_count : 0
[89255.990438] morse_usb 1-1:1.0: max_rate_tries : 1
[89255.990451] morse_usb 1-1:1.0: max_rates : 4
[89255.990464] morse_usb 1-1:1.0: enable_watchdog_reset : N
[89255.990478] morse_usb 1-1:1.0: watchdog_interval_secs : 30
[89255.990491] morse_usb 1-1:1.0: enable_watchdog : Y
[89255.990504] morse_usb 1-1:1.0: country : US
[89255.990517] morse_usb 1-1:1.0: enable_cts_to_self : N
[89255.990530] morse_usb 1-1:1.0: enable_rts_8mhz : N
[89255.990543] morse_usb 1-1:1.0: enable_trav_pilot : Y
[89255.990556] morse_usb 1-1:1.0: enable_sgi_rc : Y
[89255.990569] morse_usb 1-1:1.0: enable_mbssid_ie : N
[89255.990583] morse_usb 1-1:1.0: virtual_sta_max : 0
[89255.990596] morse_usb 1-1:1.0: thin_lmac : N
[89255.990609] morse_usb 1-1:1.0: enable_dynamic_ps_offload : Y
[89255.990622] morse_usb 1-1:1.0: enable_ps : 2
[89255.990635] morse_usb 1-1:1.0: enable_subbands : 2
[89255.990649] morse_usb 1-1:1.0: enable_survey : Y
[89255.990662] morse_usb 1-1:1.0: mcs10_mode : 0
[89255.990727] morse_usb 1-1:1.0: mcs_mask : 1023
[89255.990741] morse_usb 1-1:1.0: no_hwcrypt : N
[89255.990754] morse_usb 1-1:1.0: enable_ext_xtal_init : N
[89255.990767] morse_usb 1-1:1.0: enable_otp_check : N
[89255.990780] morse_usb 1-1:1.0: bcf :
[89255.990794] morse_usb 1-1:1.0: serial : default
[89255.990807] morse_usb 1-1:1.0: debug_mask : 8
[89255.990821] morse_usb 1-1:1.0: tx_status_lifetime_ms : 15000
[89255.990835] morse_usb 1-1:1.0: tx_queued_lifetime_ms : 1000
[89255.990849] morse_usb 1-1:1.0: max_txq_len : 32
[89255.990863] morse_usb 1-1:1.0: default_cmd_timeout_ms : 600
[89255.990876] morse_usb 1-1:1.0: reattach_hw : N
[89255.990890] morse_usb 1-1:1.0: hw_reload_after_stop : 5
[89255.990904] morse_usb 1-1:1.0: enable_short_bcn_as_dtim_override : -1
[89255.990918] morse_usb 1-1:1.0: rsn_beacon_mode : 0
[89255.990932] morse_usb 1-1:1.0: fw_bin_file :
[89255.990945] morse_usb 1-1:1.0: sdio_reset_time : 400
[89255.990959] morse_usb 1-1:1.0: macaddr_suffix : 00:00:00
[89255.990973] morse_usb 1-1:1.0: macaddr_octet : 255
[89255.990987] morse_usb 1-1:1.0: max_total_vendor_ie_bytes : 514
[89255.991000] morse_usb 1-1:1.0: hw_scan_prim_deconstruct : 0
[89255.991025] morse_usb 1-1:1.0: coredump_include : 1
[89255.991040] morse_usb 1-1:1.0: coredump_method : 1
[89255.991053] morse_usb 1-1:1.0: enable_coredump : Y
[89255.991067] morse_usb 1-1:1.0: enable_hw_leds : Y
[89255.991080] morse_usb 1-1:1.0: enable_mm_vendor_ie : Y
[89255.991093] morse_usb 1-1:1.0: fixed_guard : 0
[89255.991107] morse_usb 1-1:1.0: fixed_ss : 1
[89255.991120] morse_usb 1-1:1.0: fixed_bw : 2
[89255.991133] morse_usb 1-1:1.0: fixed_mcs : 4
[89255.991146] morse_usb 1-1:1.0: enable_fixed_rate : N
[89255.991755] uaccess char driver major number is 240
[89255.994940] morse_io: Device node ‘/dev/morse_io’ created successfully
[89255.995074] usbcore: registered new interface driver morse_usb
[89256.003996] morse_usb 1-1:1.0 wlx189ba5195793: renamed from wlan0
[89259.113852] wlx189ba5195793: authenticate with 50:2e:91:d2:cf:e4 (local address=18:9b:a5:19:57:93)
[89259.113875] wlx189ba5195793: send auth to 50:2e:91:d2:cf:e4 (try 1/3)
[89259.135418] wlx189ba5195793: authenticated
[89259.158651] wlx189ba5195793: associate with 50:2e:91:d2:cf:e4 (try 1/3)
[89259.181263] wlx189ba5195793: RX AssocResp from 50:2e:91:d2:cf:e4 (capab=0x11 status=0 aid=1)
[89259.311666] ------------[ cut here ]------------
[89259.311677] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1327:12
[89259.314097] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.316449] CPU: 2 PID: 24059 Comm: kworker/u19:3 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.316468] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.316483] Workqueue: events_unbound cfg80211_wiphy_work [cfg80211]
[89259.317346] Call Trace:
[89259.317357]
[89259.317370] dump_stack_lvl+0x76/0xa0
[89259.317395] dump_stack+0x10/0x20
[89259.317411] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.317444] mmrc_sta_init+0x252/0x370 [morse]
[89259.317799] morse_rc_sta_add+0x4f6/0x5e0 [morse]
[89259.318147] morse_rc_sta_state_check+0x73/0x170 [morse]
[89259.318476] morse_mac_ops_sta_state+0x816/0x10b0 [morse]
[89259.318830] drv_sta_state+0x105/0x260 [mac80211]
[89259.319849] _sta_info_move_state+0x308/0x460 [mac80211]
[89259.320772] sta_info_move_state+0x13/0x20 [mac80211]
[89259.321721] ieee80211_assoc_success+0x3ce/0x920 [mac80211]
[89259.322694] ieee80211_rx_mgmt_assoc_resp+0x425/0xa10 [mac80211]
[89259.323636] ieee80211_sta_rx_queued_mgmt+0xd3/0x4b0 [mac80211]
[89259.324568] ieee80211_iface_process_skb+0x19e/0x250 [mac80211]
[89259.325548] ? skb_dequeue+0x5f/0x80
[89259.325580] ieee80211_iface_work+0xb2/0x1a0 [mac80211]
[89259.326549] cfg80211_wiphy_work+0xbc/0xe0 [cfg80211]
[89259.327426] process_one_work+0x181/0x3a0
[89259.327454] worker_thread+0x306/0x440
[89259.327476] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.327502] ? __pfx_worker_thread+0x10/0x10
[89259.327522] kthread+0xf2/0x120
[89259.327551] ? __pfx_kthread+0x10/0x10
[89259.327580] ret_from_fork+0x44/0x70
[89259.327601] ? __pfx_kthread+0x10/0x10
[89259.327629] ret_from_fork_asm+0x1b/0x30
[89259.327668]
[89259.327733] —[ end trace ]—
[89259.327745] ------------[ cut here ]------------
[89259.327751] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1328:12
[89259.330125] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.332476] CPU: 2 PID: 24059 Comm: kworker/u19:3 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.332495] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.332508] Workqueue: events_unbound cfg80211_wiphy_work [cfg80211]
[89259.333395] Call Trace:
[89259.333403]
[89259.333411] dump_stack_lvl+0x76/0xa0
[89259.333432] dump_stack+0x10/0x20
[89259.333446] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.333476] mmrc_sta_init+0x265/0x370 [morse]
[89259.333775] morse_rc_sta_add+0x4f6/0x5e0 [morse]
[89259.334077] morse_rc_sta_state_check+0x73/0x170 [morse]
[89259.334355] morse_mac_ops_sta_state+0x816/0x10b0 [morse]
[89259.334660] drv_sta_state+0x105/0x260 [mac80211]
[89259.335647] _sta_info_move_state+0x308/0x460 [mac80211]
[89259.336637] sta_info_move_state+0x13/0x20 [mac80211]
[89259.337619] ieee80211_assoc_success+0x3ce/0x920 [mac80211]
[89259.338674] ieee80211_rx_mgmt_assoc_resp+0x425/0xa10 [mac80211]
[89259.339798] ieee80211_sta_rx_queued_mgmt+0xd3/0x4b0 [mac80211]
[89259.340902] ieee80211_iface_process_skb+0x19e/0x250 [mac80211]
[89259.341866] ? skb_dequeue+0x5f/0x80
[89259.341896] ieee80211_iface_work+0xb2/0x1a0 [mac80211]
[89259.342838] cfg80211_wiphy_work+0xbc/0xe0 [cfg80211]
[89259.343742] process_one_work+0x181/0x3a0
[89259.343769] worker_thread+0x306/0x440
[89259.343791] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.343814] ? __pfx_worker_thread+0x10/0x10
[89259.343834] kthread+0xf2/0x120
[89259.343862] ? __pfx_kthread+0x10/0x10
[89259.343911] ret_from_fork+0x44/0x70
[89259.343932] ? __pfx_kthread+0x10/0x10
[89259.343960] ret_from_fork_asm+0x1b/0x30
[89259.343997]
[89259.344050] —[ end trace ]—
[89259.344058] ------------[ cut here ]------------
[89259.344064] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1329:12
[89259.346472] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.348906] CPU: 2 PID: 24059 Comm: kworker/u19:3 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.348925] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.348938] Workqueue: events_unbound cfg80211_wiphy_work [cfg80211]
[89259.349831] Call Trace:
[89259.349839]
[89259.349847] dump_stack_lvl+0x76/0xa0
[89259.349868] dump_stack+0x10/0x20
[89259.349883] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.349912] mmrc_sta_init+0x278/0x370 [morse]
[89259.350215] morse_rc_sta_add+0x4f6/0x5e0 [morse]
[89259.350517] morse_rc_sta_state_check+0x73/0x170 [morse]
[89259.350797] morse_mac_ops_sta_state+0x816/0x10b0 [morse]
[89259.351101] drv_sta_state+0x105/0x260 [mac80211]
[89259.352066] _sta_info_move_state+0x308/0x460 [mac80211]
[89259.353022] sta_info_move_state+0x13/0x20 [mac80211]
[89259.353971] ieee80211_assoc_success+0x3ce/0x920 [mac80211]
[89259.355060] ieee80211_rx_mgmt_assoc_resp+0x425/0xa10 [mac80211]
[89259.356069] ieee80211_sta_rx_queued_mgmt+0xd3/0x4b0 [mac80211]
[89259.357146] ieee80211_iface_process_skb+0x19e/0x250 [mac80211]
[89259.358179] ? skb_dequeue+0x5f/0x80
[89259.358210] ieee80211_iface_work+0xb2/0x1a0 [mac80211]
[89259.359194] cfg80211_wiphy_work+0xbc/0xe0 [cfg80211]
[89259.360090] process_one_work+0x181/0x3a0
[89259.360116] worker_thread+0x306/0x440
[89259.360138] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.360161] ? __pfx_worker_thread+0x10/0x10
[89259.360181] kthread+0xf2/0x120
[89259.360208] ? __pfx_kthread+0x10/0x10
[89259.360237] ret_from_fork+0x44/0x70
[89259.360258] ? __pfx_kthread+0x10/0x10
[89259.360285] ret_from_fork_asm+0x1b/0x30
[89259.360322]
[89259.360384] —[ end trace ]—
[89259.360392] ------------[ cut here ]------------
[89259.360399] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1330:12
[89259.362861] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.365334] CPU: 2 PID: 24059 Comm: kworker/u19:3 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.365352] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.365366] Workqueue: events_unbound cfg80211_wiphy_work [cfg80211]
[89259.366365] Call Trace:
[89259.366373]
[89259.366382] dump_stack_lvl+0x76/0xa0
[89259.366402] dump_stack+0x10/0x20
[89259.366417] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.366447] mmrc_sta_init+0x28b/0x370 [morse]
[89259.366741] morse_rc_sta_add+0x4f6/0x5e0 [morse]
[89259.367036] morse_rc_sta_state_check+0x73/0x170 [morse]
[89259.367326] morse_mac_ops_sta_state+0x816/0x10b0 [morse]
[89259.367642] drv_sta_state+0x105/0x260 [mac80211]
[89259.368615] _sta_info_move_state+0x308/0x460 [mac80211]
[89259.369603] sta_info_move_state+0x13/0x20 [mac80211]
[89259.370569] ieee80211_assoc_success+0x3ce/0x920 [mac80211]
[89259.371566] ieee80211_rx_mgmt_assoc_resp+0x425/0xa10 [mac80211]
[89259.372509] ieee80211_sta_rx_queued_mgmt+0xd3/0x4b0 [mac80211]
[89259.373441] ieee80211_iface_process_skb+0x19e/0x250 [mac80211]
[89259.374440] ? skb_dequeue+0x5f/0x80
[89259.374470] ieee80211_iface_work+0xb2/0x1a0 [mac80211]
[89259.375428] cfg80211_wiphy_work+0xbc/0xe0 [cfg80211]
[89259.376305] process_one_work+0x181/0x3a0
[89259.376331] worker_thread+0x306/0x440
[89259.376353] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.376376] ? __pfx_worker_thread+0x10/0x10
[89259.376396] kthread+0xf2/0x120
[89259.376423] ? __pfx_kthread+0x10/0x10
[89259.376452] ret_from_fork+0x44/0x70
[89259.376473] ? __pfx_kthread+0x10/0x10
[89259.376500] ret_from_fork_asm+0x1b/0x30
[89259.376537]
[89259.376683] —[ end trace ]—
[89259.376692] ------------[ cut here ]------------
[89259.376699] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1331:12
[89259.379193] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.381690] CPU: 2 PID: 24059 Comm: kworker/u19:3 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.381709] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.381721] Workqueue: events_unbound cfg80211_wiphy_work [cfg80211]
[89259.382615] Call Trace:
[89259.382624]
[89259.382633] dump_stack_lvl+0x76/0xa0
[89259.382653] dump_stack+0x10/0x20
[89259.382669] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.382698] mmrc_sta_init+0x29e/0x370 [morse]
[89259.383000] morse_rc_sta_add+0x4f6/0x5e0 [morse]
[89259.383302] morse_rc_sta_state_check+0x73/0x170 [morse]
[89259.383599] morse_mac_ops_sta_state+0x816/0x10b0 [morse]
[89259.383940] drv_sta_state+0x105/0x260 [mac80211]
[89259.384920] _sta_info_move_state+0x308/0x460 [mac80211]
[89259.385910] sta_info_move_state+0x13/0x20 [mac80211]
[89259.386909] ieee80211_assoc_success+0x3ce/0x920 [mac80211]
[89259.387847] ieee80211_rx_mgmt_assoc_resp+0x425/0xa10 [mac80211]
[89259.388842] ieee80211_sta_rx_queued_mgmt+0xd3/0x4b0 [mac80211]
[89259.389775] ieee80211_iface_process_skb+0x19e/0x250 [mac80211]
[89259.390756] ? skb_dequeue+0x5f/0x80
[89259.390786] ieee80211_iface_work+0xb2/0x1a0 [mac80211]
[89259.391738] cfg80211_wiphy_work+0xbc/0xe0 [cfg80211]
[89259.392635] process_one_work+0x181/0x3a0
[89259.392661] worker_thread+0x306/0x440
[89259.392683] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.392706] ? __pfx_worker_thread+0x10/0x10
[89259.392725] kthread+0xf2/0x120
[89259.392753] ? __pfx_kthread+0x10/0x10
[89259.392781] ret_from_fork+0x44/0x70
[89259.392802] ? __pfx_kthread+0x10/0x10
[89259.392829] ret_from_fork_asm+0x1b/0x30
[89259.392866]
[89259.392991] —[ end trace ]—
[89259.433682] ------------[ cut here ]------------
[89259.433695] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1149:16
[89259.436280] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.438815] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.438835] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.438848] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.439140] Call Trace:
[89259.439148]
[89259.439158] dump_stack_lvl+0x76/0xa0
[89259.439180] dump_stack+0x10/0x20
[89259.439195] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.439227] mmrc_update+0x5e/0x1140 [morse]
[89259.439534] morse_rc_work+0x40/0x80 [morse]
[89259.439833] process_one_work+0x181/0x3a0
[89259.439860] worker_thread+0x306/0x440
[89259.439881] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.439905] ? __pfx_worker_thread+0x10/0x10
[89259.439925] kthread+0xf2/0x120
[89259.439952] ? __pfx_kthread+0x10/0x10
[89259.439982] ret_from_fork+0x44/0x70
[89259.440003] ? __pfx_kthread+0x10/0x10
[89259.440031] ret_from_fork_asm+0x1b/0x30
[89259.440067]
[89259.440109] —[ end trace ]—
[89259.440119] ------------[ cut here ]------------
[89259.440126] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1162:33
[89259.442732] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.445322] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.445341] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.445354] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.445672] Call Trace:
[89259.445680]
[89259.445689] dump_stack_lvl+0x76/0xa0
[89259.445709] dump_stack+0x10/0x20
[89259.445724] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.445753] mmrc_update+0xaa/0x1140 [morse]
[89259.446052] morse_rc_work+0x40/0x80 [morse]
[89259.446341] process_one_work+0x181/0x3a0
[89259.446367] worker_thread+0x306/0x440
[89259.446388] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.446411] ? __pfx_worker_thread+0x10/0x10
[89259.446431] kthread+0xf2/0x120
[89259.446458] ? __pfx_kthread+0x10/0x10
[89259.446487] ret_from_fork+0x44/0x70
[89259.446507] ? __pfx_kthread+0x10/0x10
[89259.446535] ret_from_fork_asm+0x1b/0x30
[89259.446570]
[89259.446612] —[ end trace ]—
[89259.446621] ------------[ cut here ]------------
[89259.446627] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1163:14
[89259.449257] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.451875] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic

dmesg output part #2:

#124-Ubuntu
[89259.451893] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.451906] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.452193] Call Trace:
[89259.452201]
[89259.452209] dump_stack_lvl+0x76/0xa0
[89259.452227] dump_stack+0x10/0x20
[89259.452242] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.452271] mmrc_update+0xbd/0x1140 [morse]
[89259.452582] morse_rc_work+0x40/0x80 [morse]
[89259.452872] process_one_work+0x181/0x3a0
[89259.452897] worker_thread+0x306/0x440
[89259.452918] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.452941] ? __pfx_worker_thread+0x10/0x10
[89259.452960] kthread+0xf2/0x120
[89259.452987] ? __pfx_kthread+0x10/0x10
[89259.453016] ret_from_fork+0x44/0x70
[89259.453037] ? __pfx_kthread+0x10/0x10
[89259.453064] ret_from_fork_asm+0x1b/0x30
[89259.453100]
[89259.453149] —[ end trace ]—
[89259.453157] ------------[ cut here ]------------
[89259.453164] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1164:32
[89259.455845] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.458496] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.458514] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.458527] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.458824] Call Trace:
[89259.458831]
[89259.458839] dump_stack_lvl+0x76/0xa0
[89259.458858] dump_stack+0x10/0x20
[89259.458873] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.458904] mmrc_update+0xd0/0x1140 [morse]
[89259.459203] morse_rc_work+0x40/0x80 [morse]
[89259.459491] process_one_work+0x181/0x3a0
[89259.459517] worker_thread+0x306/0x440
[89259.459538] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.459561] ? __pfx_worker_thread+0x10/0x10
[89259.459582] kthread+0xf2/0x120
[89259.459609] ? __pfx_kthread+0x10/0x10
[89259.459637] ret_from_fork+0x44/0x70
[89259.459658] ? __pfx_kthread+0x10/0x10
[89259.459685] ret_from_fork_asm+0x1b/0x30
[89259.459721]
[89259.459774] —[ end trace ]—
[89259.459783] ------------[ cut here ]------------
[89259.459789] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1170:17
[89259.462527] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.465230] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.465249] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.465262] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.465549] Call Trace:
[89259.465556]
[89259.465565] dump_stack_lvl+0x76/0xa0
[89259.465589] dump_stack+0x10/0x20
[89259.465604] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.465633] mmrc_update+0xe3/0x1140 [morse]
[89259.465932] morse_rc_work+0x40/0x80 [morse]
[89259.466220] process_one_work+0x181/0x3a0
[89259.466246] worker_thread+0x306/0x440
[89259.466267] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.466290] ? __pfx_worker_thread+0x10/0x10
[89259.466310] kthread+0xf2/0x120
[89259.466337] ? __pfx_kthread+0x10/0x10
[89259.466366] ret_from_fork+0x44/0x70
[89259.466386] ? __pfx_kthread+0x10/0x10
[89259.466413] ret_from_fork_asm+0x1b/0x30
[89259.466449]
[89259.466491] —[ end trace ]—
[89259.466499] ------------[ cut here ]------------
[89259.466506] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1174:34
[89259.469242] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.472070] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.472089] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.472101] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.472423] Call Trace:
[89259.472431]
[89259.472439] dump_stack_lvl+0x76/0xa0
[89259.472457] dump_stack+0x10/0x20
[89259.472472] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.472501] mmrc_update+0x5e4/0x1140 [morse]
[89259.472808] morse_rc_work+0x40/0x80 [morse]
[89259.473097] process_one_work+0x181/0x3a0
[89259.473122] worker_thread+0x306/0x440
[89259.473145] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.473168] ? __pfx_worker_thread+0x10/0x10
[89259.473188] kthread+0xf2/0x120
[89259.473215] ? __pfx_kthread+0x10/0x10
[89259.473243] ret_from_fork+0x44/0x70
[89259.473264] ? __pfx_kthread+0x10/0x10
[89259.473292] ret_from_fork_asm+0x1b/0x30
[89259.473328]
[89259.473369] —[ end trace ]—
[89259.473378] ------------[ cut here ]------------
[89259.473384] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1175:33
[89259.476171] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.479003] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.479022] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.479034] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.479355] Call Trace:
[89259.479363]
[89259.479371] dump_stack_lvl+0x76/0xa0
[89259.479390] dump_stack+0x10/0x20
[89259.479404] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.479433] mmrc_update+0x5f7/0x1140 [morse]
[89259.479742] morse_rc_work+0x40/0x80 [morse]
[89259.480031] process_one_work+0x181/0x3a0
[89259.480056] worker_thread+0x306/0x440
[89259.480078] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.480101] ? __pfx_worker_thread+0x10/0x10
[89259.480121] kthread+0xf2/0x120
[89259.480148] ? __pfx_kthread+0x10/0x10
[89259.480177] ret_from_fork+0x44/0x70
[89259.480197] ? __pfx_kthread+0x10/0x10
[89259.480225] ret_from_fork_asm+0x1b/0x30
[89259.480262]
[89259.480315] —[ end trace ]—
[89259.480324] ------------[ cut here ]------------
[89259.480330] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1182:54
[89259.483165] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.485980] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.485998] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.486011] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.486299] Call Trace:
[89259.486306]
[89259.486315] dump_stack_lvl+0x76/0xa0
[89259.486333] dump_stack+0x10/0x20
[89259.486348] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.486377] mmrc_update+0x1119/0x1140 [morse]
[89259.486682] morse_rc_work+0x40/0x80 [morse]
[89259.486971] process_one_work+0x181/0x3a0
[89259.486997] worker_thread+0x306/0x440
[89259.487018] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.487041] ? __pfx_worker_thread+0x10/0x10
[89259.487061] kthread+0xf2/0x120
[89259.487088] ? __pfx_kthread+0x10/0x10
[89259.487116] ret_from_fork+0x44/0x70
[89259.487137] ? __pfx_kthread+0x10/0x10
[89259.487164] ret_from_fork_asm+0x1b/0x30
[89259.487200]
[89259.487241] —[ end trace ]—
[89259.487249] ------------[ cut here ]------------
[89259.487256] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1182:12
[89259.490161] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.493023] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.493041] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.493054] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.493341] Call Trace:
[89259.493348]
[89259.493357] dump_stack_lvl+0x76/0xa0
[89259.493375] dump_stack+0x10/0x20
[89259.493390] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.493419] mmrc_update+0x10f9/0x1140 [morse]
[89259.493725] morse_rc_work+0x40/0x80 [morse]
[89259.494013] process_one_work+0x181/0x3a0
[89259.494039] worker_thread+0x306/0x440
[89259.494060] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.494083] ? __pfx_worker_thread+0x10/0x10
[89259.494103] kthread+0xf2/0x120
[89259.494130] ? __pfx_kthread+0x10/0x10
[89259.494162] ret_from_fork+0x44/0x70
[89259.494182] ? __pfx_kthread+0x10/0x10
[89259.494210] ret_from_fork_asm+0x1b/0x30
[89259.494245]
[89259.494287] —[ end trace ]—
[89259.494296] ------------[ cut here ]------------
[89259.494303] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1185:16
[89259.497243] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.500116] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.500135] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.500149] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.500437] Call Trace:
[89259.500446]
[89259.500454] dump_stack_lvl+0x76/0xa0
[89259.500472] dump_stack+0x10/0x20
[89259.500487] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.500516] mmrc_update+0x1109/0x1140 [morse]
[89259.500821] morse_rc_work+0x40/0x80 [morse]
[89259.501109] process_one_work+0x181/0x3a0
[89259.501135] worker_thread+0x306/0x440
[89259.501156] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.501179] ? __pfx_worker_thread+0x10/0x10
[89259.501198] kthread+0xf2/0x120
[89259.501225] ? __pfx_kthread+0x10/0x10
[89259.501254] ret_from_fork+0x44/0x70
[89259.501274] ? __pfx_kthread+0x10/0x10
[89259.501302] ret_from_fork_asm+0x1b/0x30
[89259.501337]
[89259.501379] —[ end trace ]—
[89259.501390] ------------[ cut here ]------------
[89259.501396] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:520:15
[89259.504330] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.507225] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.507243] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.507256] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.507543] Call Trace:
[89259.507550]
[89259.507559] dump_stack_lvl+0x76/0xa0
[89259.507582] dump_stack+0x10/0x20
[89259.507598] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.507628] calculate_throughput+0xb6/0x130 [morse]
[89259.507917] mmrc_update+0x388/0x1140 [morse]
[89259.508216] morse_rc_work+0x40/0x80 [morse]
[89259.508504] process_one_work+0x181/0x3a0
[89259.508530] worker_thread+0x306/0x440
[89259.508551] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.508574] ? __pfx_worker_thread+0x10/0x10
[89259.508593] kthread+0xf2/0x120
[89259.508620] ? __pfx_kthread+0x10/0x10
[89259.508649] ret_from_fork+0x44/0x70
[89259.508669] ? __pfx_kthread+0x10/0x10
[89259.508696] ret_from_fork_asm+0x1b/0x30
[89259.508732]
[89259.508784] —[ end trace ]—
[89259.508793] ------------[ cut here ]------------
[89259.508799] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1211:16
[89259.511698] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.514595] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.514613] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.514625] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.514918] Call Trace:
[89259.514926]
[89259.514934] dump_stack_lvl+0x76/0xa0
[89259.514952] dump_stack+0x10/0x20
[89259.514968] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.514997] mmrc_update+0x9f6/0x1140 [morse]
[89259.515296] morse_rc_work+0x40/0x80 [morse]
[89259.515590] process_one_work+0x181/0x3a0
[89259.515615] worker_thread+0x306/0x440
[89259.515637] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.515659] ? __pfx_worker_thread+0x10/0x10
[89259.515679] kthread+0xf2/0x120
[89259.515706] ? __pfx_kthread+0x10/0x10
[89259.515734] ret_from_fork+0x44/0x70
[89259.515754] ? __pfx_kthread+0x10/0x10
[89259.515782] ret_from_fork_asm+0x1b/0x30
[89259.515817]
[89259.515859] —[ end trace ]—
[89259.515867] ------------[ cut here ]------------
[89259.515874] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1215:16
[89259.518915] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.521915] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.521934] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.521946] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.522233] Call Trace:
[89259.522240]
[89259.522249] dump_stack_lvl+0x76/0xa0
[89259.522267] dump_stack+0x10/0x20
[89259.522283] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.522312] mmrc_update+0xa1c/0x1140 [morse]
[89259.522617] morse_rc_work+0x40/0x80 [morse]
[89259.522906] process_one_work+0x181/0x3a0
[89259.522931] worker_thread+0x306/0x440
[89259.522955] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.522977] ? __pfx_worker_thread+0x10/0x10
[89259.522997] kthread+0xf2/0x120
[89259.523024] ? __pfx_kthread+0x10/0x10
[89259.523052] ret_from_fork+0x44/0x70
[89259.523073] ? __pfx_kthread+0x10/0x10
[89259.523100] ret_from_fork_asm+0x1b/0x30
[89259.523136]
[89259.523177] —[ end trace ]—
[89259.523185] ------------[ cut here ]------------
[89259.523192] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1223:12
[89259.526260] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.529334] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.529353] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.529365] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.529658] Call Trace:
[89259.529666]
[89259.529674] dump_stack_lvl+0x76/0xa0
[89259.529693] dump_stack+0x10/0x20
[89259.529708] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.529736] mmrc_update+0xa7b/0x1140 [morse]
[89259.530035] morse_rc_work+0x40/0x80 [morse]
[89259.530324] process_one_work+0x181/0x3a0
[89259.530350] worker_thread+0x306/0x440
[89259.530371] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.530394] ? __pfx_worker_thread+0x10/0x10
[89259.530414] kthread+0xf2/0x120
[89259.530440] ? __pfx_kthread+0x10/0x10
[89259.530469] ret_from_fork+0x44/0x70
[89259.530489] ? __pfx_kthread+0x10/0x10
[89259.530516] ret_from_fork_asm+0x1b/0x30
[89259.530552]
[89259.530597] —[ end trace ]—
[89259.530605] ------------[ cut here ]------------
[89259.530611] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1223:12
[89259.533705] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.536740] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.536758] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.536770] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.537057] Call Trace:
[89259.537065]
[89259.537074] dump_stack_lvl+0x76/0xa0
[89259.537092] dump_stack+0x10/0x20
[89259.537107] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.537136] mmrc_update+0xa8e/0x1140 [morse]
[89259.537436] morse_rc_work+0x40/0x80 [morse]
[89259.537730] process_one_work+0x181/0x3a0
[89259.537756] worker_thread+0x306/0x440
[89259.537777] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.537800] ? __pfx_worker_thread+0x10/0x10
[89259.537819] kthread+0xf2/0x120
[89259.537846] ? __pfx_kthread+0x10/0x10
[89259.537875] ret_from_fork+0x44/0x70
[89259.537895] ? __pfx_kthread+0x10/0x10
[89259.537923] ret_from_fork_asm+0x1b/0x30
[89259.537959]
[89259.537998] —[ end trace ]—
[89259.538006] ------------[ cut here ]------------
[89259.538012] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:1224:12
[89259.541117] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.544204] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.544222] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.544234] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.544521] Call Trace:
[89259.544529]
[89259.544537] dump_stack_lvl+0x76/0xa0
[89259.544555] dump_stack+0x10/0x20
[89259.544570] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.544605] mmrc_update+0xaa1/0x1140 [morse]
[89259.544915] morse_rc_work+0x40/0x80 [morse]
[89259.545212] process_one_work+0x181/0x3a0
[89259.545238] worker_thread+0x306/0x440
[89259.545259] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.545282] ? __pfx_worker_thread+0x10/0x10
[89259.545302] kthread+0xf2/0x120
[89259.545329] ? __pfx_kthread+0x10/0x10
[89259.545357] ret_from_fork+0x44/0x70
[89259.545378] ? __pfx_kthread+0x10/0x10
[89259.545405] ret_from_fork_asm+0x1b/0x30
[89259.545441]
[89259.545494] —[ end trace ]—
[89259.545611] ------------[ cut here ]------------
[89259.545619] UBSAN: array-index-out-of-bounds in /home/chris/morse_driver/mmrc-submodule/src/core/mmrc.c:677:16
[89259.548869] index 66 is out of range for type ‘mmrc_stats_table [66]’
[89259.552009] CPU: 1 PID: 26624 Comm: kworker/u16:1 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.552028] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025
[89259.552040] Workqueue: MorseNetWorkQ morse_rc_work [morse]
[89259.552328] Call Trace:
[89259.552335]
[89259.552343] dump_stack_lvl+0x76/0xa0
[89259.552362] dump_stack+0x10/0x20
[89259.552377] __ubsan_handle_out_of_bounds+0xc6/0x110
[89259.552406] mmrc_update+0xb98/0x1140 [morse]
[89259.552716] morse_rc_work+0x40/0x80 [morse]
[89259.553004] process_one_work+0x181/0x3a0
[89259.553030] worker_thread+0x306/0x440
[89259.553051] ? _raw_spin_lock_irqsave+0xe/0x20
[89259.553075] ? __pfx_worker_thread+0x10/0x10
[89259.553094] kthread+0xf2/0x120
[89259.553123] ? __pfx_kthread+0x10/0x10
[89259.553151] ret_from_fork+0x44/0x70
[89259.553172] ? __pfx_kthread+0x10/0x10
[89259.553199] ret_from_fork_asm+0x1b/0x30
[89259.553235]
[89259.553284] —[ end trace ]—
[89259.572551] wlx189ba5195793: associated
chris@ubuntu-base-24:~$

Also, confirming you are correct on the speed noted from the received side,
AP to Server is actually 12Mb/s
Server to AP is actually 12Mb/s

The AP is a HaloLink2, shows Signal/Noise -38/-93
So is the 12Mb/s an expected throughput under these conditions?

Maybe I’ve been chasing a non-issue?

I would expect better. I would also expect your dmesg not to be spewing stack failures (is this to do with you trying to mess with mmrc and hacking on the driver?).

Also:

[89254.805930] morse_usb 1-1:1.0: Loaded BCF from morse/bcf_default.bin, size 2124, crc32 0x80459e55

This is an indication that Vantron hasn’t set the OTP board type on the module. You should specify the correct BCF when loading the module (bcf=bcf_mf15457.bin).

I built the driver, which is as scary as it sounds, and its possible all the tinkering is causing the stack failures. I did reach out to Vantron but I’ve not yet received a response. I can’t find any clear driver package downloads or driver install guides on their website. I’ll press them on this, as it would be much safer for me to download and install a pre-built driver package, than try to build and install from scratch. I’ll let you know how far I get.

PS, thx so much for the help, I’ve been chasing this for a few days and was chasing a red herring without even realizing it.

If you could load the right BCF and see if that helps it would be good. You may already be loading the right BCF, but it depends on what the bcf_default.bin is linked to which makes me a little nervous.

[89259.348906] CPU: 2 PID: 24059 Comm: kworker/u19:3 Tainted: G OE 6.8.0-124-generic #124-Ubuntu
[89259.348925] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.24504846.B64.2501180339 01/18/2025

Is your Ubuntu environment virtualised on WMWare? I assume the USB port is not native to Ubuntu but virtualised.

The first priority is obviously the BCF. If you get the right BCF file and still have trouble, I would be trying it outside of a VM.