wpa_supplicant broken with libertas driver since 2.7 (hacky fixes included)

Doug Brown doug at schmorgal.com
Thu Jun 9 15:26:19 PDT 2022


I've been playing with an older Marvell 88W8686 802.11g WiFi chipset and
getting it working with newer versions of the Linux kernel and
wpa_supplicant. It uses the libertas driver in the kernel. I ran into
several problems getting it to work with newer versions of
wpa_supplicant. I was able to patch them all and get it to work, but I'm
not sure what the "correct" fix is and was hoping for some guidance on
how to fix these properly.

I did a bunch of bisecting and found the following issues:

1) In 2.7, commit 065c029a55955feac56d6537778233da0074d27b "Remove MBO
    dependency from Supported Operating Classes element" causes me to get
    rejected by my APs (both an Asus router and iPhone hotspot)

wlan0: Event ASSOC_REJECT (12) received
wlan0: CTRL-EVENT-ASSOC-REJECT bssid=xx:xx:xx:xx:xx:xx status_code=1

I worked around this one temporarily by commenting out the call to
wpas_supp_op_class_ie() in wpas_populate_assoc_ies(). I am not
experienced enough to understand if this is a driver issue or something
deeper, but ensuring the op class IEs don't get added fixes it.

This fixes it up until version 2.10, which adds more problems:

2) In 2.10, two commits adding SCS and MSCS support cause the exact same
    issue (rejected by both of my APs with the same error as above):

     "MSCS: Add support to send MSCS Request frames"
     "SCS: Sending of SCS Request frames"

I worked around these temporarily by commenting out the new bits being
set in wpas_ext_capab_byte from these two new commits.

3) This still doesn't fix 2.10 with libertas, because libertas is also
    affected by the same issue in 2.10 that others have already fixed for
    the broadcom-wl adapters, where wpa_supplicant is trying to install
    more scan IEs than are supported, and just prints this repeatedly as
    soon as it opens up:

wlan0: CTRL-EVENT-SCAN-FAILED ret=-22 retry=1
wlan0: CTRL-EVENT-SCAN-FAILED ret=-22 retry=1

This patch already posted earlier this year by David Bauer fixes this
final issue:


With these three problems fixed, wpa_supplicant once again works fine
with the libertas driver. Obviously commenting these new things out
fixes it for me in this one situation, but I'm unsure of what the actual
fix should be. Are the operating class IE and SCS/MSCS bits only
supposed to be added on newer 802.11n chipsets that support more


More information about the Hostap mailing list