net: qlcnic: slight optimization of addr compare
authordingtianhong <dingtianhong@huawei.com>
Mon, 30 Dec 2013 07:41:14 +0000 (15:41 +0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 31 Dec 2013 21:48:32 +0000 (16:48 -0500)
Use the possibly more efficient ether_addr_equal or
ether_addr_equal_unaligned to instead of memcmp.

Cc: Himanshu Madhani <himanshu.madhani@qlogic.com>
Cc: Rajesh Borundia <rajesh.borundia@qlogic.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c

index 3fe971c..a9a149b 100644 (file)
@@ -462,7 +462,7 @@ int qlcnic_nic_del_mac(struct qlcnic_adapter *adapter, const u8 *addr)
        /* Delete MAC from the existing list */
        list_for_each(head, &adapter->mac_list) {
                cur = list_entry(head, struct qlcnic_mac_vlan_list, list);
-               if (memcmp(addr, cur->mac_addr, ETH_ALEN) == 0) {
+               if (ether_addr_equal(addr, cur->mac_addr)) {
                        err = qlcnic_sre_macaddr_change(adapter, cur->mac_addr,
                                                        0, QLCNIC_MAC_DEL);
                        if (err)
@@ -483,7 +483,7 @@ int qlcnic_nic_add_mac(struct qlcnic_adapter *adapter, const u8 *addr, u16 vlan)
        /* look up if already exists */
        list_for_each(head, &adapter->mac_list) {
                cur = list_entry(head, struct qlcnic_mac_vlan_list, list);
-               if (memcmp(addr, cur->mac_addr, ETH_ALEN) == 0 &&
+               if (ether_addr_equal(addr, cur->mac_addr) &&
                    cur->vlan_id == vlan)
                        return 0;
        }
index 0538022..a215e0f 100644 (file)
@@ -202,7 +202,7 @@ static struct qlcnic_filter *qlcnic_find_mac_filter(struct hlist_head *head,
        struct hlist_node *n;
 
        hlist_for_each_entry_safe(tmp_fil, n, head, fnode) {
-               if (!memcmp(tmp_fil->faddr, addr, ETH_ALEN) &&
+               if (ether_addr_equal(tmp_fil->faddr, addr) &&
                    tmp_fil->vlan_id == vlan_id)
                        return tmp_fil;
        }
@@ -346,7 +346,7 @@ static void qlcnic_send_filter(struct qlcnic_adapter *adapter,
        head = &(adapter->fhash.fhead[hindex]);
 
        hlist_for_each_entry_safe(tmp_fil, n, head, fnode) {
-               if (!memcmp(tmp_fil->faddr, &src_addr, ETH_ALEN) &&
+               if (ether_addr_equal(tmp_fil->faddr, &src_addr) &&
                    tmp_fil->vlan_id == vlan_id) {
                        if (jiffies > (QLCNIC_READD_AGE * HZ + tmp_fil->ftime))
                                qlcnic_change_filter(adapter, &src_addr,
index bf132c9..d131ec1 100644 (file)
@@ -313,7 +313,7 @@ static void qlcnic_delete_adapter_mac(struct qlcnic_adapter *adapter)
 
        list_for_each(head, &adapter->mac_list) {
                cur = list_entry(head, struct qlcnic_mac_vlan_list, list);
-               if (!memcmp(adapter->mac_addr, cur->mac_addr, ETH_ALEN)) {
+               if (ether_addr_equal_unaligned(adapter->mac_addr, cur->mac_addr)) {
                        qlcnic_sre_macaddr_change(adapter, cur->mac_addr,
                                                  0, QLCNIC_MAC_DEL);
                        list_del(&cur->list);
@@ -337,7 +337,7 @@ static int qlcnic_set_mac(struct net_device *netdev, void *p)
        if (!is_valid_ether_addr(addr->sa_data))
                return -EINVAL;
 
-       if (!memcmp(adapter->mac_addr, addr->sa_data, ETH_ALEN))
+       if (ether_addr_equal_unaligned(adapter->mac_addr, addr->sa_data))
                return 0;
 
        if (test_bit(__QLCNIC_DEV_UP, &adapter->state)) {