From 373de828e2c74da914068b37cd2fd599536ae46d Mon Sep 17 00:00:00 2001
From: nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Wed, 29 Oct 2008 15:52:44 +0000
Subject: fix hostapd race condition which breaks wpa with madwifi

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13075 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 package/hostapd/patches/100-madwifi_fix.patch | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)
 create mode 100644 package/hostapd/patches/100-madwifi_fix.patch

(limited to 'package/hostapd/patches')

diff --git a/package/hostapd/patches/100-madwifi_fix.patch b/package/hostapd/patches/100-madwifi_fix.patch
new file mode 100644
index 000000000..45e902362
--- /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]");
-- 
cgit v1.2.3