Re: [net-next 01/13] i40e: use ether_addr_equal_64bits
flat view
From: Joe Perches <joe@perches.com>
Date: 2014-03-06 04:36:04
On Wed, 2014-03-05 at 20:21 -0800, Jeff Kirsher wrote:
From: Joe Perches <joe@perches.com> All ether_addr_equal tests in i40e can use the slightly more efficient ether_addr_equal_64bits. All addresses passed to the various functions that use ether_addr_equal are using structs that have 2 or more bytes of additional data after the mac addr being tested.
Hey Jeff. Hi Kavindya. I don't know if these are really that important to convert. I did these when I looked for an example to convert and I thought "hey, 40 gig's fast, I should start there..." Recently, I've come to think that ether_addr_equal should be used almost exclusively and ether_addr_equal_64bits should only be used on performance sensitive or fast-path code. Are any of these on anything like a fast path or are performance sensitive? If not, maybe this patch should get tossed.
quoted hunk ↗ jump to hunk
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
[]
quoted hunk ↗ jump to hunk
@@ -997,7 +997,7 @@ static struct i40e_mac_filter *i40e_find_filter(struct i40e_vsi *vsi, return NULL; list_for_each_entry(f, &vsi->mac_filter_list, list) { - if ((ether_addr_equal(macaddr, f->macaddr)) && + if (ether_addr_equal_64bits(macaddr, f->macaddr) && (vlan == f->vlan) && (!is_vf || f->is_vf) && (!is_netdev || f->is_netdev))@@ -1025,7 +1025,7 @@ struct i40e_mac_filter *i40e_find_mac(struct i40e_vsi *vsi, u8 *macaddr, return NULL; list_for_each_entry(f, &vsi->mac_filter_list, list) { - if ((ether_addr_equal(macaddr, f->macaddr)) && + if (ether_addr_equal_64bits(macaddr, f->macaddr) && (!is_vf || f->is_vf) && (!is_netdev || f->is_netdev)) return f;
Well, maybe these 2.
quoted hunk ↗ jump to hunk
@@ -1214,7 +1214,7 @@ static int i40e_set_mac(struct net_device *netdev, void *p) netdev_info(netdev, "set mac address=%pM\n", addr->sa_data); - if (ether_addr_equal(netdev->dev_addr, addr->sa_data)) + if (ether_addr_equal_64bits(netdev->dev_addr, addr->sa_data)) return 0; if (test_bit(__I40E_DOWN, &vsi->back->state) ||
probably not.
quoted hunk ↗ jump to hunk
@@ -1417,21 +1417,24 @@ static void i40e_set_rx_mode(struct net_device *netdev) if (is_multicast_ether_addr(f->macaddr)) { netdev_for_each_mc_addr(mca, netdev) { - if (ether_addr_equal(mca->addr, f->macaddr)) { + if (ether_addr_equal_64bits(mca->addr, + f->macaddr)) { found = true; break; } } } else { netdev_for_each_uc_addr(uca, netdev) { - if (ether_addr_equal(uca->addr, f->macaddr)) { + if (ether_addr_equal_64bits(uca->addr, + f->macaddr)) { found = true; break; } } for_each_dev_addr(netdev, ha) { - if (ether_addr_equal(ha->addr, f->macaddr)) { + if (ether_addr_equal_64bits(ha->addr, + f->macaddr)) { found = true; break; }
probably not.
quoted hunk ↗ jump to hunk
@@ -1905,7 +1908,8 @@ int i40e_vsi_kill_vlan(struct i40e_vsi *vsi, s16 vid) list_for_each_entry(f, &vsi->mac_filter_list, list) { if (is_netdev) { if (f->vlan && - ether_addr_equal(netdev->dev_addr, f->macaddr)) + ether_addr_equal_64bits(netdev->dev_addr, + f->macaddr)) filter_count++; }
Dunno.