Index: uspace/lib/drv/generic/remote_ieee80211.c
===================================================================
--- uspace/lib/drv/generic/remote_ieee80211.c	(revision f05edcb84588b46065563dbdd0d0e78b9b4fb2b6)
+++ uspace/lib/drv/generic/remote_ieee80211.c	(revision 2dac5a9f54889337e36b6b2a94454a418e5b55c1)
@@ -1,3 +1,4 @@
 /*
+ * Copyright (c) 2021 Jiri Svoboda
  * Copyright (c) 2015 Jan Kolarik
  * All rights reserved.
@@ -84,19 +85,13 @@
 }
 
-static bool mac_matches(uint8_t *mac1, uint8_t *mac2)
-{
-	for (size_t i = 0; i < ETH_ADDR; i++) {
-		if (mac1[i] != mac2[i])
-			return false;
-	}
-
-	return true;
-}
-
+// XXX This is wrong. Wifi should not have anything to do with IP links
 static sysarg_t get_link_id(uint8_t *mac)
 {
 	sysarg_t *link_list;
 	inet_link_info_t link_info;
+	eth_addr_t eth_addr;
 	size_t count;
+
+	eth_addr_decode(mac, &eth_addr);
 
 	errno_t rc = inetcfg_get_link_list(&link_list, &count);
@@ -109,5 +104,5 @@
 			return -1;
 
-		if (mac_matches(mac, link_info.mac_addr.b))
+		if (eth_addr_compare(&eth_addr, &link_info.mac_addr) == 0)
 			return link_list[i];
 	}
@@ -170,4 +165,6 @@
 		return rc;
 
+	// XXX This is wrong. Wifi should not initiate DHCP
+
 	/* Send DHCP discover. */
 	nic_address_t wifi_mac;
@@ -207,4 +204,7 @@
 	if (rc != EOK)
 		return rc;
+
+	eth_addr_t eth_addr;
+	eth_addr_decode(wifi_mac.address, &eth_addr);
 
 	inet_link_info_t link_info;
@@ -215,4 +215,6 @@
 	size_t count;
 
+	/// XXX This is wrong. Wifi should do nothing with DHCP
+
 	/* Remove previous DHCP address. */
 	rc = inetcfg_get_addr_list(&addr_list, &count);
@@ -229,5 +231,5 @@
 			return rc;
 
-		if (mac_matches(wifi_mac.address, link_info.mac_addr.b)) {
+		if (eth_addr_compare(&eth_addr, &link_info.mac_addr) == 0) {
 			if (str_test_prefix(addr_info.name, "dhcp")) {
 				rc = inetcfg_addr_delete(addr_list[i]);
