wireless: slight optimization of addr compare
Subsystems (9)
PATCH 19/21 wireless: slight optimization of addr compare
Use the recently added and possibly more efficient ether_addr_equal_unaligned to instead of memcmp.
--- drivers/net/wireless/adm8211.c | 2 +- drivers/net/wireless/ath/ath10k/mac.c | 2 +- drivers/net/wireless/ath/ath10k/txrx.c | 2 +- drivers/net/wireless/ath/ath6kl/cfg80211.c | 2 +- drivers/net/wireless/ath/ath6kl/main.c | 6 +++--- drivers/net/wireless/ath/ath6kl/txrx.c | 3 +-- drivers/net/wireless/ath/ath6kl/wmi.c | 4 ++-- drivers/net/wireless/ath/wcn36xx/txrx.c | 2 +- drivers/net/wireless/ath/wil6210/cfg80211.c | 2 +- drivers/net/wireless/atmel.c | 16 +++++++++------- drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c | 2 +- drivers/net/wireless/brcm80211/brcmfmac/p2p.c | 9 ++++----- drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | 10 ++++------ drivers/net/wireless/libertas/main.c | 2 +- drivers/net/wireless/mac80211_hwsim.c | 7 +++---- drivers/net/wireless/mwl8k.c | 7 +++---- drivers/net/wireless/orinoco/main.c | 2 +- drivers/net/wireless/prism54/isl_ioctl.c | 9 +++++---- drivers/net/wireless/ray_cs.c | 2 +- drivers/net/wireless/ti/wl1251/main.c | 2 +- drivers/net/wireless/wl3501_cs.c | 3 +-- 21 files changed, 46 insertions(+), 50 deletions(-)
drivers/net/wireless/adm8211.c +1 -1
@@ -1314,7 +1314,7 @@ static void adm8211_bss_info_changed(struct ieee80211_hw *dev,if (!(changes &BSS_CHANGED_BSSID ))return ; -if (memcmp (conf->bssid, priv->bssid,ETH_ALEN )) { +if (!ether_addr_equal_unaligned (conf->bssid, priv->bssid)) {adm8211_set_bssid (dev, conf->bssid);memcpy (priv->bssid, conf->bssid,ETH_ALEN ); }
drivers/net/wireless/ath/ath10k/mac.c +1 -1
@@ -66,7 +66,7 @@ static int ath10k_send_key(struct ath10k_vif *arvif, arg.key_cipher =WMI_CIPHER_WEP ;/* AP/IBSS mode requires self-key to be groupwise * Otherwise pairwise key must be set */ -if (memcmp (macaddr, arvif->vif->addr,ETH_ALEN )) +if (!ether_addr_equal_unaligned (macaddr, arvif->vif->addr)) arg.key_flags =WMI_KEY_PAIRWISE ;break ;default :
drivers/net/wireless/ath/ath10k/txrx.c +1 -1
@@ -288,7 +288,7 @@ struct ath10k_peer *ath10k_peer_find(struct ath10k *ar, int vdev_id,list_for_each_entry (peer, &ar->peers, list) {if (peer->vdev_id != vdev_id)continue ; -if (memcmp (peer->addr, addr,ETH_ALEN )) +if (!ether_addr_equal_unaligned (peer->addr, addr))continue ;return peer;
drivers/net/wireless/ath/ath6kl/cfg80211.c +1 -1
@@ -1773,7 +1773,7 @@ static int ath6kl_get_station(struct wiphy *wiphy, struct net_device *dev,int ret;u8 mcs; -if (memcmp (mac, vif->bssid,ETH_ALEN ) !=0 ) +if (!ether_addr_equal_unaligned (mac, vif->bssid))return -ENOENT ;if (down_interruptible (&ar->sem))
drivers/net/wireless/ath/ath6kl/main.c +3 -3
@@ -35,7 +35,7 @@ struct ath6kl_sta *ath6kl_find_sta(struct ath6kl_vif *vif, u8 *node_addr) max_conn = (vif->nw_type ==AP_NETWORK ) ?AP_MAX_NUM_STA :0 ;for (i =0 ; i < max_conn; i++) { -if (memcmp (node_addr, ar->sta_list[i].mac,ETH_ALEN ) ==0 ) { +if (ether_addr_equal_unaligned (node_addr, ar->sta_list[i].mac)) { conn = &ar->sta_list[i];break ; }
@@ -132,7 +132,7 @@ static u8 ath6kl_remove_sta(struct ath6kl *ar, u8 *mac, u16 reason) } }else {for (i =0 ; i <AP_MAX_NUM_STA ; i++) { -if (memcmp (ar->sta_list[i].mac, mac,ETH_ALEN ) ==0 ) { +if (ether_addr_equal_unaligned (ar->sta_list[i].mac, mac)) {ath6kl_dbg (ATH6KL_DBG_TRC ,"deleting station %pM aid=%d reason=%d\n" , mac, ar->sta_list[i].aid, reason);
@@ -1008,7 +1008,7 @@ void ath6kl_disconnect_event(struct ath6kl_vif *vif, u8 reason, u8 *bssid,cfg80211_del_sta (vif->ndev, bssid,GFP_KERNEL ); } -if (memcmp (vif->ndev->dev_addr, bssid,ETH_ALEN ) ==0 ) { +if (ether_addr_equal_unaligned (vif->ndev->dev_addr, bssid)) {memset (vif->wep_key_list,0 ,sizeof (vif->wep_key_list));clear_bit (CONNECTED , &vif->flags); }
drivers/net/wireless/ath/ath6kl/txrx.c +1 -2
@@ -55,8 +55,7 @@ static u8 ath6kl_ibss_map_epid(struct sk_buff *skb, struct net_device *dev,return ENDPOINT_2 ;for (i =0 ; i < ar->node_num; i++) { -if (memcmp (eth_hdr->h_dest, ar->node_map[i].mac_addr, -ETH_ALEN ) ==0 ) { +if (ether_addr_equal_unaligned (eth_hdr->h_dest, ar->node_map[i].mac_addr)) { *map_no = i +1 ; ar->node_map[i].tx_pend++;return ar->node_map[i].ep_id;
drivers/net/wireless/ath/ath6kl/wmi.c +2 -2
@@ -817,7 +817,7 @@ static int ath6kl_wmi_connect_event_rx(struct wmi *wmi, u8 *datap, int len,if (vif->nw_type ==AP_NETWORK ) {/* AP mode start/STA connected event */ struct net_device *dev = vif->ndev; -if (memcmp (dev->dev_addr, ev->u.ap_bss.bssid,ETH_ALEN ) ==0 ) { +if (ether_addr_equal_unaligned (dev->dev_addr, ev->u.ap_bss.bssid)) { ath6kl_dbg(ATH6KL_DBG_WMI, "%s: freq %d bssid %pM (AP started)\n", __func__, le16_to_cpu(ev->u.ap_bss.ch),
@@ -1080,7 +1080,7 @@ static int ath6kl_wmi_bssinfo_event_rx(struct wmi *wmi, u8 *datap, int len,if (bih->frame_type ==BEACON_FTYPE &&test_bit (CONNECTED , &vif->flags) && -memcmp (bih->bssid, vif->bssid,ETH_ALEN ) ==0 ) { +ether_addr_equal_unaligned (bih->bssid, vif->bssid)) {const u8 *tim; tim =cfg80211_find_ie (WLAN_EID_TIM , buf +8 +2 +2 , len -8 -2 -2 );
drivers/net/wireless/ath/wcn36xx/txrx.c +1 -1
@@ -105,7 +105,7 @@ static inline struct wcn36xx_vif *get_vif_by_addr(struct wcn36xx *wcn, vif =container_of ((void *)vif_priv, struct ieee80211_vif, drv_priv); -if (memcmp (vif->addr, addr,ETH_ALEN ) ==0 ) +if (ether_addr_equal_unaligned (vif->addr, addr))return vif_priv; }wcn36xx_warn ("vif %pM not found\n" , addr);
drivers/net/wireless/ath/wil6210/cfg80211.c +1 -1
@@ -115,7 +115,7 @@ static int wil_cfg80211_get_station(struct wiphy *wiphy, .interval_usec = 0, }; -if (memcmp (mac, wil->dst_addr[0 ],ETH_ALEN )) +if (!ether_addr_equal_unaligned (mac, wil->dst_addr[0 ]))return -ENOENT ;/* WMI_NOTIFY_REQ_DONE_EVENTID handler fills wil->stats.bf_mcs */
drivers/net/wireless/atmel.c +9 -7
@@ -1012,7 +1012,7 @@ static void frag_rx_path(struct atmel_private *priv, }else if (priv->frag_no == frag_no && priv->frag_seq == seq_no && -memcmp (priv->frag_source, source,ETH_ALEN ) ==0 ) { +ether_addr_equal_unaligned (priv->frag_source, source)) {atmel_copy_to_host (priv->dev, &priv->rx_buf[12 + priv->frag_len], rx_packet_loc, msdu_size);
@@ -2499,8 +2499,8 @@ static int atmel_set_wap(struct net_device *dev,if (awrq->sa_family !=ARPHRD_ETHER )return -EINVAL ; -if (!memcmp (any, awrq->sa_data,6 ) || - !memcmp (off, awrq->sa_data,6 )) { +if (ether_addr_equal_unaligned (any, awrq->sa_data) || +ether_addr_equal_unaligned (off, awrq->sa_data)) {del_timer_sync (&priv->management_timer);spin_lock_irqsave (&priv->irqlock, flags);atmel_scan (priv,1 );
@@ -2509,7 +2509,7 @@ static int atmel_set_wap(struct net_device *dev, }for (i =0 ; i < priv->BSS_list_entries; i++) { -if (memcmp (priv->BSSinfo[i].BSSID, awrq->sa_data,6 ) ==0 ) { +if (ether_addr_equal_unaligned (priv->BSSinfo[i].BSSID, awrq->sa_data)) {if (!priv->wep_is_on && priv->BSSinfo[i].UsingWEP) {return -EINVAL ; }else if (priv->wep_is_on && !priv->BSSinfo[i].UsingWEP) {
@@ -2966,9 +2966,11 @@ static int is_frame_from_current_bss(struct atmel_private *priv, struct ieee80211_hdr *header) {if (le16_to_cpu (header->frame_control) &IEEE80211_FCTL_FROMDS ) -return memcmp (header->addr3, priv->CurrentBSSID,6 ) ==0 ; +return ether_addr_equal_unaligned (header->addr3, + priv->CurrentBSSID);else -return memcmp (header->addr2, priv->CurrentBSSID,6 ) ==0 ; +return ether_addr_equal_unaligned (header->addr2, + priv->CurrentBSSID); }static int retrieve_bss (struct atmel_private *priv)
@@ -3021,7 +3023,7 @@ static void store_bss_info(struct atmel_private *priv,int i, index;for (index =-1 , i =0 ; i < priv->BSS_list_entries; i++) -if (memcmp (bss, priv->BSSinfo[i].BSSID,ETH_ALEN ) ==0 ) +if (ether_addr_equal_unaligned (bss, priv->BSSinfo[i].BSSID)) index = i;/* If we process a probe and an entry from this BSS exists
drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c +1 -1
@@ -719,7 +719,7 @@ brcmf_fws_macdesc_lookup(struct brcmf_fws_info *fws, u8 *ea) entry = &fws->desc.nodes[0 ];for (i =0 ; i <ARRAY_SIZE (fws->desc.nodes); i++) { -if (entry->occupied && !memcmp (entry->ea, ea,ETH_ALEN )) +if (entry->occupied &ðer_addr_equal_unaligned (entry->ea, ea))return entry; entry++; }
drivers/net/wireless/brcm80211/brcmfmac/p2p.c +4 -5
@@ -1243,7 +1243,7 @@ bool brcmf_p2p_scan_finding_common_channel(struct brcmf_cfg80211_info *cfg,IEEE80211_P2P_ATTR_DEVICE_ID , p2p_dev_addr, sizeof(p2p_dev_addr));if ((err >=0 ) && - (!memcmp (p2p_dev_addr, afx_hdl->tx_dst_addr,ETH_ALEN ))) { + (ether_addr_equal_unaligned (p2p_dev_addr, afx_hdl->tx_dst_addr))) {if (!bi->ctl_ch) { ch.chspec =le16_to_cpu (bi->chanspec); cfg->d11inf.decchspec (&ch);
@@ -1313,7 +1313,7 @@ brcmf_p2p_gon_req_collision(struct brcmf_p2p_info *p2p, u8 *mac)* this device will process gon request and drop gon req of peer. */ ifp = p2p->bss_idx[P2PAPI_BSSCFG_DEVICE ].vif->ifp; -if (memcmp (mac, ifp->mac_addr,ETH_ALEN ) <0 ) { +if (!ether_addr_equal_unaligned (mac, ifp->mac_addr) <0 ) {brcmf_dbg (INFO ,"Block transmit gon req !!!\n" ); p2p->block_gon_req_tx = true;/* if we are finding a common channel for sending af,
@@ -1380,8 +1380,7 @@ int brcmf_p2p_notify_action_frame_rx(struct brcmf_if *ifp, (brcmf_p2p_gon_req_collision(p2p, (u8 *)e->addr))) {if (test_bit (BRCMF_P2P_STATUS_FINDING_COMMON_CHANNEL , &p2p->status) && - (memcmp (afx_hdl->tx_dst_addr, e->addr, -ETH_ALEN ) ==0 )) { + (ether_addr_equal_unaligned (afx_hdl->tx_dst_addr, e->addr))) { afx_hdl->peer_chan = ch.chnum;brcmf_dbg (INFO ,"GON request: Peer found, channel=%d\n" , afx_hdl->peer_chan);
@@ -1865,7 +1864,7 @@ s32 brcmf_p2p_notify_rx_mgmt_p2p_probereq(struct brcmf_if *ifp, cfg->d11inf.decchspec (&ch);if (test_bit (BRCMF_P2P_STATUS_FINDING_COMMON_CHANNEL , &p2p->status) && - (memcmp (afx_hdl->tx_dst_addr, e->addr,ETH_ALEN ) ==0 )) { + (ether_addr_equal_unaligned (afx_hdl->tx_dst_addr, e->addr))) { afx_hdl->peer_chan = ch.chnum;brcmf_dbg (INFO ,"PROBE REQUEST: Peer found, channel=%d\n" , afx_hdl->peer_chan);
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c +4 -6
@@ -2186,7 +2186,7 @@ brcmf_cfg80211_get_station(struct wiphy *wiphy, struct net_device *ndev,brcmf_dbg (TRACE ,"STA idle time : %d ms, connected time :%d sec\n" , sinfo->inactive_time, sinfo->connected_time); }else if (ifp->vif->mode ==WL_MODE_BSS ) { -if (memcmp (mac, bssid,ETH_ALEN )) { +if (!ether_addr_equal_unaligned (mac, bssid)) {brcmf_err ("Wrong Mac address cfg_mac-%pM wl_bssid-%pM\n" , mac, bssid); err = -ENOENT ;
@@ -2552,7 +2552,7 @@ brcmf_compare_update_same_bss(struct brcmf_cfg80211_info *cfg, ch_bss_info_le.chspec =le16_to_cpu (bss_info_le->chanspec); cfg->d11inf.decchspec (&ch_bss_info_le); -if (!memcmp (&bss_info_le->BSSID, &bss->BSSID,ETH_ALEN ) && +if (ether_addr_equal_unaligned (&bss_info_le->BSSID, &bss->BSSID) && ch_bss.band == ch_bss_info_le.band && bss_info_le->SSID_len == bss->SSID_len && !memcmp (bss_info_le->SSID, bss->SSID, bss_info_le->SSID_len)) {
@@ -2798,7 +2798,7 @@ brcmf_cfg80211_set_pmksa(struct wiphy *wiphy, struct net_device *ndev, pmkid_len =le32_to_cpu (pmkids->npmkid);for (i =0 ; i < pmkid_len; i++) -if (!memcmp (pmksa->bssid, pmkids->pmkid[i].BSSID,ETH_ALEN )) +if (ether_addr_equal_unaligned (pmksa->bssid, pmkids->pmkid[i].BSSID))break ;if (i <WL_NUM_PMKIDS_MAX ) {memcpy (pmkids->pmkid[i].BSSID, pmksa->bssid,ETH_ALEN );
@@ -2845,9 +2845,7 @@ brcmf_cfg80211_del_pmksa(struct wiphy *wiphy, struct net_device *ndev, pmkid_len =le32_to_cpu (cfg->pmk_list->pmkids.npmkid);for (i =0 ; i < pmkid_len; i++) -if (!memcmp - (pmksa->bssid, &cfg->pmk_list->pmkids.pmkid[i].BSSID, -ETH_ALEN )) +if (ether_addr_equal_unaligned (pmksa->bssid, &cfg->pmk_list->pmkids.pmkid[i].BSSID))break ; if ((pmkid_len > 0)
drivers/net/wireless/libertas/main.c +1 -1
@@ -327,7 +327,7 @@ static inline int mac_in_list(unsigned char *list, int list_len, unsigned char *mac) {while (list_len) { -if (!memcmp (list, mac,ETH_ALEN )) +if (ether_addr_equal_unaligned (list, mac))return 1 ; list +=ETH_ALEN ; list_len--;
drivers/net/wireless/mac80211_hwsim.c +3 -4
@@ -561,8 +561,7 @@ static bool hwsim_ps_rx_ok(struct mac80211_hwsim_data *data,/* Allow unicast frames to own address if there is a pending * PS-Poll */ if (data->ps_poll_pending && -memcmp (data->hw->wiphy->perm_addr, skb->data +4 , -ETH_ALEN ) ==0 ) { +ether_addr_equal_unaligned (data->hw->wiphy->perm_addr, skb->data +4 )) { data->ps_poll_pending = false;return true; }
@@ -582,7 +581,7 @@ static void mac80211_hwsim_addr_iter(void *data, u8 *mac, struct ieee80211_vif *vif) {struct mac80211_hwsim_addr_match_data *md = data; -if (memcmp (mac, md->addr,ETH_ALEN ) ==0 ) +if (ether_addr_equal_unaligned (mac, md->addr)) md->ret = true; }
@@ -592,7 +591,7 @@ static bool mac80211_hwsim_addr_match(struct mac80211_hwsim_data *data, {struct mac80211_hwsim_addr_match_data md; -if (memcmp (addr, data->hw->wiphy->perm_addr,ETH_ALEN ) ==0 ) +if (ether_addr_equal_unaligned (addr, data->hw->wiphy->perm_addr))return true; md.ret = false;
drivers/net/wireless/mwl8k.c +3 -4
@@ -1286,8 +1286,7 @@ static inline struct mwl8k_vif *mwl8k_find_vif_bss(struct list_head *vif_list,list_for_each_entry (mwl8k_vif, vif_list, list) { -if (memcmp (bssid, mwl8k_vif->bssid, -ETH_ALEN ) ==0 ) +if (ether_addr_equal_unaligned (bssid, mwl8k_vif->bssid))return mwl8k_vif; }
@@ -1826,7 +1825,7 @@ mwl8k_lookup_stream(struct ieee80211_hw *hw, u8 *addr, u8 tid) stream = &priv->ampdu[i];if (stream->state ==AMPDU_NO_STREAM )continue ; -if (!memcmp (stream->sta->addr, addr,ETH_ALEN ) && +if (ether_addr_equal_unaligned (stream->sta->addr, addr) && stream->tid == tid)return stream; }
@@ -4030,7 +4029,7 @@ static int mwl8k_cmd_set_new_stn_del(struct ieee80211_hw *hw,struct mwl8k_ampdu_stream *s; s = &priv->ampdu[i];if (s->state !=AMPDU_NO_STREAM ) { -if (memcmp (s->sta->addr, addr,ETH_ALEN ) ==0 ) { +if (ether_addr_equal_unaligned (s->sta->addr, addr)) {if (s->state ==AMPDU_STREAM_ACTIVE ) { idx = s->idx;spin_unlock (&priv->stream_lock);
drivers/net/wireless/orinoco/main.c +1 -1
@@ -1203,7 +1203,7 @@ static void orinoco_join_ap(struct work_struct *work)* we were requested to join */ for (; offset + atom_len <= len; offset += atom_len) { atom = (struct prism2_scan_apinfo *) (buf + offset); -if (memcmp (&atom->bssid, priv->desired_bssid,ETH_ALEN ) ==0 ) { +if (ether_addr_equal_unaligned (&atom->bssid, priv->desired_bssid,ETH_ALEN ) !=0 ) { found =1 ;break ; }
drivers/net/wireless/prism54/isl_ioctl.c +5 -4
@@ -24,6 +24,7 @@#include <linux/if_arp.h> #include <linux/slab.h> #include <linux/pci.h> +#include <linux/etherdevice.h> #include <asm/uaccess.h>
@@ -1860,7 +1861,7 @@ prism54_del_mac(struct net_device *ndev, struct iw_request_info *info,if (mutex_lock_interruptible (&acl->lock))return -ERESTARTSYS ;list_for_each_entry (entry, &acl->mac_list, _list) { -if (memcmp (entry->addr, addr->sa_data,ETH_ALEN ) ==0 ) { +if (ether_addr_equal_unaligned (entry->addr, addr->sa_data)) {list_del (&entry->_list); acl->size--;kfree (entry);
@@ -1965,7 +1966,7 @@ prism54_mac_accept(struct islpci_acl *acl, char *mac) }list_for_each_entry (entry, &acl->mac_list, _list) { -if (memcmp (entry->addr, mac,ETH_ALEN ) ==0 ) { +if (ether_addr_equal_unaligned (entry->addr, mac)) { res =1 ;break ; }
@@ -2121,7 +2122,7 @@ prism54_wpa_bss_ie_add(islpci_private *priv, u8 *bssid,/* try to use existing entry */ list_for_each (ptr, &priv->bss_wpa_list) { bss = list_entry(ptr, struct islpci_bss_wpa_ie, list); -if (memcmp (bss->bssid, bssid,ETH_ALEN ) ==0 ) { +if (ether_addr_equal_unaligned (bss->bssid, bssid)) {list_move (&bss->list, &priv->bss_wpa_list);break ; }
@@ -2181,7 +2182,7 @@ prism54_wpa_bss_ie_get(islpci_private *priv, u8 *bssid, u8 *wpa_ie)list_for_each (ptr, &priv->bss_wpa_list) { bss = list_entry(ptr, struct islpci_bss_wpa_ie, list); -if (memcmp (bss->bssid, bssid,ETH_ALEN ) ==0 ) +if (ether_addr_equal_unaligned (bss->bssid, bssid))break ; bss =NULL ; }
drivers/net/wireless/ray_cs.c +1 -1
@@ -2257,7 +2257,7 @@ static void rx_data(struct net_device *dev, struct rcs __iomem *prcs,/* For the Access Point or the node having started the ad-hoc net * note : ad-hoc work only in some specific configurations, but we * kludge in ray_get_wireless_stats... */ -if (!memcmp (linksrcaddr, local->bss_id,ETH_ALEN )) { +if (ether_addr_equal_unaligned (linksrcaddr, local->bss_id)) {/* Update statistics */ /*local->wstats.qual.qual = none ? */ local->wstats.qual.level = siglev;
drivers/net/wireless/ti/wl1251/main.c +1 -1
@@ -521,7 +521,7 @@ static int wl1251_op_add_interface(struct ieee80211_hw *hw, goto out; } -if (memcmp (wl->mac_addr, vif->addr,ETH_ALEN )) { +if (!ether_addr_equal_unaligned (wl->mac_addr, vif->addr)) {memcpy (wl->mac_addr, vif->addr,ETH_ALEN );SET_IEEE80211_PERM_ADDR (wl->hw, wl->mac_addr); ret =wl1251_acx_station_id (wl);
drivers/net/wireless/wl3501_cs.c +1 -2
@@ -673,8 +673,7 @@ static void wl3501_mgmt_scan_confirm(struct wl3501_card *this, u16 addr) matchflag =1 ;if (matchflag) {for (i =0 ; i < this->bss_cnt; i++) { -if (!memcmp (this->bss_set[i].bssid, - sig.bssid,ETH_ALEN )) { +if (ether_addr_equal_unaligned (this->bss_set[i].bssid, sig.bssid)) { matchflag =0 ;break ; }
Signature · 1 line
1.8.0
Quoted 2 lines · Ding Tianhong
Use the recently added and possibly more efficient
ether_addr_equal_unalignedto instead of memcmp.
It looks to me like all of these (including the ones in the other similar patches) are in places, where the address data is aligned to at least 16 bit. Because of this, using ether_addr_equal instead of ether_addr_equal_unaligned would be much better for platforms without CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS.
- Felix
Quoted 10 lines · Felix Fietkau
Quoted 2 lines · Ding Tianhong
Use the recently added and possibly more efficient
ether_addr_equal_unalignedto instead of memcmp.It looks to me like all of these (including the ones in the other similar patches) are in places, where the address data is aligned to at least 16 bit. Because of this, using
ether_addr_equalinstead ofether_addr_equal_unalignedwould be much better for platforms withoutCONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS.- Felix
Yes, the most of the place should use ether_addr_equal. thanks.
Regards
Ding
Quoted 5 lines
--
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
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html