summaryrefslogtreecommitdiffstats
path: root/package/hostapd
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2008-10-29 15:52:44 +0000
committerFelix Fietkau <nbd@openwrt.org>2008-10-29 15:52:44 +0000
commit1b5de1c105a53f5c1f416ffde466e103debcf225 (patch)
treea63b89911488410f6140227c6cbc99482bada6f5 /package/hostapd
parent96244d4367424fa66b2df23a3d1e82fb70eb7f80 (diff)
downloadmaster-31e0f0ae-1b5de1c105a53f5c1f416ffde466e103debcf225.tar.gz
master-31e0f0ae-1b5de1c105a53f5c1f416ffde466e103debcf225.tar.bz2
master-31e0f0ae-1b5de1c105a53f5c1f416ffde466e103debcf225.zip
fix hostapd race condition which breaks wpa with madwifi
SVN-Revision: 13075
Diffstat (limited to 'package/hostapd')
-rw-r--r--package/hostapd/patches/100-madwifi_fix.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/package/hostapd/patches/100-madwifi_fix.patch b/package/hostapd/patches/100-madwifi_fix.patch
new file mode 100644
index 0000000000..45e9023624
--- /dev/null
+++ b/package/hostapd/patches/100-madwifi_fix.patch
@@ -0,0 +1,27 @@
+--- a/hostapd/driver_madwifi.c
++++ b/hostapd/driver_madwifi.c
+@@ -298,6 +298,7 @@ madwifi_set_iface_flags(void *priv, int
+ {
+ struct madwifi_driver_data *drv = priv;
+ struct ifreq ifr;
++ short flags;
+
+ wpa_printf(MSG_DEBUG, "%s: dev_up=%d", __func__, dev_up);
+
+@@ -312,10 +313,14 @@ madwifi_set_iface_flags(void *priv, int
+ return -1;
+ }
+
++ flags = ifr.ifr_flags;
+ if (dev_up)
+- ifr.ifr_flags |= IFF_UP;
++ flags |= IFF_UP;
+ else
+- ifr.ifr_flags &= ~IFF_UP;
++ flags &= ~IFF_UP;
++
++ if (flags == ifr.ifr_flags)
++ return 0;
+
+ if (ioctl(drv->ioctl_sock, SIOCSIFFLAGS, &ifr) != 0) {
+ perror("ioctl[SIOCSIFFLAGS]");