Pocket Reform trace error

I’m getting trace errors when starting up my Pocket Reform. I’m not linux savy enough to understand what this means. Can I get help understanding what it means and how to resolve the issue?

[   25.737474] UBSAN: array-index-out-of-bounds in CORE/CLD_TXRX/HTT/htt_t2h.c:885:35
[   25.738994] index 1 is out of range for type 'A_UINT16 [1]'
[   25.740510] CPU: 1 UID: 0 PID: 1096 Comm: AR6K RxCompleti Tainted: GF        C OE       6.15.4-mnt-reform-arm64 #1 NONE  Debian 6.15.4-1~exp1+reform20250628T170930Z
[   25.740526] Tainted: [F]=FORCED_MODULE, [C]=CRAP, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
[   25.740528] Hardware name: MNT Pocket Reform with i.MX8MP Module (DT)
[   25.740532] Call trace:
[   25.740535]  show_stack+0x34/0x98 (C)
[   25.740551]  dump_stack_lvl+0x60/0x80
[   25.740559]  dump_stack+0x18/0x24
[   25.740565]  ubsan_epilogue+0x10/0x48
[   25.740573]  __ubsan_handle_out_of_bounds+0xa0/0xd0
[   25.740581]  htt_t2h_msg_handler+0x4ec/0x5b8 [qcacld2]
[   25.741145]  DoRecvCompletion.part.0+0x94/0x110 [qcacld2]
[   25.741667]  HTCRxCompletionHandler+0x5ec/0x770 [qcacld2]
[   25.742201]  processHdrAndRxComp.part.0.isra.0+0x98/0xd0 [qcacld2]
[   25.742724]  processHdrAndRxComp.constprop.0+0x60/0xf8 [qcacld2]
[   25.743238]  rx_completion_task+0x59c/0x6a0 [qcacld2]
[   25.743743]  kthread+0x120/0x220
[   25.743752]  ret_from_fork+0x10/0x20
[   25.743763] ---[ end trace ]---

Let me know if this is something that would be better sent to support.

Thank you in advance!

Hi, this is a somewhat known issue that recently appeared with a kernel upgrade. It is a warning that the kernel detects a programming issue in the third-party qualcomm wifi drivers (on i.MX8MPlus platform). As far as we know it’s harmless, but we should probably patch the driver to fix this. CCing @josch here just so that there’s another pair of eyes.

But does your unit boot fine otherwise? Or does this block you somehow?

I’m trying to prioritize this issue and see which other things I’m not going to do so that I find some time to look into this…

I don’t think it is preventing me from doing anything. My unit boots fine. I don’t know if it should be a priority. It is a minor annoyance b/c I get the tracing notification for it before I login. Which means I just press enter a couple times for the login prompt.

Ah with tuigreet, yes?

Can you give me the output of this:

cat /proc/cmdline

What’s your reform-tools version? What kernel? What board? If you are feeling lazy, copypasting the sudo reform-check output answers all these questions.

Ok, I know I managed to copy things earlier. I have since forgot the keys to copy from terminal.

It also looks like some of it can be resolved if I log in to root. I just have to find where I saved the root password.

Is there a command that I can append to sudo reform-check that would copy the results to a micro file or clipboard?

You can usually just select what you want to copy with your mouse and then middle click wherever you want to paste it. No button needed to “copy”.

Alternatively, depending on the terminal, you can right click and copy the current selection or press shift+ctrl+C to copy to clipboard. I usually just select and then middle click.

If you use sudo then you only need the password of your current user. Since your user is in the sudo group it is allowed to perform superuser actions after giving the password.

You could run this to redirect everything reform-check outputs to a file called “output”:

sudo reform-check > output 2>&1

The 2>&1 is needed because reform-check outputs most of what it prints to standard-error and > only redirects standard-output.

cat /proc/cmdline
returns

ro no_console_suspend cryptomgr.notes ro no_console_suspend pci=pcie_bus_perf nvme_core.default_ps_max_latency_us=0 console=tty1 fbcon=rotate:3 cma=256MB console=ttymxc1 console=tty1

sudo reform-check > output1 2>&1
returns

I: Contents of /proc/device-tree/model: MNT Pocket Reform with i.MX8MP Module
I: `uname -a` output: Linux [computername] 6.15.4-mnt-reform-arm64 #1 SMP Debian 6.15.4-1~exp1+reform20250628T170930Z (2025-06-28) aarch64 GNU/Linux
I: Version of linux-image-mnt-reform-arm64: 6.15.4-1~exp1+reform20250628T170930Z
I: Version of reform-tools: 1.75-2+reform20250622T103710Z+1
I: Mount source of /: /dev/mmcblk2p2 (eMMC)
I: Mount source of /boot: /dev/mmcblk2p1 (eMMC)
W: MNT Reform Desktop meta-package is not installed: reform-desktop-full
W: Depends of reform-desktop-full is not installed: espeak-ng
W: Depends of reform-desktop-full is not installed: espeak-ng-data
W: Depends of reform-desktop-full is not installed: gnome
W: Depends of reform-desktop-full is not installed: gnome-firmware
W: Depends of reform-desktop-full is not installed: gnome-shell-extension-dashtodock
W: Depends of reform-desktop-full is not installed: gnome-shell-extension-manager
W: Depends of reform-desktop-full is not installed: modemmanager
W: Depends of reform-desktop-full is not installed: network-manager-gnome
W: Depends of reform-desktop-full is not installed: reform-desktop-minimal
W: Depends of reform-desktop-full is not installed: rtkit
W: Depends of reform-desktop-full is not installed: speech-dispatcher-espeak-ng
W: Depends of reform-desktop-full is not installed: wlr-randr
W: MNT Reform Desktop meta-package is not installed: reform-desktop-minimal
W: Depends of reform-desktop-minimal is not installed: dhcpcd-base
W: Depends of reform-desktop-minimal is not installed: fdisk
W: Depends of reform-desktop-minimal is not installed: hdparm
W: Depends of reform-desktop-minimal is not installed: iputils-ping
W: Depends of reform-desktop-minimal is not installed: iw
W: Depends of reform-desktop-minimal is not installed: lshw
W: Depends of reform-desktop-minimal is not installed: netcat-openbsd
W: Depends of reform-desktop-minimal is not installed: nvme-cli
W: Depends of reform-desktop-minimal is not installed: picotool
W: Depends of reform-desktop-minimal is not installed: pocket-reform-handbook
W: Depends of reform-desktop-minimal is not installed: unzip
W: Depends of reform-desktop-minimal is not installed: wavemon
W: Depends of reform-desktop-minimal is not installed: wireless-regdb
W: Depends of reform-desktop-minimal is not installed: zstd
W: Suggests of reform-desktop-minimal is not installed: firmware-atheros
W: Suggests of reform-desktop-minimal is not installed: firmware-iwlwifi
W: Suggests of reform-desktop-minimal is not installed: firmware-mediatek
W: Suggests of reform-desktop-minimal is not installed: firmware-misc-nonfree
E: Your /etc/skel/.profile contains an outdated line that attempts to print /etc/reform-help or run reform-help.
E: Consider simply deleting that offending last line of your /etc/skel/.profile.
I: the following files differ from how they are shipped by reform-tools (ignore /var/lib/alsa/asound.state):
??5??????   /var/lib/alsa/asound.state
??5?????? c /etc/skel/.config/wayfire.ini
??5?????? c /etc/skel/.config/sway/config.d/input
I: kernel boot parameters which are the default but your system doesn't use them:
 - fbcon=font:TER16x32
W: /boot/flash.bin is not the latest uboot
W: You can update it to the latest version by running as root:
reform-flash-uboot

Thank you. There is indeed something odd going on.

Can you tell me whether you have this file: /etc/flash-kernel/ubootenv.d/00reform2_tuigreet_loglevel and if not, what you get when running this command:

grep tuigreet /etc/greetd/config.toml

Thank you!

there are 0 files there. I’ll let you know if that command fixes things later.

grep tuigreet /etc/greetd/config.toml doesn’t return anything. I also tried it using the sudo grep tuigreet /etc/greetd/config.toml just in case that would make a difference.

Are there next steps or should I just ignore it until it gets fixed?

Then I still fail to understand what the actual problem is.

In your initial message you show the call trace that you get and which looks scary and which should get fixed, yes. But in a later message you say that everything else is still working fine and the mayor annoyance is that you get the trace before logging in. This made me assume that you are using tuigreet to log in. Are you? How do you log in?

Could you describe the problem you are facing in more detail?

If the grep command above returns nothing then that suggests that you are not using tuigreet. Are you using gdm instead? Probably not because then the trace would not cause problems. What do you use to log in?

Posting your /etc/greetd/config.toml could help if you are using greetd to log in.

There are no major disruptions that I’m aware of other than logging in. When I log in I get the trace error stuff which I didn’t realize was a known issue. I do not know if I’m using tuigreet or greetd. I’m using whatever came default with the pocket reform.

I am not being prevented from doing anything in the computer. The Pocket Reform is not my primary computer so if there was a major problem, it would not be blocking me from doing things.

Login looks roughly like this

# regular start up code
[computername] login:
# trace stuff
# nothing

After the trace stuff I can just put my username and the password: shows up.

Does that clarify things enough or is there more information you would like?

Okay, can you try creating a file named /etc/flash-kernel/ubootenv.d/00reform2_tuigreet_loglevel and put the following content in:

setenv bootargs "${bootargs} loglevel=3"

Then run sudo flash-kernel once you are done with that and reboot. Does that fix your problem?

Yes! Thank you so much! :grin:

I get the brief redflash of the screen but that I know is a known issue.

Okay, I’m glad it works for you!

Usually you would get this change automatically by upgrading the reform-tools package. The reason you did not get it is because according to your /etc/greetd/config.toml you are not using tuigreet to log in and this change only makes sense for those logging in via the text terminal.

I was not aware that there were Pocket Reforms shipped which did not have tuigreet configured but which just used, probably agreety?

I had a quick look at the qcacld2 sources, and fixing these will be a pain. ISTM a lot of structs use char ...[1] to indicate a flexible array member, and then UBSAN trips over that.

Replacing the [1] with [] is not so easy, as “on paper” the structure size changes. And obviously qcacld2 uses sizeof(…) on these stucts to allocate them. :person_facepalming:

2 Likes

Thank you @zeha for looking into fixing the actual cause rather than papering over the symptom.

Though I’m afraid that qcacld2 might be a dead-end and I’m already not feeling great with the time I put into making it work with each new kernel release… :confused:

1 Like

Though I’m afraid that qcacld2 might be a dead-end and I’m already not feeling great with the time I put into making it work with each new kernel release… :confused:

I’m hearing you. Not sure what to say :pleading_face: