Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Jun 2022 23:56:15 +0000
From:      bugzilla-noreply@freebsd.org
To:        wireless@FreeBSD.org
Subject:   [Bug 264238] WiFi stops working after upgrade from 13.0 to 13.1, AR9285 (wpa_supplicant)
Message-ID:  <bug-264238-21060-Cmc8QECaMc@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-264238-21060@https.bugs.freebsd.org/bugzilla/>
References:  <bug-264238-21060@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D264238

--- Comment #67 from Cy Schubert <cy@FreeBSD.org> ---
wpa_driver_bsd_scan() calls set80211param() to set IEEE80211_IOC_ROAMING to
IEEE80211_ROAMING_MANUAL immediately after setting mediaopt to STA. This is
unconditional and if it fails it will issue a message to syslog. All this is
passed to bsd_set80211() which calls ioctl at line 120:

        if (ioctl(drv->global->sock, SIOCS80211, &ireq) < 0) {
                wpa_printf(MSG_ERROR, "ioctl[SIOCS80211, op=3D%u, val=3D%u,=
 "
                           "arg_len=3D%u]: %s", op, val, arg_len,
                           strerror(errno));
                return -1;
        }

It is this error message we see in syslog, which may well be that it's fail=
ing
to set IEEE80211_ROAMING_MANUAL. A backtrace would be able to confirm this.

The interesting thing we notice is that op contains various values. I've se=
en
-1 and 20 so far. op is passed to bsd_set80211() via set80211var() and
set80211param(), each of which is called by numerous other callers.
strerrorr(errno) is "invalid argument."

The question remains, which caller is responsible for this? Once the user c=
an
obtain a dump, the backtrace will tell us which calling path is used and we=
 can
discover where opt and val are set, because both of these are set many fram=
es
above this frame, thus will be on the stack.

The user will need to provide wpa_supplicant.core from the binary I sent he=
r --
because I put an abort() in place of the return.

--=20
You are receiving this mail because:
You are on the CC list for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-264238-21060-Cmc8QECaMc>