28 lines
		
	
	
		
			632 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			632 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- 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]");
 |