[arch-commits] Commit in wpa_supplicant/trunk (2 files)
Antonio Rojas
arojas at gemini.archlinux.org
Sat Feb 12 19:15:31 UTC 2022
Date: Saturday, February 12, 2022 @ 19:15:31
Author: arojas
Revision: 437032
Fix connection issues on Broadcom drivers (FS#73495)
Added:
wpa_supplicant/trunk/add_extra-ies_only_if_allowed_by_driver.patch
Modified:
wpa_supplicant/trunk/PKGBUILD
-----------------------------------------------+
PKGBUILD | 26 ++++------
add_extra-ies_only_if_allowed_by_driver.patch | 62 ++++++++++++++++++++++++
2 files changed, 73 insertions(+), 15 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2022-02-12 18:33:49 UTC (rev 437031)
+++ PKGBUILD 2022-02-12 19:15:31 UTC (rev 437032)
@@ -1,10 +1,11 @@
-# Maintainer: Bartłomiej Piotrowski <bpiotrowski at archlinux.org>
+# Maintainer:
+# Contributor: Bartłomiej Piotrowski <bpiotrowski at archlinux.org>
# Contributor: Thomas Bächler <thomas at archlinux.org>
# Contributor: loqs
pkgname=wpa_supplicant
pkgver=2.10
-pkgrel=1
+pkgrel=2
epoch=2
pkgdesc='A utility providing key negotiation for WPA wireless networks'
url='https://w1.fi/wpa_supplicant/'
@@ -18,6 +19,7 @@
wpa_supplicant_dbus_service_syslog.patch # Unit improvements from Ubuntu
wpa_supplicant_service_ignore-on-isolate.patch # More unit improvements from Ubuntu
wpa_supplicant_config
+ add_extra-ies_only_if_allowed_by_driver.patch
)
validpgpkeys=('EC4AA0A991A5F2464582D52D2B6EF432EFC895FA') # Jouni Malinen
sha256sums=('20df7ae5154b3830355f8ab4269123a87affdea59fe74fe9292a91d0d7e17b2f'
@@ -25,25 +27,19 @@
'08915b040d03a3e07cdc8ea6c76b497e00059e01ce85b67413dfe41d4fc68992'
'60f6a1cf2e124813dfce1da78ee1818e2ff5236aafa4113c7ae3b3f2a0b84006'
'd42bdbf3d4980b9f0a819612df0c39843c7e96c8afcb103aa656c824f93790b0'
- '385c956607d9a4966b13458db60a29b7556ff0c9928d7fef59381678ce79f13b')
+ '385c956607d9a4966b13458db60a29b7556ff0c9928d7fef59381678ce79f13b'
+ 'aaedf87f1530d4e6cb00bf7981d1f868409ed892cc41b83c5613019e7b51f380')
prepare() {
- cd "$srcdir/$pkgname-$pkgver"
- local src
- for src in "${source[@]}"; do
- src="${src%%::*}"
- src="${src##*/}"
- [[ $src = *.patch ]] || continue
- echo "Applying patch $src..."
- patch -Np1 < "../$src"
- done
+ cd $pkgname-$pkgver
+ patch -p1 -i ../add_extra-ies_only_if_allowed_by_driver.patch # http://lists.infradead.org/pipermail/hostap/2022-January/040178.html
- cd "$srcdir/$pkgname-$pkgver/$pkgname"
+ cd $pkgname
cp "$srcdir/wpa_supplicant_config" ./.config
}
build() {
- cd "$srcdir/$pkgname-$pkgver/$pkgname"
+ cd $pkgname-$pkgver/$pkgname
make LIBDIR=/usr/lib BINDIR=/usr/bin
make LIBDIR=/usr/lib BINDIR=/usr/bin eapol_test
@@ -50,7 +46,7 @@
}
package() {
- cd "$srcdir/$pkgname-$pkgver/$pkgname"
+ cd $pkgname-$pkgver/$pkgname
make LIBDIR=/usr/lib BINDIR=/usr/bin DESTDIR="$pkgdir" install
install -Dm755 eapol_test "$pkgdir/usr/bin/eapol_test"
Added: add_extra-ies_only_if_allowed_by_driver.patch
===================================================================
--- add_extra-ies_only_if_allowed_by_driver.patch (rev 0)
+++ add_extra-ies_only_if_allowed_by_driver.patch 2022-02-12 19:15:31 UTC (rev 437032)
@@ -0,0 +1,62 @@
+Upgrading wpa_supplicant from 2.9 to 2.10 breaks broadcom-wl
+based adapters. The reason for it is hostapd tries to install additional
+IEs for scanning while the driver does not support this.
+
+The kernel indicates the maximum number of bytes for additional scan IEs
+using the NL80211_ATTR_MAX_SCAN_IE_LEN attribute. Save this value and
+only add additional scan IEs in case the driver can accommodate these
+additional IEs.
+
+Reported-by: Étienne Morice <neon.emorice at mail.com>
+Tested-by: Étienne Morice <neon.emorice at mail.com>
+Signed-off-by: David Bauer <mail at david-bauer.net>
+---
+ src/drivers/driver.h | 3 +++
+ src/drivers/driver_nl80211_capa.c | 4 ++++
+ src/drivers/driver_nl80211_scan.c | 2 +-
+ 3 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/src/drivers/driver.h b/src/drivers/driver.h
+index d3312a34d..b5b626451 100644
+--- a/src/drivers/driver.h
++++ b/src/drivers/driver.h
+@@ -2052,6 +2052,9 @@ struct wpa_driver_capa {
+ /** Maximum number of iterations in a single scan plan */
+ u32 max_sched_scan_plan_iterations;
+
++ /** Maximum number of extra IE bytes for scans */
++ u16 max_scan_ie_len;
++
+ /** Whether sched_scan (offloaded scanning) is supported */
+ int sched_scan_supported;
+
+diff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c
+index 83868b78e..b33b6badb 100644
+--- a/src/drivers/driver_nl80211_capa.c
++++ b/src/drivers/driver_nl80211_capa.c
+@@ -885,6 +885,10 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)
+ nla_get_u32(tb[NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS]);
+ }
+
++ if (tb[NL80211_ATTR_MAX_SCAN_IE_LEN])
++ capa->max_scan_ie_len =
++ nla_get_u16(tb[NL80211_ATTR_MAX_SCAN_IE_LEN]);
++
+ if (tb[NL80211_ATTR_MAX_MATCH_SETS])
+ capa->max_match_sets =
+ nla_get_u8(tb[NL80211_ATTR_MAX_MATCH_SETS]);
+diff --git a/src/drivers/driver_nl80211_scan.c b/src/drivers/driver_nl80211_scan.c
+index 131608480..b0f095192 100644
+--- a/src/drivers/driver_nl80211_scan.c
++++ b/src/drivers/driver_nl80211_scan.c
+@@ -207,7 +207,7 @@ nl80211_scan_common(struct i802_bss *bss, u8 cmd,
+ wpa_printf(MSG_DEBUG, "nl80211: Passive scan requested");
+ }
+
+- if (params->extra_ies) {
++ if (params->extra_ies && drv->capa.max_scan_ie_len >= params->extra_ies_len) {
+ wpa_hexdump(MSG_MSGDUMP, "nl80211: Scan extra IEs",
+ params->extra_ies, params->extra_ies_len);
+ if (nla_put(msg, NL80211_ATTR_IE, params->extra_ies_len,
+--
+2.35.1
More information about the arch-commits
mailing list