ipw2x00: slight optimization of addr compare
[cascardo/linux.git] / drivers / net / wireless / ipw2x00 / ipw2200.c
index 9244b36..1393260 100644 (file)
@@ -3012,7 +3012,7 @@ static void ipw_remove_current_network(struct ipw_priv *priv)
        spin_lock_irqsave(&priv->ieee->lock, flags);
        list_for_each_safe(element, safe, &priv->ieee->network_list) {
                network = list_entry(element, struct libipw_network, list);
-               if (!memcmp(network->bssid, priv->bssid, ETH_ALEN)) {
+               if (ether_addr_equal(network->bssid, priv->bssid)) {
                        list_del(element);
                        list_add_tail(&network->list,
                                      &priv->ieee->network_free_list);
@@ -3921,7 +3921,7 @@ static u8 ipw_add_station(struct ipw_priv *priv, u8 * bssid)
        int i;
 
        for (i = 0; i < priv->num_stations; i++) {
-               if (!memcmp(priv->stations[i], bssid, ETH_ALEN)) {
+               if (ether_addr_equal(priv->stations[i], bssid)) {
                        /* Another node is active in network */
                        priv->missed_adhoc_beacons = 0;
                        if (!(priv->config & CFG_STATIC_CHANNEL))
@@ -3953,7 +3953,7 @@ static u8 ipw_find_station(struct ipw_priv *priv, u8 * bssid)
        int i;
 
        for (i = 0; i < priv->num_stations; i++)
-               if (!memcmp(priv->stations[i], bssid, ETH_ALEN))
+               if (ether_addr_equal(priv->stations[i], bssid))
                        return i;
 
        return IPW_INVALID_STATION;
@@ -5622,7 +5622,7 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv,
                return 0;
        }
 
-       if (!memcmp(network->bssid, priv->bssid, ETH_ALEN)) {
+       if (ether_addr_equal(network->bssid, priv->bssid)) {
                IPW_DEBUG_MERGE("Network '%s (%pM)' excluded "
                                "because of the same BSSID match: %pM"
                                ".\n", print_ssid(ssid, network->ssid,
@@ -5849,7 +5849,7 @@ static int ipw_best_network(struct ipw_priv *priv,
        }
 
        if ((priv->config & CFG_STATIC_BSSID) &&
-           memcmp(network->bssid, priv->bssid, ETH_ALEN)) {
+           !ether_addr_equal(network->bssid, priv->bssid)) {
                IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded "
                                "because of BSSID mismatch: %pM.\n",
                                print_ssid(ssid, network->ssid,
@@ -6988,7 +6988,7 @@ static int ipw_qos_handle_probe_response(struct ipw_priv *priv,
        }
        if ((priv->status & STATUS_ASSOCIATED) &&
            (priv->ieee->iw_mode == IW_MODE_ADHOC) && (active_network == 0)) {
-               if (memcmp(network->bssid, priv->bssid, ETH_ALEN))
+               if (!ether_addr_equal(network->bssid, priv->bssid))
                        if (network->capability & WLAN_CAPABILITY_IBSS)
                                if ((network->ssid_len ==
                                     priv->assoc_network->ssid_len) &&
@@ -8210,29 +8210,29 @@ static int is_network_packet(struct ipw_priv *priv,
        switch (priv->ieee->iw_mode) {
        case IW_MODE_ADHOC:     /* Header: Dest. | Source    | BSSID */
                /* packets from our adapter are dropped (echo) */
-               if (!memcmp(header->addr2, priv->net_dev->dev_addr, ETH_ALEN))
+               if (ether_addr_equal(header->addr2, priv->net_dev->dev_addr))
                        return 0;
 
                /* {broad,multi}cast packets to our BSSID go through */
                if (is_multicast_ether_addr(header->addr1))
-                       return !memcmp(header->addr3, priv->bssid, ETH_ALEN);
+                       return ether_addr_equal(header->addr3, priv->bssid);
 
                /* packets to our adapter go through */
-               return !memcmp(header->addr1, priv->net_dev->dev_addr,
-                              ETH_ALEN);
+               return ether_addr_equal(header->addr1,
+                                       priv->net_dev->dev_addr);
 
        case IW_MODE_INFRA:     /* Header: Dest. | BSSID | Source */
                /* packets from our adapter are dropped (echo) */
-               if (!memcmp(header->addr3, priv->net_dev->dev_addr, ETH_ALEN))
+               if (ether_addr_equal(header->addr3, priv->net_dev->dev_addr))
                        return 0;
 
                /* {broad,multi}cast packets to our BSS go through */
                if (is_multicast_ether_addr(header->addr1))
-                       return !memcmp(header->addr2, priv->bssid, ETH_ALEN);
+                       return ether_addr_equal(header->addr2, priv->bssid);
 
                /* packets to our adapter go through */
-               return !memcmp(header->addr1, priv->net_dev->dev_addr,
-                              ETH_ALEN);
+               return ether_addr_equal(header->addr1,
+                                       priv->net_dev->dev_addr);
        }
 
        return 1;
@@ -8260,7 +8260,7 @@ static  int is_duplicate_packet(struct ipw_priv *priv,
                        list_for_each(p, &priv->ibss_mac_hash[index]) {
                                entry =
                                    list_entry(p, struct ipw_ibss_seq, list);
-                               if (!memcmp(entry->mac, mac, ETH_ALEN))
+                               if (ether_addr_equal(entry->mac, mac))
                                        break;
                        }
                        if (p == &priv->ibss_mac_hash[index]) {
@@ -8329,7 +8329,7 @@ static void ipw_handle_mgmt_packet(struct ipw_priv *priv,
              IEEE80211_STYPE_PROBE_RESP) ||
             (WLAN_FC_GET_STYPE(le16_to_cpu(header->frame_ctl)) ==
              IEEE80211_STYPE_BEACON))) {
-               if (!memcmp(header->addr3, priv->bssid, ETH_ALEN))
+               if (ether_addr_equal(header->addr3, priv->bssid))
                        ipw_add_station(priv, header->addr2);
        }
 
@@ -9045,7 +9045,7 @@ static int ipw_wx_set_wap(struct net_device *dev,
        }
 
        priv->config |= CFG_STATIC_BSSID;
-       if (!memcmp(priv->bssid, wrqu->ap_addr.sa_data, ETH_ALEN)) {
+       if (ether_addr_equal(priv->bssid, wrqu->ap_addr.sa_data)) {
                IPW_DEBUG_WX("BSSID set to current BSSID.\n");
                mutex_unlock(&priv->mutex);
                return 0;