SIGSEGV with timeouted WiFi 6 driver

Maciej Witkowski maciej.witkowski256 at gmail.com
Wed Dec 20 03:10:39 PST 2023


Hi,

i'm running a WiFi 6 USB dongle CF-953AX that sometimes times out.

When driver mt7921u is in timeouted state, every time I start hostapd, 
it crashes with SIGSEGV.

The driver or the device is faulty [1] but it's independent to the 
hostapd issue,

because hostapd should exit normally, without memory violations.


# /root/hostapd -P /run/hostapd.pid /etc/hostapd/hostapd.conf
Could not set interface wlan1 flags (UP): Connection timed out
nl80211: Could not set interface 'wlan1' UP
nl80211: deinit ifname=wlan1 disabled_11b_rates=0
nl80211: remove link (0) failed. ret=-100 (Network is down)
Segmentation fault


$ uname -r
6.7.0-rc5-v8-Upgrade_RasPiOS_Kernel-wifi-rpi-6.7.y+

Reading symbols from /root/hostapd...
(gdb) run
Starting program: /root/hostapd -P /run/hostapd.pid 
/etc/hostapd/hostapd.conf
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
Could not set interface wlan1 flags (UP): Connection timed out
nl80211: Could not set interface 'wlan1' UP
nl80211: deinit ifname=wlan1 disabled_11b_rates=0
nl80211: remove link (0) failed. ret=-100 (Network is down)

Program received signal SIGSEGV, Segmentation fault.
0x00000055555cb470 in nl80211_cmd (cmd=5 '\005', flags=0, 
msg=0x55556bce10, drv=0x556b92b0) at ../src/drivers/driver_nl80211.c:737
737             return genlmsg_put(msg, 0, 0, drv->global->nl80211_id,
(gdb)
(gdb) bt
#0  0x00000055555cb470 in nl80211_cmd (cmd=5 '\005', flags=0, 
msg=0x55556bce10, drv=0x556b92b0) at ../src/drivers/driver_nl80211.c:737
#1  nl80211_cmd_msg (bss=bss at entry=0x55556b99b0, flags=flags at entry=0, 
cmd=cmd at entry=5 '\005') at ../src/drivers/driver_nl80211.c:758
#2  0x00000055555cb514 in nl80211_get_ifmode 
(bss=bss at entry=0x55556b99b0) at ../src/drivers/driver_nl80211.c:868
#3  0x00000055555cb714 in i802_set_iface_flags (bss=0x55556b99b0, up=0) 
at ../src/drivers/driver_nl80211.c:2923
#4  0x00000055555d1e74 in wpa_driver_nl80211_deinit (bss=0x55556b99b0) 
at ../src/drivers/driver_nl80211.c:3213
#5  0x00000055555d26f4 in wpa_driver_nl80211_drv_init (ctx=0x55556b7d70, 
ifname=0x55556b7680 "wlan1", global_priv=0x55556b8c70, 
hostapd=hostapd at entry=1, set_addr=0x0, driver_params=0x0)
     at ../src/drivers/driver_nl80211.c:2433
#6  0x00000055555d2808 in i802_init (hapd=<optimized out>, 
params=0x7ffffff100) at ../src/drivers/driver_nl80211.c:8619
#7  0x000000555555e178 in hostapd_driver_init (iface=0x55556b6a50) at 
main.c:274
#8  0x000000555555d84c in main (argc=<optimized out>, argv=<optimized 
out>) at main.c:1002

```
void * nl80211_cmd(struct wpa_driver_nl80211_data *drv,
                    struct nl_msg *msg, int flags, uint8_t cmd)
{
         if (TEST_FAIL())
                 return NULL;
         return genlmsg_put(msg, 0, 0, drv->global->nl80211_id, // here 
SIGSEGV
                            0, flags, cmd, 0);
}
```


[1] https://github.com/morrownr/USB-WiFi/issues/107#issuecomment-1850778201



Best regards,

Maciej Witkowski




More information about the Hostap mailing list