summaryrefslogtreecommitdiffstats
path: root/package/hostapd/patches/100-madwifi_fix.patch
blob: 8f8be442b90877102c827adee760f3f5a0bb39a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
--- a/hostapd/driver_madwifi.c
+++ b/hostapd/driver_madwifi.c
@@ -312,6 +312,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);
 
@@ -326,10 +327,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]");