diff options
author | dingtianhong <dingtianhong@huawei.com> | 2013-12-26 06:41:20 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-12-26 13:31:35 -0500 |
commit | 35df5388ac7cd205cc642b28eb90f940c816eaf7 (patch) | |
tree | b929d38a99ee3425e78ebfc6347a46ae0fd1e5b2 /drivers/net/wireless | |
parent | d22fbd70c2770b5e3ba0d7bc5b29f6ee686cdba4 (diff) |
cw1200: slight optimization of addr compare
Use possibly more efficient ether_addr_equal
instead of memcmp.
Cc: Solomon Peachy <pizza@shaftnet.org>
Cc: John W. Linville <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/cw1200/sta.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/cw1200/txrx.c | 3 |
2 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/wireless/cw1200/sta.c b/drivers/net/wireless/cw1200/sta.c index 010b252be584..103f7bce8932 100644 --- a/drivers/net/wireless/cw1200/sta.c +++ b/drivers/net/wireless/cw1200/sta.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
14 | #include <linux/firmware.h> | 14 | #include <linux/firmware.h> |
15 | #include <linux/module.h> | 15 | #include <linux/module.h> |
16 | #include <linux/etherdevice.h> | ||
16 | 17 | ||
17 | #include "cw1200.h" | 18 | #include "cw1200.h" |
18 | #include "sta.h" | 19 | #include "sta.h" |
@@ -555,8 +556,8 @@ u64 cw1200_prepare_multicast(struct ieee80211_hw *hw, | |||
555 | pr_debug("[STA] multicast: %pM\n", ha->addr); | 556 | pr_debug("[STA] multicast: %pM\n", ha->addr); |
556 | memcpy(&priv->multicast_filter.macaddrs[count], | 557 | memcpy(&priv->multicast_filter.macaddrs[count], |
557 | ha->addr, ETH_ALEN); | 558 | ha->addr, ETH_ALEN); |
558 | if (memcmp(ha->addr, broadcast_ipv4, ETH_ALEN) && | 559 | if (!ether_addr_equal(ha->addr, broadcast_ipv4) && |
559 | memcmp(ha->addr, broadcast_ipv6, ETH_ALEN)) | 560 | !ether_addr_equal(ha->addr, broadcast_ipv6)) |
560 | priv->has_multicast_subscription = true; | 561 | priv->has_multicast_subscription = true; |
561 | count++; | 562 | count++; |
562 | } | 563 | } |
diff --git a/drivers/net/wireless/cw1200/txrx.c b/drivers/net/wireless/cw1200/txrx.c index e824d4d4a18d..0bd541175ecd 100644 --- a/drivers/net/wireless/cw1200/txrx.c +++ b/drivers/net/wireless/cw1200/txrx.c | |||
@@ -1166,8 +1166,7 @@ void cw1200_rx_cb(struct cw1200_common *priv, | |||
1166 | return; | 1166 | return; |
1167 | } else if (ieee80211_is_beacon(frame->frame_control) && | 1167 | } else if (ieee80211_is_beacon(frame->frame_control) && |
1168 | !arg->status && priv->vif && | 1168 | !arg->status && priv->vif && |
1169 | !memcmp(ieee80211_get_SA(frame), priv->vif->bss_conf.bssid, | 1169 | ether_addr_equal(ieee80211_get_SA(frame), priv->vif->bss_conf.bssid)) { |
1170 | ETH_ALEN)) { | ||
1171 | const u8 *tim_ie; | 1170 | const u8 *tim_ie; |
1172 | u8 *ies = ((struct ieee80211_mgmt *) | 1171 | u8 *ies = ((struct ieee80211_mgmt *) |
1173 | (skb->data))->u.beacon.variable; | 1172 | (skb->data))->u.beacon.variable; |