2013-12-26 11:41:49

by Ding Tianhong

[permalink] [raw]
Subject: [PATCH v3.5 10/19] mac8011: slight optimization of addr compare

Use the possibly more efficient ether_addr_equal
to instead of memcmp.

Cc: Johannes Berg <[email protected]>
Cc: John W. Linville <[email protected]>
Cc: David Miller <[email protected]>
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Wang Weidong <[email protected]>
Signed-off-by: Ding Tianhong <[email protected]>
---
net/mac80211/iface.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 7aa9f9d..a4f9812 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -1497,8 +1497,8 @@ static void ieee80211_assign_perm_addr(struct ieee80211_local *local,
bool used = false;

list_for_each_entry(sdata, &local->interfaces, list) {
- if (memcmp(local->hw.wiphy->addresses[i].addr,
- sdata->vif.addr, ETH_ALEN) == 0) {
+ if (ether_addr_equal(local->hw.wiphy->addresses[i].addr,
+ sdata->vif.addr)) {
used = true;
break;
}
@@ -1558,8 +1558,7 @@ static void ieee80211_assign_perm_addr(struct ieee80211_local *local,
val += inc;

list_for_each_entry(sdata, &local->interfaces, list) {
- if (memcmp(tmp_addr, sdata->vif.addr,
- ETH_ALEN) == 0) {
+ if (ether_addr_equal(tmp_addr, sdata->vif.addr)) {
used = true;
break;
}
--
1.8.0




2014-01-07 03:41:44

by Ding Tianhong

[permalink] [raw]
Subject: Re: [PATCH v3.5 10/19] mac8011: slight optimization of addr compare

On 2014/1/6 23:11, Johannes Berg wrote:
> On Thu, 2013-12-26 at 19:40 +0800, Ding Tianhong wrote:
>> Use the possibly more efficient ether_addr_equal
>> to instead of memcmp.
>
> This is a slow-path, I don't think that's really worth it. It kinda
> makes sense, but relies on the struct mac_address allocation for
> alignment and the fact that there are no other members in that struct,
> so it seems to me that this ought to also add some alignment attributes?
>
> johannes
>
>

Yes, I had to say that it is really a slight optimization.And I am sure the address in the struct
is alignment, otherwise I have to use the ether_addr_equal_unaligned().

Regards
Ding

> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>



2014-01-06 15:12:13

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH v3.5 10/19] mac8011: slight optimization of addr compare

On Thu, 2013-12-26 at 19:40 +0800, Ding Tianhong wrote:
> Use the possibly more efficient ether_addr_equal
> to instead of memcmp.

This is a slow-path, I don't think that's really worth it. It kinda
makes sense, but relies on the struct mac_address allocation for
alignment and the fact that there are no other members in that struct,
so it seems to me that this ought to also add some alignment attributes?

johannes