net: Add and use ether_addr_equal
Subsystems (10)
cover net: Add and use ether_addr_equal
Add a boolean function to test 2 ethernet addresses for equality Convert compare_ether_addr uses to ether_addr_equal
Joe Perches (13):
etherdevice.h: Add ether_addr_equal
802: Convert compare_ether_addr to ether_addr_equal 8021q: Convert compare_ether_addr to ether_addr_equal
bridge: netfilter: Convert compare_ether_addr to ether_addr_equal
bridge: Convert compare_ether_addr to ether_addr_equal
atm: Convert compare_ether_addr to ether_addr_equal
bluetooth: Convert compare_ether_addr to ether_addr_equal
mac80211: Convert compare_ether_addr to ether_addr_equal
mac80211: Convert compare_ether_addr to ether_addr_equal by hand
netfilter: Convert compare_ether_addr to ether_addr_equal
wireless: Convert compare_ether_addr to ether_addr_equal
wireless: Convert compare_ether_addr to ether_addr_equal by hand
dsa: Convert compare_ether_addr to ether_addr_equal
include/linux/etherdevice.h | 12 +++++++++ net/802/stp.c | 2 +- net/8021q/vlan.c | 10 +++--- net/8021q/vlan_core.c | 3 +- net/8021q/vlan_dev.c | 10 +++--- net/atm/lec.c | 6 ++-- net/atm/mpc.c | 3 +- net/bluetooth/bnep/core.c | 6 ++-- net/bridge/br_device.c | 2 +- net/bridge/br_fdb.c | 14 +++++----- net/bridge/br_input.c | 2 +- net/bridge/br_stp_bpdu.c | 2 +- net/bridge/br_stp_if.c | 11 +++---- net/bridge/netfilter/ebt_stp.c | 4 +- net/dsa/slave.c | 10 +++--- net/mac80211/cfg.c | 2 +- net/mac80211/ibss.c | 12 ++++---- net/mac80211/ieee80211_i.h | 2 +- net/mac80211/iface.c | 2 +- net/mac80211/mesh.c | 4 +- net/mac80211/mesh_hwmp.c | 14 +++++----- net/mac80211/mesh_pathtbl.c | 12 ++++---- net/mac80211/mlme.c | 29 +++++++++------------ net/mac80211/rx.c | 39 +++++++++++++--------------- net/mac80211/scan.c | 2 +- net/mac80211/sta_info.c | 8 +++--- net/mac80211/sta_info.h | 2 +- net/mac80211/status.c | 2 +- net/mac80211/tx.c | 11 +++---- net/netfilter/ipset/ip_set_bitmap_ipmac.c | 4 +- net/netfilter/xt_mac.c | 2 +- net/wireless/ibss.c | 2 +- net/wireless/mlme.c | 31 +++++++++++------------ net/wireless/scan.c | 2 +- net/wireless/util.c | 11 +++---- net/wireless/wext-sme.c | 2 +- net/wireless/wext-spy.c | 2 +- 37 files changed, 147 insertions(+), 147 deletions(-)
Signature · 1 line
1.7.8.111.gad25c.dirty
PATCH 1/13 etherdevice.h: Add ether_addr_equal
Add a boolean function to check if 2 ethernet addresses are the same.
This is to avoid any confusion about compare_ether_addr returning an unsigned, and not being able to use the compare_ether_addr function for sorting ala memcmp.
--- include/linux/etherdevice.h | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-)
include/linux/etherdevice.h +12 -0
@@ -171,6 +171,18 @@ static inline unsigned compare_ether_addr(const u8 *addr1, const u8 *addr2)return ((a[0 ] ^ b[0 ]) | (a[1 ] ^ b[1 ]) | (a[2 ] ^ b[2 ])) !=0 ; } +/** +* ether_addr_equal - Compare two Ethernet addresses +* @addr1: Pointer to a six-byte array containing the Ethernet address +* @addr2: Pointer other six-byte array containing the Ethernet address +* +* Compare two ethernet addresses, returns true if equal +*/ +static inline bool ether_addr_equal (const u8 *addr1,const u8 *addr2) +{ +return !compare_ether_addr (addr1, addr2); +} +static inline unsigned long zap_last_2bytes (unsigned long value) {#ifdef __BIG_ENDIAN
Signature · 1 line
1.7.8.111.gad25c.dirty
PATCH 2/13 802: Convert compare_ether_addr to ether_addr_equal
In reply to Joe PerchesUse the new bool function ether_addr_equal to add
some clarity and reduce the likelihood for misuse
of compare_ether_addr for sorting.
Done via cocci script:
$ cat compare_ether_addr.cocci @@ expression a,b; @@ - !compare_ether_addr(a, b) + ether_addr_equal(a, b)
@@
expression a,b;
@@
- compare_ether_addr(a, b)
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) == 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) != 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) == 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) != 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !!ether_addr_equal(a, b)
+ ether_addr_equal(a, b)
--- net/802/stp.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
net/802/stp.c +1 -1
@@ -46,7 +46,7 @@ static int stp_pdu_rcv(struct sk_buff *skb, struct net_device *dev, proto =rcu_dereference (garp_protos[eh->h_dest[5 ] -GARP_ADDR_MIN ]);if (proto && -compare_ether_addr (eh->h_dest, proto->group_address)) + !ether_addr_equal (eh->h_dest, proto->group_address)) goto err; }else proto =rcu_dereference (stp_proto);
Signature · 1 line
1.7.8.111.gad25c.dirty
PATCH 3/13 8021q: Convert compare_ether_addr to ether_addr_equal
In reply to Joe PerchesUse the new bool function ether_addr_equal to add
some clarity and reduce the likelihood for misuse
of compare_ether_addr for sorting.
Done via cocci script:
$ cat compare_ether_addr.cocci @@ expression a,b; @@ - !compare_ether_addr(a, b) + ether_addr_equal(a, b)
@@
expression a,b;
@@
- compare_ether_addr(a, b)
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) == 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) != 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) == 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) != 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !!ether_addr_equal(a, b)
+ ether_addr_equal(a, b)
--- net/8021q/vlan.c | 10 +++++----- net/8021q/vlan_core.c | 3 +-- net/8021q/vlan_dev.c | 10 +++++----- 3 files changed, 11 insertions(+), 12 deletions(-)
net/8021q/vlan.c +5 -5
@@ -266,19 +266,19 @@ static void vlan_sync_address(struct net_device *dev,struct vlan_dev_priv *vlan =vlan_dev_priv (vlandev);/* May be called without an actual change */ -if (!compare_ether_addr (vlan->real_dev_addr, dev->dev_addr)) +if (ether_addr_equal (vlan->real_dev_addr, dev->dev_addr))return ;/* vlan address was different from the old address and is equal to * the new address */ -if (compare_ether_addr (vlandev->dev_addr, vlan->real_dev_addr) && - !compare_ether_addr (vlandev->dev_addr, dev->dev_addr)) +if (!ether_addr_equal (vlandev->dev_addr, vlan->real_dev_addr) && +ether_addr_equal (vlandev->dev_addr, dev->dev_addr))dev_uc_del (dev, vlandev->dev_addr);/* vlan address was equal to the old address and is different from * the new address */ -if (!compare_ether_addr (vlandev->dev_addr, vlan->real_dev_addr) && -compare_ether_addr (vlandev->dev_addr, dev->dev_addr)) +if (ether_addr_equal (vlandev->dev_addr, vlan->real_dev_addr) && + !ether_addr_equal (vlandev->dev_addr, dev->dev_addr))dev_uc_add (dev, vlandev->dev_addr);memcpy (vlan->real_dev_addr, dev->dev_addr,ETH_ALEN );
net/8021q/vlan_core.c +1 -2
@@ -31,8 +31,7 @@ bool vlan_do_receive(struct sk_buff **skbp, bool last_handler)/* Our lower layer thinks this is not local, let's make sure. * This allows the VLAN to have a different MAC than the * underlying device, and still route correctly. */ -if (!compare_ether_addr (eth_hdr (skb)->h_dest, - vlan_dev->dev_addr)) +if (ether_addr_equal (eth_hdr (skb)->h_dest, vlan_dev->dev_addr)) skb->pkt_type =PACKET_HOST ; }
net/8021q/vlan_dev.c +5 -5
@@ -277,7 +277,7 @@ static int vlan_dev_open(struct net_device *dev) !(vlan->flags & VLAN_FLAG_LOOSE_BINDING))return -ENETDOWN ; -if (compare_ether_addr (dev->dev_addr, real_dev->dev_addr)) { +if (!ether_addr_equal (dev->dev_addr, real_dev->dev_addr)) { err =dev_uc_add (real_dev, dev->dev_addr);if (err <0 ) goto out;
@@ -307,7 +307,7 @@ clear_allmulti:if (dev->flags &IFF_ALLMULTI )dev_set_allmulti (real_dev,-1 ); del_unicast: -if (compare_ether_addr (dev->dev_addr, real_dev->dev_addr)) +if (!ether_addr_equal (dev->dev_addr, real_dev->dev_addr))dev_uc_del (real_dev, dev->dev_addr); out:netif_carrier_off (dev);
@@ -326,7 +326,7 @@ static int vlan_dev_stop(struct net_device *dev)if (dev->flags &IFF_PROMISC )dev_set_promiscuity (real_dev,-1 ); -if (compare_ether_addr (dev->dev_addr, real_dev->dev_addr)) +if (!ether_addr_equal (dev->dev_addr, real_dev->dev_addr))dev_uc_del (real_dev, dev->dev_addr);netif_carrier_off (dev);
@@ -345,13 +345,13 @@ static int vlan_dev_set_mac_address(struct net_device *dev, void *p)if (!(dev->flags &IFF_UP )) goto out; -if (compare_ether_addr (addr->sa_data, real_dev->dev_addr)) { +if (!ether_addr_equal (addr->sa_data, real_dev->dev_addr)) { err =dev_uc_add (real_dev, addr->sa_data);if (err <0 )return err; } -if (compare_ether_addr (dev->dev_addr, real_dev->dev_addr)) +if (!ether_addr_equal (dev->dev_addr, real_dev->dev_addr))dev_uc_del (real_dev, dev->dev_addr); out:
Signature · 1 line
1.7.8.111.gad25c.dirty
PATCH 4/13 bridge: netfilter: Convert compare_ether_addr to ether_addr_equal
In reply to Joe PerchesUse the new bool function ether_addr_equal to add
some clarity and reduce the likelihood for misuse
of compare_ether_addr for sorting.
Done via cocci script:
$ cat compare_ether_addr.cocci @@ expression a,b; @@ - !compare_ether_addr(a, b) + ether_addr_equal(a, b)
@@
expression a,b;
@@
- compare_ether_addr(a, b)
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) == 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) != 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) == 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) != 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !!ether_addr_equal(a, b)
+ ether_addr_equal(a, b)
--- net/bridge/netfilter/ebt_stp.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
net/bridge/netfilter/ebt_stp.c +2 -2
@@ -164,8 +164,8 @@ static int ebt_stp_mt_check(const struct xt_mtchk_param *par) !(info->bitmask & EBT_STP_MASK))return -EINVAL ;/* Make sure the match only receives stp frames */ -if (compare_ether_addr (e->destmac, bridge_ula) || -compare_ether_addr (e->destmsk, msk) || !(e->bitmask &EBT_DESTMAC )) +if (!ether_addr_equal (e->destmac, bridge_ula) || + !ether_addr_equal (e->destmsk, msk) || !(e->bitmask &EBT_DESTMAC ))return -EINVAL ;return 0 ;
Signature · 1 line
1.7.8.111.gad25c.dirty
Re: [PATCH 04/13] bridge: netfilter: Convert compare_ether_addr to ether_addr_equal
Quoted 59 lines · On Tue, 8 May 2012 21:56:48 -0700 Joe Perches <[email protected]> wrote:
Use the new bool function
ether_addr_equalto add
some clarity and reduce the likelihood for misuse
ofcompare_ether_addrfor sorting.Done via cocci script:
$ cat compare_ether_addr.cocci @@ expression a,b; @@(quoted diff) +1
-1- !compare_ether_addr(a, b) + ether_addr_equal(a, b)@@
expression a,b;
@@(quoted diff) +1
-1- compare_ether_addr(a, b) + !ether_addr_equal(a, b)@@
expression a,b;
@@(quoted diff) +1
-1- !ether_addr_equal(a, b) == 0 + ether_addr_equal(a, b)@@
expression a,b;
@@(quoted diff) +1
-1- !ether_addr_equal(a, b) != 0 + !ether_addr_equal(a, b)@@
expression a,b;
@@(quoted diff) +1
-1- ether_addr_equal(a, b) == 0 + !ether_addr_equal(a, b)@@
expression a,b;
@@(quoted diff) +1
-1- ether_addr_equal(a, b) != 0 + ether_addr_equal(a, b)@@
expression a,b;
@@(quoted diff) +1
-1- !!ether_addr_equal(a, b) + ether_addr_equal(a, b)Signed-off-by Joe Perches <[email protected]>--- net/bridge/netfilter/ebt_stp.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)net/bridge/netfilter/ebt_stp.c +0
-0
net/bridge/netfilter/ebt_stp.c static int ebt_stp_mt_check(const struct xt_mtchk_param *par) · line 171
Quoted 10 lines
net/bridge/netfilter/ebt_stp.c +2
-2@@ -164,8 +164,8 @@ static int ebt_stp_mt_check(const struct xt_mtchk_param *par) !(info->bitmask & EBT_STP_MASK))return -EINVAL ;/* Make sure the match only receives stp frames */ -if (compare_ether_addr (e->destmac, bridge_ula) || -compare_ether_addr (e->destmsk, msk) || !(e->bitmask &EBT_DESTMAC )) +if (!ether_addr_equal (e->destmac, bridge_ula) || + !ether_addr_equal (e->destmsk, msk) || !(e->bitmask &EBT_DESTMAC ))return -EINVAL ;return 0 ;
All look good.
PATCH 5/13 bridge: Convert compare_ether_addr to ether_addr_equal
In reply to Joe PerchesUse the new bool function ether_addr_equal to add
some clarity and reduce the likelihood for misuse
of compare_ether_addr for sorting.
Done via cocci script:
$ cat compare_ether_addr.cocci @@ expression a,b; @@ - !compare_ether_addr(a, b) + ether_addr_equal(a, b)
@@
expression a,b;
@@
- compare_ether_addr(a, b)
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) == 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) != 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) == 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) != 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !!ether_addr_equal(a, b)
+ ether_addr_equal(a, b)
--- net/bridge/br_device.c | 2 +- net/bridge/br_fdb.c | 14 +++++++------- net/bridge/br_input.c | 2 +- net/bridge/br_stp_bpdu.c | 2 +- net/bridge/br_stp_if.c | 11 +++++------ 5 files changed, 15 insertions(+), 16 deletions(-)
net/bridge/br_device.c +1 -1
@@ -170,7 +170,7 @@ static int br_set_mac_address(struct net_device *dev, void *p)return -EADDRNOTAVAIL ;spin_lock_bh (&br->lock); -if (compare_ether_addr (dev->dev_addr, addr->sa_data)) { +if (!ether_addr_equal (dev->dev_addr, addr->sa_data)) { dev->addr_assign_type &= ~NET_ADDR_RANDOM ;memcpy (dev->dev_addr, addr->sa_data,ETH_ALEN );br_fdb_change_mac_address (br, addr->sa_data);
net/bridge/br_fdb.c +7 -7
@@ -107,8 +107,8 @@ void br_fdb_changeaddr(struct net_bridge_port *p, const unsigned char *newaddr)struct net_bridge_port *op;list_for_each_entry (op, &br->port_list, list) {if (op != p && - !compare_ether_addr (op->dev->dev_addr, - f->addr.addr)) { +ether_addr_equal (op->dev->dev_addr, + f->addr.addr)) { f->dst = op; goto insert; }
@@ -214,8 +214,8 @@ void br_fdb_delete_by_port(struct net_bridge *br,struct net_bridge_port *op;list_for_each_entry (op, &br->port_list, list) {if (op != p && - !compare_ether_addr (op->dev->dev_addr, - f->addr.addr)) { +ether_addr_equal (op->dev->dev_addr, + f->addr.addr)) { f->dst = op; goto skip_delete; }
@@ -237,7 +237,7 @@ struct net_bridge_fdb_entry *__br_fdb_get(struct net_bridge *br,struct net_bridge_fdb_entry *fdb;hlist_for_each_entry_rcu (fdb, h, &br->hash[br_mac_hash (addr)], hlist) { -if (!compare_ether_addr (fdb->addr.addr, addr)) { +if (ether_addr_equal (fdb->addr.addr, addr)) {if (unlikely (has_expired (br, fdb)))break ;return fdb;
@@ -331,7 +331,7 @@ static struct net_bridge_fdb_entry *fdb_find(struct hlist_head *head,struct net_bridge_fdb_entry *fdb;hlist_for_each_entry (fdb, h, head, hlist) { -if (!compare_ether_addr (fdb->addr.addr, addr)) +if (ether_addr_equal (fdb->addr.addr, addr))return fdb; }return NULL ;
@@ -344,7 +344,7 @@ static struct net_bridge_fdb_entry *fdb_find_rcu(struct hlist_head *head,struct net_bridge_fdb_entry *fdb;hlist_for_each_entry_rcu (fdb, h, head, hlist) { -if (!compare_ether_addr (fdb->addr.addr, addr)) +if (ether_addr_equal (fdb->addr.addr, addr))return fdb; }return NULL ;
net/bridge/br_input.c +1 -1
@@ -216,7 +216,7 @@ forward: }/* fall through */ case BR_STATE_LEARNING : -if (!compare_ether_addr (p->br->dev->dev_addr, dest)) +if (ether_addr_equal (p->br->dev->dev_addr, dest)) skb->pkt_type =PACKET_HOST ; NF_HOOK(NFPROTO_BRIDGE, NF_BR_PRE_ROUTING, skb, skb->dev, NULL,
net/bridge/br_stp_bpdu.c +1 -1
@@ -167,7 +167,7 @@ void br_stp_rcv(const struct stp_proto *proto, struct sk_buff *skb,if (p->state ==BR_STATE_DISABLED ) goto out; -if (compare_ether_addr (dest, br->group_addr) !=0 ) +if (!ether_addr_equal (dest, br->group_addr)) goto out; buf =skb_pull (skb,3 );
net/bridge/br_stp_if.c +5 -6
@@ -178,7 +178,7 @@ void br_stp_set_enabled(struct net_bridge *br, unsigned long val)/* called under bridge lock */ void br_stp_change_bridge_id (struct net_bridge *br,const unsigned char *addr) { -/* should be aligned on 2 bytes for compare_ether_addr() */ +/* should be aligned on 2 bytes for ether_addr_equal() */ unsigned short oldaddr_aligned[ETH_ALEN >>1 ];unsigned char *oldaddr = (unsigned char *)oldaddr_aligned;struct net_bridge_port *p;
@@ -191,12 +191,11 @@ void br_stp_change_bridge_id(struct net_bridge *br, const unsigned char *addr)memcpy (br->dev->dev_addr, addr,ETH_ALEN );list_for_each_entry (p, &br->port_list, list) { -if (!compare_ether_addr (p->designated_bridge.addr, oldaddr)) +if (ether_addr_equal (p->designated_bridge.addr, oldaddr))memcpy (p->designated_bridge.addr, addr,ETH_ALEN ); -if (!compare_ether_addr (p->designated_root.addr, oldaddr)) +if (ether_addr_equal (p->designated_root.addr, oldaddr))memcpy (p->designated_root.addr, addr,ETH_ALEN ); - }br_configuration_update (br);
@@ -205,7 +204,7 @@ void br_stp_change_bridge_id(struct net_bridge *br, const unsigned char *addr)br_become_root_bridge (br); } -/* should be aligned on 2 bytes for compare_ether_addr() */ +/* should be aligned on 2 bytes for ether_addr_equal() */ static const unsigned short br_mac_zero_aligned[ETH_ALEN >>1 ];/* called under bridge lock */
@@ -227,7 +226,7 @@ bool br_stp_recalculate_bridge_id(struct net_bridge *br) } -if (compare_ether_addr (br->bridge_id.addr, addr) ==0 ) +if (ether_addr_equal (br->bridge_id.addr, addr))return false;/* no change */ br_stp_change_bridge_id (br, addr);
Signature · 1 line
1.7.8.111.gad25c.dirty
PATCH 6/13 atm: Convert compare_ether_addr to ether_addr_equal
In reply to Joe PerchesUse the new bool function ether_addr_equal to add
some clarity and reduce the likelihood for misuse
of compare_ether_addr for sorting.
Done via cocci script:
$ cat compare_ether_addr.cocci @@ expression a,b; @@ - !compare_ether_addr(a, b) + ether_addr_equal(a, b)
@@
expression a,b;
@@
- compare_ether_addr(a, b)
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) == 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) != 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) == 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) != 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !!ether_addr_equal(a, b)
+ ether_addr_equal(a, b)
--- net/atm/lec.c | 6 +++--- net/atm/mpc.c | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-)
net/atm/lec.c +3 -3
@@ -1255,7 +1255,7 @@ static int lane2_associate_req(struct net_device *dev, const u8 *lan_dst,struct sk_buff *skb;struct lec_priv *priv =netdev_priv (dev); -if (compare_ether_addr (lan_dst, dev->dev_addr)) +if (!ether_addr_equal (lan_dst, dev->dev_addr))return 0 ;/* not our mac address */ kfree (priv->tlvs);/* NULL if there was no previous association */
@@ -1662,7 +1662,7 @@ static struct lec_arp_table *lec_arp_find(struct lec_priv *priv, head = &priv->lec_arp_tables[HASH (mac_addr[ETH_ALEN -1 ])];hlist_for_each_entry (entry, node, head, next) { -if (!compare_ether_addr (mac_addr, entry->mac_addr)) +if (ether_addr_equal (mac_addr, entry->mac_addr))return entry; }return NULL ;
@@ -1849,7 +1849,7 @@ static struct atm_vcc *lec_arp_resolve(struct lec_priv *priv,case 1 :return priv->mcast_vcc;case 2 :/* LANE2 wants arp for multicast addresses */ -if (!compare_ether_addr (mac_to_find, bus_mac)) +if (ether_addr_equal (mac_to_find, bus_mac))return priv->mcast_vcc;break ;default :
net/atm/mpc.c +1 -2
@@ -592,8 +592,7 @@ static netdev_tx_t mpc_send_packet(struct sk_buff *skb, goto non_ip;while (i < mpc->number_of_mps_macs) { -if (!compare_ether_addr (eth->h_dest, - (mpc->mps_macs + i*ETH_ALEN ))) +if (ether_addr_equal (eth->h_dest, mpc->mps_macs + i *ETH_ALEN ))if (send_via_shortcut (skb, mpc) ==0 )/* try shortcut */ return NETDEV_TX_OK ; i++;
Signature · 1 line
1.7.8.111.gad25c.dirty
PATCH 7/13 bluetooth: Convert compare_ether_addr to ether_addr_equal
In reply to Joe PerchesUse the new bool function ether_addr_equal to add
some clarity and reduce the likelihood for misuse
of compare_ether_addr for sorting.
Done via cocci script:
$ cat compare_ether_addr.cocci @@ expression a,b; @@ - !compare_ether_addr(a, b) + ether_addr_equal(a, b)
@@
expression a,b;
@@
- compare_ether_addr(a, b)
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) == 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) != 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) == 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) != 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !!ether_addr_equal(a, b)
+ ether_addr_equal(a, b)
--- net/bluetooth/bnep/core.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
net/bluetooth/bnep/core.c +3 -3
@@ -69,7 +69,7 @@ static struct bnep_session *__bnep_get_session(u8 *dst)BT_DBG ("" );list_for_each_entry (s, &bnep_session_list, list) -if (!compare_ether_addr (dst, s->eh.h_source)) +if (ether_addr_equal (dst, s->eh.h_source))return s;return NULL ;
@@ -422,10 +422,10 @@ static inline int bnep_tx_frame(struct bnep_session *s, struct sk_buff *skb) iv[il++] = (struct kvec ) { &type,1 }; len++; -if (compress_src && !compare_ether_addr (eh->h_dest, s->eh.h_source)) +if (compress_src &ðer_addr_equal (eh->h_dest, s->eh.h_source)) type |=0x01 ; -if (compress_dst && !compare_ether_addr (eh->h_source, s->eh.h_dest)) +if (compress_dst &ðer_addr_equal (eh->h_source, s->eh.h_dest)) type |=0x02 ;if (type)
Signature · 1 line
1.7.8.111.gad25c.dirty
PATCH 8/13 mac80211: Convert compare_ether_addr to ether_addr_equal
In reply to Joe PerchesUse the new bool function ether_addr_equal to add
some clarity and reduce the likelihood for misuse
of compare_ether_addr for sorting.
Done via cocci script:
$ cat compare_ether_addr.cocci @@ expression a,b; @@ - !compare_ether_addr(a, b) + ether_addr_equal(a, b)
@@
expression a,b;
@@
- compare_ether_addr(a, b)
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) == 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) != 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) == 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) != 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !!ether_addr_equal(a, b)
+ ether_addr_equal(a, b)
--- net/mac80211/cfg.c | 2 +- net/mac80211/ibss.c | 12 ++++++------ net/mac80211/ieee80211_i.h | 2 +- net/mac80211/iface.c | 2 +- net/mac80211/mesh.c | 4 ++-- net/mac80211/mesh_hwmp.c | 14 +++++++------- net/mac80211/mesh_pathtbl.c | 12 ++++++------ net/mac80211/mlme.c | 29 +++++++++++++---------------- net/mac80211/rx.c | 35 ++++++++++++++++------------------- net/mac80211/scan.c | 2 +- net/mac80211/sta_info.c | 8 ++++---- net/mac80211/status.c | 2 +- net/mac80211/tx.c | 11 +++++------ 13 files changed, 64 insertions(+), 71 deletions(-)
net/mac80211/cfg.c +1 -1
@@ -919,7 +919,7 @@ static int ieee80211_add_station(struct wiphy *wiphy, struct net_device *dev, }else sdata =IEEE80211_DEV_TO_SUB_IF (dev); -if (compare_ether_addr (mac, sdata->vif.addr) ==0 ) +if (ether_addr_equal (mac, sdata->vif.addr))return -EINVAL ;if (is_multicast_ether_addr (mac))
net/mac80211/ibss.c +6 -6
@@ -66,7 +66,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,skb_reset_tail_pointer (skb);skb_reserve (skb, sdata->local->hw.extra_tx_headroom); -if (compare_ether_addr (ifibss->bssid, bssid)) +if (!ether_addr_equal (ifibss->bssid, bssid))sta_info_flush (sdata->local, sdata);/* if merging, indicate to driver that we leave the old IBSS */
@@ -315,7 +315,7 @@ ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata,return NULL ; } -if (compare_ether_addr (bssid, sdata->u.ibss.bssid)) { +if (!ether_addr_equal (bssid, sdata->u.ibss.bssid)) {rcu_read_lock ();return NULL ; }
@@ -401,7 +401,7 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,return ;if (sdata->vif.type ==NL80211_IFTYPE_ADHOC && -compare_ether_addr (mgmt->bssid, sdata->u.ibss.bssid) ==0 ) { +ether_addr_equal (mgmt->bssid, sdata->u.ibss.bssid)) {rcu_read_lock (); sta =sta_info_get (sdata, mgmt->sa);
@@ -506,7 +506,7 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata, goto put_bss;/* same BSSID */ -if (compare_ether_addr (cbss->bssid, sdata->u.ibss.bssid) ==0 ) +if (ether_addr_equal (cbss->bssid, sdata->u.ibss.bssid)) goto put_bss;if (rx_status->flag &RX_FLAG_MACTIME_MPDU ) {
@@ -591,7 +591,7 @@ void ieee80211_ibss_rx_no_sta(struct ieee80211_sub_if_data *sdata,if (ifibss->state ==IEEE80211_IBSS_MLME_SEARCH )return ; -if (compare_ether_addr (bssid, sdata->u.ibss.bssid)) +if (!ether_addr_equal (bssid, sdata->u.ibss.bssid))return ; sta =sta_info_alloc (sdata, addr,GFP_ATOMIC );
@@ -829,7 +829,7 @@ static void ieee80211_rx_mgmt_probe_req(struct ieee80211_sub_if_data *sdata,if (!tx_last_beacon &&is_multicast_ether_addr (mgmt->da))return ; -if (compare_ether_addr (mgmt->bssid, ifibss->bssid) !=0 && +if (!ether_addr_equal (mgmt->bssid, ifibss->bssid) && !is_broadcast_ether_addr (mgmt->bssid))return ;
net/mac80211/ieee80211_i.h +1 -1
@@ -1195,7 +1195,7 @@ static inline struct ieee80211_local *hw_to_local(static inline int ieee80211_bssid_match (const u8 *raddr,const u8 *addr) { -return compare_ether_addr (raddr, addr) ==0 || +return ether_addr_equal (raddr, addr) ||is_broadcast_ether_addr (raddr); }
net/mac80211/iface.c +1 -1
@@ -127,7 +127,7 @@ static int ieee80211_check_concurrent_iface(struct ieee80211_sub_if_data *sdata,* The remaining checks are only performed for interfaces * with the same MAC address. */ -if (compare_ether_addr (dev->dev_addr, ndev->dev_addr)) +if (!ether_addr_equal (dev->dev_addr, ndev->dev_addr))continue ;/*
net/mac80211/mesh.c +2 -2
@@ -209,7 +209,7 @@ int mesh_rmc_check(u8 *sa, struct ieee80211s_hdr *mesh_hdr,kmem_cache_free (rm_cache, p); --entries; }else if ((seqnum == p->seqnum) && - (compare_ether_addr (sa, p->sa) ==0 )) + (ether_addr_equal (sa, p->sa)))return -1 ; }
@@ -639,7 +639,7 @@ static void ieee80211_mesh_rx_bcn_presp(struct ieee80211_sub_if_data *sdata,/* ignore ProbeResp to foreign address */ if (stype ==IEEE80211_STYPE_PROBE_RESP && -compare_ether_addr (mgmt->da, sdata->vif.addr)) + !ether_addr_equal (mgmt->da, sdata->vif.addr))return ; baselen = (u8 *) mgmt->u.probe_resp.variable - (u8 *) mgmt;
net/mac80211/mesh_hwmp.c +7 -7
@@ -422,7 +422,7 @@ static u32 hwmp_route_info_get(struct ieee80211_sub_if_data *sdata, new_metric =MAX_METRIC ; exp_time =TU_TO_EXP_TIME (orig_lifetime); -if (compare_ether_addr (orig_addr, sdata->vif.addr) ==0 ) { +if (ether_addr_equal (orig_addr, sdata->vif.addr)) {/* This MP is the originator, we are not interested in this * frame, except for updating transmitter's path info. */
@@ -472,7 +472,7 @@ static u32 hwmp_route_info_get(struct ieee80211_sub_if_data *sdata,/* Update and check transmitter routing info */ ta = mgmt->sa; -if (compare_ether_addr (orig_addr, ta) ==0 ) +if (ether_addr_equal (orig_addr, ta)) fresh_info = false;else { fresh_info = true;
@@ -533,7 +533,7 @@ static void hwmp_preq_frame_process(struct ieee80211_sub_if_data *sdata,mhwmp_dbg ("received PREQ from %pM" , orig_addr); -if (compare_ether_addr (target_addr, sdata->vif.addr) ==0 ) { +if (ether_addr_equal (target_addr, sdata->vif.addr)) {mhwmp_dbg ("PREQ is for us" ); forward = false; reply = true;
@@ -631,7 +631,7 @@ static void hwmp_prep_frame_process(struct ieee80211_sub_if_data *sdata,mhwmp_dbg ("received PREP from %pM" ,PREP_IE_ORIG_ADDR (prep_elem)); orig_addr =PREP_IE_ORIG_ADDR (prep_elem); -if (compare_ether_addr (orig_addr, sdata->vif.addr) ==0 ) +if (ether_addr_equal (orig_addr, sdata->vif.addr))/* destination, no forwarding required */ return ;
@@ -709,7 +709,7 @@ static void hwmp_perr_frame_process(struct ieee80211_sub_if_data *sdata,spin_lock_bh (&mpath->state_lock); sta =next_hop_deref_protected (mpath);if (mpath->flags &MESH_PATH_ACTIVE && -compare_ether_addr (ta, sta->sta.addr) ==0 && +ether_addr_equal (ta, sta->sta.addr) && (!(mpath->flags &MESH_PATH_SN_VALID ) ||SN_GT (target_sn, mpath->sn))) { mpath->flags &= ~MESH_PATH_ACTIVE ;
@@ -756,7 +756,7 @@ static void hwmp_rann_frame_process(struct ieee80211_sub_if_data *sdata, metric =le32_to_cpu (rann->rann_metric);/* Ignore our own RANNs */ -if (compare_ether_addr (orig_addr, sdata->vif.addr) ==0 ) +if (ether_addr_equal (orig_addr, sdata->vif.addr))return ; mhwmp_dbg("received RANN from %pM via neighbour %pM (is_gate=%d)",
@@ -1099,7 +1099,7 @@ int mesh_nexthop_lookup(struct sk_buff *skb,if (time_after (jiffies, mpath->exp_time -msecs_to_jiffies (sdata->u.mesh.mshcfg.path_refresh_time)) && - !compare_ether_addr (sdata->vif.addr, hdr->addr4) && +ether_addr_equal (sdata->vif.addr, hdr->addr4) && !(mpath->flags &MESH_PATH_RESOLVING ) && !(mpath->flags &MESH_PATH_FIXED ))mesh_queue_preq (mpath,PREQ_Q_F_START |PREQ_Q_F_REFRESH );
net/mac80211/mesh_pathtbl.c +6 -6
@@ -348,7 +348,7 @@ static struct mesh_path *mpath_lookup(struct mesh_table *tbl, u8 *dst,hlist_for_each_entry_rcu (node, n, bucket, list) { mpath = node->mpath;if (mpath->sdata == sdata && -compare_ether_addr (dst, mpath->dst) ==0 ) { +ether_addr_equal (dst, mpath->dst)) {if (MPATH_EXPIRED (mpath)) {spin_lock_bh (&mpath->state_lock); mpath->flags &= ~MESH_PATH_ACTIVE ;
@@ -517,7 +517,7 @@ int mesh_path_add(u8 *dst, struct ieee80211_sub_if_data *sdata)int err =0 ;u32 hash_idx; -if (compare_ether_addr (dst, sdata->vif.addr) ==0 ) +if (ether_addr_equal (dst, sdata->vif.addr))/* never add ourselves as neighbours */ return -ENOTSUPP ;
@@ -561,7 +561,7 @@ int mesh_path_add(u8 *dst, struct ieee80211_sub_if_data *sdata)hlist_for_each_entry (node, n, bucket, list) { mpath = node->mpath;if (mpath->sdata == sdata && -compare_ether_addr (dst, mpath->dst) ==0 ) +ether_addr_equal (dst, mpath->dst)) goto err_exists; }
@@ -652,7 +652,7 @@ int mpp_path_add(u8 *dst, u8 *mpp, struct ieee80211_sub_if_data *sdata)int err =0 ;u32 hash_idx; -if (compare_ether_addr (dst, sdata->vif.addr) ==0 ) +if (ether_addr_equal (dst, sdata->vif.addr))/* never add ourselves as neighbours */ return -ENOTSUPP ;
@@ -690,7 +690,7 @@ int mpp_path_add(u8 *dst, u8 *mpp, struct ieee80211_sub_if_data *sdata)hlist_for_each_entry (node, n, bucket, list) { mpath = node->mpath;if (mpath->sdata == sdata && -compare_ether_addr (dst, mpath->dst) ==0 ) +ether_addr_equal (dst, mpath->dst)) goto err_exists; }
@@ -884,7 +884,7 @@ int mesh_path_del(u8 *addr, struct ieee80211_sub_if_data *sdata)hlist_for_each_entry (node, n, bucket, list) { mpath = node->mpath;if (mpath->sdata == sdata && -compare_ether_addr (addr, mpath->dst) ==0 ) { +ether_addr_equal (addr, mpath->dst)) {__mesh_path_del (tbl, node); goto enddel; }
net/mac80211/mlme.c +13 -16
@@ -1776,7 +1776,7 @@ ieee80211_rx_mgmt_auth(struct ieee80211_sub_if_data *sdata,memcpy (bssid, ifmgd->auth_data->bss->bssid,ETH_ALEN ); -if (compare_ether_addr (bssid, mgmt->bssid)) +if (!ether_addr_equal (bssid, mgmt->bssid))return RX_MGMT_NONE ; auth_alg =le16_to_cpu (mgmt->u.auth.auth_alg);
@@ -1853,7 +1853,7 @@ ieee80211_rx_mgmt_deauth(struct ieee80211_sub_if_data *sdata,return RX_MGMT_NONE ;if (!ifmgd->associated || -compare_ether_addr (mgmt->bssid, ifmgd->associated->bssid)) + !ether_addr_equal (mgmt->bssid, ifmgd->associated->bssid))return RX_MGMT_NONE ; bssid = ifmgd->associated->bssid;
@@ -1886,7 +1886,7 @@ ieee80211_rx_mgmt_disassoc(struct ieee80211_sub_if_data *sdata,return RX_MGMT_NONE ;if (!ifmgd->associated || -compare_ether_addr (mgmt->bssid, ifmgd->associated->bssid)) + !ether_addr_equal (mgmt->bssid, ifmgd->associated->bssid))return RX_MGMT_NONE ; reason_code =le16_to_cpu (mgmt->u.disassoc.reason_code);
@@ -2113,7 +2113,7 @@ ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,if (!assoc_data)return RX_MGMT_NONE ; -if (compare_ether_addr (assoc_data->bss->bssid, mgmt->bssid)) +if (!ether_addr_equal (assoc_data->bss->bssid, mgmt->bssid))return RX_MGMT_NONE ;/*
@@ -2193,8 +2193,7 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,bool need_ps = false;if (sdata->u.mgd.associated && -compare_ether_addr (mgmt->bssid, sdata->u.mgd.associated->bssid) - ==0 ) { +ether_addr_equal (mgmt->bssid, sdata->u.mgd.associated->bssid)) { bss = (void *)sdata->u.mgd.associated->priv;/* not previously set so we may need to recalc */ need_ps = !bss->dtim_period;
@@ -2249,7 +2248,7 @@ static void ieee80211_rx_mgmt_probe_resp(struct ieee80211_sub_if_data *sdata,ASSERT_MGD_MTX (ifmgd); -if (compare_ether_addr (mgmt->da, sdata->vif.addr)) +if (!ether_addr_equal (mgmt->da, sdata->vif.addr))return ;/* ignore ProbeResp to foreign address */ baselen = (u8 *) mgmt->u.probe_resp.variable - (u8 *) mgmt;
@@ -2262,12 +2261,11 @@ static void ieee80211_rx_mgmt_probe_resp(struct ieee80211_sub_if_data *sdata,ieee80211_rx_bss_info (sdata, mgmt, len, rx_status, &elems, false);if (ifmgd->associated && -compare_ether_addr (mgmt->bssid, ifmgd->associated->bssid) ==0 ) +ether_addr_equal (mgmt->bssid, ifmgd->associated->bssid))ieee80211_reset_ap_probe (sdata);if (ifmgd->auth_data && !ifmgd->auth_data->bss->proberesp_ies && -compare_ether_addr (mgmt->bssid, ifmgd->auth_data->bss->bssid) - ==0 ) { +ether_addr_equal (mgmt->bssid, ifmgd->auth_data->bss->bssid)) {/* got probe response, continue with auth */ printk (KERN_DEBUG "%s: direct probe responded\n" , sdata->name); ifmgd->auth_data->tries =0 ;
@@ -2324,8 +2322,7 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,return ;if (ifmgd->assoc_data && !ifmgd->assoc_data->have_beacon && -compare_ether_addr (mgmt->bssid, ifmgd->assoc_data->bss->bssid) - ==0 ) { +ether_addr_equal (mgmt->bssid, ifmgd->assoc_data->bss->bssid)) {ieee802_11_parse_elems (mgmt->u.beacon.variable, len - baselen, &elems);
@@ -2340,7 +2337,7 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata, }if (!ifmgd->associated || -compare_ether_addr (mgmt->bssid, ifmgd->associated->bssid)) + !ether_addr_equal (mgmt->bssid, ifmgd->associated->bssid))return ; bssid = ifmgd->associated->bssid;
@@ -3166,7 +3163,7 @@ static int ieee80211_prep_connection(struct ieee80211_sub_if_data *sdata,return err; } }else -WARN_ON_ONCE (compare_ether_addr (ifmgd->bssid, cbss->bssid)); +WARN_ON_ONCE (!ether_addr_equal (ifmgd->bssid, cbss->bssid));return 0 ; }
@@ -3306,7 +3303,7 @@ int ieee80211_mgd_assoc(struct ieee80211_sub_if_data *sdata,bool match;/* keep sta info, bssid if matching */ - match =compare_ether_addr (ifmgd->bssid, req->bss->bssid) ==0 ; + match =ether_addr_equal (ifmgd->bssid, req->bss->bssid);ieee80211_destroy_auth_data (sdata, match); }
@@ -3466,7 +3463,7 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata, sdata->name, req->bssid, req->reason_code);if (ifmgd->associated && -compare_ether_addr (ifmgd->associated->bssid, req->bssid) ==0 ) +ether_addr_equal (ifmgd->associated->bssid, req->bssid))ieee80211_set_disassoc (sdata,IEEE80211_STYPE_DEAUTH , req->reason_code, true, frame_buf);else
net/mac80211/rx.c +16 -19
@@ -492,12 +492,12 @@ ieee80211_rx_mesh_check(struct ieee80211_rx_data *rx)if (ieee80211_has_tods (hdr->frame_control) || !ieee80211_has_fromds (hdr->frame_control))return RX_DROP_MONITOR ; -if (compare_ether_addr (hdr->addr3, dev_addr) ==0 ) +if (ether_addr_equal (hdr->addr3, dev_addr))return RX_DROP_MONITOR ; }else {if (!ieee80211_has_a4 (hdr->frame_control))return RX_DROP_MONITOR ; -if (compare_ether_addr (hdr->addr4, dev_addr) ==0 ) +if (ether_addr_equal (hdr->addr4, dev_addr))return RX_DROP_MONITOR ; } }
@@ -1275,7 +1275,7 @@ ieee80211_rx_h_sta_process(struct ieee80211_rx_data *rx)if (rx->sdata->vif.type ==NL80211_IFTYPE_ADHOC ) {u8 *bssid =ieee80211_get_bssid (hdr, rx->skb->len,NL80211_IFTYPE_ADHOC ); -if (compare_ether_addr (bssid, rx->sdata->u.ibss.bssid) ==0 ) { +if (ether_addr_equal (bssid, rx->sdata->u.ibss.bssid)) { sta->last_rx = jiffies;if (ieee80211_is_data (hdr->frame_control)) { sta->last_rx_rate_idx = status->rate_idx;
@@ -1438,8 +1438,8 @@ ieee80211_reassemble_find(struct ieee80211_sub_if_data *sdata,*/ if (((hdr->frame_control ^ f_hdr->frame_control) &cpu_to_le16 (IEEE80211_FCTL_FTYPE )) || -compare_ether_addr (hdr->addr1, f_hdr->addr1) !=0 || -compare_ether_addr (hdr->addr2, f_hdr->addr2) !=0 ) + !ether_addr_equal (hdr->addr1, f_hdr->addr1) || + !ether_addr_equal (hdr->addr2, f_hdr->addr2))continue ;if (time_after (jiffies, entry->first_frag_time +2 *HZ )) {
@@ -1925,7 +1925,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)mpp_path_add (proxied_addr, mpp_addr, sdata); }else {spin_lock_bh (&mppath->state_lock); -if (compare_ether_addr (mppath->mpp, mpp_addr) !=0 ) +if (!ether_addr_equal (mppath->mpp, mpp_addr))memcpy (mppath->mpp, mpp_addr,ETH_ALEN );spin_unlock_bh (&mppath->state_lock); }
@@ -1934,7 +1934,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)/* Frame has reached destination. Don't forward */ if (!is_multicast_ether_addr (hdr->addr1) && -compare_ether_addr (sdata->vif.addr, hdr->addr3) ==0 ) +ether_addr_equal (sdata->vif.addr, hdr->addr3))return RX_CONTINUE ; q =ieee80211_select_queue_80211 (local, skb, hdr);
@@ -2122,13 +2122,13 @@ static void ieee80211_process_sa_query_req(struct ieee80211_sub_if_data *sdata,struct sk_buff *skb;struct ieee80211_mgmt *resp; -if (compare_ether_addr (mgmt->da, sdata->vif.addr) !=0 ) { +if (!ether_addr_equal (mgmt->da, sdata->vif.addr)) {/* Not to own unicast address */ return ; } -if (compare_ether_addr (mgmt->sa, sdata->u.mgd.bssid) !=0 || -compare_ether_addr (mgmt->bssid, sdata->u.mgd.bssid) !=0 ) { +if (!ether_addr_equal (mgmt->sa, sdata->u.mgd.bssid) || + !ether_addr_equal (mgmt->bssid, sdata->u.mgd.bssid)) {/* Not from the current AP or not associated yet. */ return ; }
@@ -2338,7 +2338,7 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx)if (sdata->vif.type !=NL80211_IFTYPE_STATION )break ; -if (compare_ether_addr (mgmt->bssid, sdata->u.mgd.bssid)) +if (!ether_addr_equal (mgmt->bssid, sdata->u.mgd.bssid))break ; goto queue;
@@ -2772,7 +2772,7 @@ static int prepare_for_handlers(struct ieee80211_rx_data *rx,if (!bssid && !sdata->u.mgd.use_4addr)return 0 ;if (!multicast && -compare_ether_addr (sdata->vif.addr, hdr->addr1) !=0 ) { + !ether_addr_equal (sdata->vif.addr, hdr->addr1)) {if (!(sdata->dev->flags &IFF_PROMISC ) || sdata->u.mgd.use_4addr)return 0 ;
@@ -2790,8 +2790,7 @@ static int prepare_for_handlers(struct ieee80211_rx_data *rx,return 0 ; status->rx_flags &= ~IEEE80211_RX_RA_MATCH ; }else if (!multicast && -compare_ether_addr (sdata->vif.addr, - hdr->addr1) !=0 ) { + !ether_addr_equal (sdata->vif.addr, hdr->addr1)) {if (!(sdata->dev->flags &IFF_PROMISC ))return 0 ; status->rx_flags &= ~IEEE80211_RX_RA_MATCH ;
@@ -2807,8 +2806,7 @@ static int prepare_for_handlers(struct ieee80211_rx_data *rx,break ;case NL80211_IFTYPE_MESH_POINT :if (!multicast && -compare_ether_addr (sdata->vif.addr, - hdr->addr1) !=0 ) { + !ether_addr_equal (sdata->vif.addr, hdr->addr1)) {if (!(sdata->dev->flags &IFF_PROMISC ))return 0 ;
@@ -2818,8 +2816,7 @@ static int prepare_for_handlers(struct ieee80211_rx_data *rx,case NL80211_IFTYPE_AP_VLAN :case NL80211_IFTYPE_AP :if (!bssid) { -if (compare_ether_addr (sdata->vif.addr, - hdr->addr1)) +if (!ether_addr_equal (sdata->vif.addr, hdr->addr1))return 0 ; }else if (!ieee80211_bssid_match (bssid, sdata->vif.addr)) {
@@ -2841,7 +2838,7 @@ static int prepare_for_handlers(struct ieee80211_rx_data *rx,case NL80211_IFTYPE_WDS :if (bssid || !ieee80211_is_data (hdr->frame_control))return 0 ; -if (compare_ether_addr (sdata->u.wds.remote_addr, hdr->addr2)) +if (!ether_addr_equal (sdata->u.wds.remote_addr, hdr->addr2))return 0 ;break ;default :
net/mac80211/scan.c +1 -1
@@ -194,7 +194,7 @@ ieee80211_scan_rx(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb) presp =ieee80211_is_probe_resp (fc);if (presp) {/* ignore ProbeResp to foreign address */ -if (compare_ether_addr (mgmt->da, sdata->vif.addr)) +if (!ether_addr_equal (mgmt->da, sdata->vif.addr))return RX_DROP_MONITOR ; presp = true;
net/mac80211/sta_info.c +4 -4
@@ -102,7 +102,7 @@ struct sta_info *sta_info_get(struct ieee80211_sub_if_data *sdata, lockdep_is_held(&local->sta_mtx));while (sta) {if (sta->sdata == sdata && -compare_ether_addr (sta->sta.addr, addr) ==0 ) +ether_addr_equal (sta->sta.addr, addr))break ; sta =rcu_dereference_check (sta->hnext,lockdep_is_held (&local->sta_mtx));
@@ -125,7 +125,7 @@ struct sta_info *sta_info_get_bss(struct ieee80211_sub_if_data *sdata,while (sta) {if ((sta->sdata == sdata || (sta->sdata->bss && sta->sdata->bss == sdata->bss)) && -compare_ether_addr (sta->sta.addr, addr) ==0 ) +ether_addr_equal (sta->sta.addr, addr))break ; sta =rcu_dereference_check (sta->hnext,lockdep_is_held (&local->sta_mtx));
@@ -302,7 +302,7 @@ static int sta_info_insert_check(struct sta_info *sta)if (unlikely (!ieee80211_sdata_running (sdata)))return -ENETDOWN ; -if (WARN_ON (compare_ether_addr (sta->sta.addr, sdata->vif.addr) ==0 || +if (WARN_ON (ether_addr_equal (sta->sta.addr, sdata->vif.addr) ||is_multicast_ether_addr (sta->sta.addr)))return -EINVAL ;
@@ -912,7 +912,7 @@ struct ieee80211_sta *ieee80211_find_sta_by_ifaddr(struct ieee80211_hw *hw,*/ for_each_sta_info (hw_to_local (hw), addr, sta, nxt) {if (localaddr && -compare_ether_addr (sta->sdata->vif.addr, localaddr) !=0 ) + !ether_addr_equal (sta->sdata->vif.addr, localaddr))continue ;if (!sta->uploaded)return NULL ;
net/mac80211/status.c +1 -1
@@ -384,7 +384,7 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)for_each_sta_info (local, hdr->addr1, sta, tmp) {/* skip wrong virtual interface */ -if (compare_ether_addr (hdr->addr2, sta->sdata->vif.addr)) +if (!ether_addr_equal (hdr->addr2, sta->sdata->vif.addr))continue ;if (info->flags &IEEE80211_TX_STATUS_EOSP )
net/mac80211/tx.c +5 -6
@@ -1665,7 +1665,7 @@ netdev_tx_t ieee80211_monitor_start_xmit(struct sk_buff *skb, skb->len >= len_rthdr + hdrlen + sizeof(rfc1042_header) + 2) {u8 *payload = (u8 *)hdr + hdrlen; -if (compare_ether_addr (payload, rfc1042_header) ==0 ) +if (ether_addr_equal (payload, rfc1042_header)) skb->protocol =cpu_to_be16 ((payload[6 ] <<8 ) | payload[7 ]); }
@@ -1698,7 +1698,7 @@ netdev_tx_t ieee80211_monitor_start_xmit(struct sk_buff *skb, tmp_sdata->vif.type ==NL80211_IFTYPE_AP_VLAN || tmp_sdata->vif.type == NL80211_IFTYPE_WDS) continue; -if (compare_ether_addr (tmp_sdata->vif.addr, hdr->addr2) ==0 ) { +if (ether_addr_equal (tmp_sdata->vif.addr, hdr->addr2)) { sdata = tmp_sdata;break ; }
@@ -1815,9 +1815,8 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,* is being proxied by a portal (i.e. portal address * differs from proxied address) */ -if (compare_ether_addr (sdata->vif.addr, - skb->data +ETH_ALEN ) ==0 && - !(mppath &&compare_ether_addr (mppath->mpp, skb->data))) { +if (ether_addr_equal (sdata->vif.addr, skb->data +ETH_ALEN ) && + !(mppath && !ether_addr_equal (mppath->mpp, skb->data))) { hdrlen =ieee80211_fill_mesh_addresses (&hdr, &fc, skb->data, skb->data +ETH_ALEN );rcu_read_unlock ();
@@ -1964,7 +1963,7 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,if (unlikely (!ieee80211_vif_is_mesh (&sdata->vif) && !is_multicast_ether_addr (hdr.addr1) && !authorized && (cpu_to_be16 (ethertype) != sdata->control_port_protocol || -compare_ether_addr (sdata->vif.addr, skb->data +ETH_ALEN )))) { + !ether_addr_equal (sdata->vif.addr, skb->data +ETH_ALEN )))) {#ifdef CONFIG_MAC80211_VERBOSE_DEBUG if (net_ratelimit ()) printk(KERN_DEBUG "%s: dropped frame to %pM"
Signature · 1 line
1.7.8.111.gad25c.dirty
PATCH 9/13 mac80211: Convert compare_ether_addr to ether_addr_equal by hand
In reply to Joe Perchesspatch/coccinelle isn't perfect. It doesn't understand __aligned(x) and doesn't convert functions it can't parse.
Convert the remaining compare_ether_addr uses.
--- net/mac80211/rx.c | 4 ++-- net/mac80211/sta_info.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-)
net/mac80211/rx.c +2 -2
@@ -1714,8 +1714,8 @@ static bool ieee80211_frame_allowed(struct ieee80211_rx_data *rx, __le16 fc)* of whether the frame was encrypted or not. */ if (ehdr->h_proto == rx->sdata->control_port_protocol && - (compare_ether_addr (ehdr->h_dest, rx->sdata->vif.addr) ==0 || -compare_ether_addr (ehdr->h_dest, pae_group_addr) ==0 )) + (ether_addr_equal (ehdr->h_dest, rx->sdata->vif.addr) || +ether_addr_equal (ehdr->h_dest, pae_group_addr)))return true; if (ieee80211_802_1x_port_control(rx) ||
net/mac80211/sta_info.h +1 -1
@@ -501,7 +501,7 @@ void for_each_sta_info_type_check(struct ieee80211_local *local, nxt = _sta ? rcu_dereference(_sta->hnext) : NULL \ ) \/* compare address and run code only if it matches */ \ -if (compare_ether_addr (_sta->sta.addr, (_addr)) ==0 ) +if (ether_addr_equal (_sta->sta.addr, (_addr)))/* * Get STA info by index, BROKEN!
Signature · 1 line
1.7.8.111.gad25c.dirty
PATCH 10/13 netfilter: Convert compare_ether_addr to ether_addr_equal
In reply to Joe PerchesUse the new bool function ether_addr_equal to add
some clarity and reduce the likelihood for misuse
of compare_ether_addr for sorting.
Done via cocci script:
$ cat compare_ether_addr.cocci @@ expression a,b; @@ - !compare_ether_addr(a, b) + ether_addr_equal(a, b)
@@
expression a,b;
@@
- compare_ether_addr(a, b)
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) == 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) != 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) == 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) != 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !!ether_addr_equal(a, b)
+ ether_addr_equal(a, b)
--- net/netfilter/ipset/ip_set_bitmap_ipmac.c | 4 ++-- net/netfilter/xt_mac.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-)
net/netfilter/ipset/ip_set_bitmap_ipmac.c +2 -2
@@ -111,7 +111,7 @@ bitmap_ipmac_test(struct ip_set *set, void *value, u32 timeout, u32 flags)return -EAGAIN ;case MAC_FILLED :return data->ether ==NULL || -compare_ether_addr (data->ether, elem->ether) ==0 ; +ether_addr_equal (data->ether, elem->ether); }return 0 ; }
@@ -225,7 +225,7 @@ bitmap_ipmac_ttest(struct ip_set *set, void *value, u32 timeout, u32 flags)return -EAGAIN ;case MAC_FILLED :return (data->ether ==NULL || -compare_ether_addr (data->ether, elem->ether) ==0 ) && +ether_addr_equal (data->ether, elem->ether)) && !bitmap_expired (map, data->id); }return 0 ;
net/netfilter/xt_mac.c +1 -1
@@ -36,7 +36,7 @@ static bool mac_mt(const struct sk_buff *skb, struct xt_action_param *par)return false;if (skb_mac_header (skb) +ETH_HLEN > skb->data)return false; - ret =compare_ether_addr (eth_hdr (skb)->h_source, info->srcaddr) ==0 ; + ret =ether_addr_equal (eth_hdr (skb)->h_source, info->srcaddr); ret ^= info->invert;return ret; }
Signature · 1 line
1.7.8.111.gad25c.dirty
PATCH 11/13 wireless: Convert compare_ether_addr to ether_addr_equal
In reply to Joe PerchesUse the new bool function ether_addr_equal to add some clarity and reduce the likelihood for misuse of compare_ether_addr for sorting.
I removed a conversion from scan.c/cmp_bss_core that appears to be a sorting function.
Done via cocci script:
$ cat compare_ether_addr.cocci @@ expression a,b; @@ - !compare_ether_addr(a, b) + ether_addr_equal(a, b)
@@
expression a,b;
@@
- compare_ether_addr(a, b)
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) == 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) != 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) == 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) != 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !!ether_addr_equal(a, b)
+ ether_addr_equal(a, b)
--- net/wireless/ibss.c | 2 +- net/wireless/mlme.c | 31 +++++++++++++++---------------- net/wireless/scan.c | 2 +- net/wireless/util.c | 5 ++--- net/wireless/wext-sme.c | 2 +- net/wireless/wext-spy.c | 2 +- 6 files changed, 21 insertions(+), 23 deletions(-)
net/wireless/ibss.c +1 -1
@@ -473,7 +473,7 @@ int cfg80211_ibss_wext_siwap(struct net_device *dev,/* fixed already - and no change */ if (wdev->wext.ibss.bssid && bssid && -compare_ether_addr (bssid, wdev->wext.ibss.bssid) ==0 ) +ether_addr_equal (bssid, wdev->wext.ibss.bssid))return 0 ;wdev_lock (wdev);
net/wireless/mlme.c +15 -16
@@ -101,7 +101,7 @@ void __cfg80211_send_deauth(struct net_device *dev,ASSERT_WDEV_LOCK (wdev);if (wdev->current_bss && -compare_ether_addr (wdev->current_bss->pub.bssid, bssid) ==0 ) { +ether_addr_equal (wdev->current_bss->pub.bssid, bssid)) {cfg80211_unhold_bss (wdev->current_bss);cfg80211_put_bss (&wdev->current_bss->pub); wdev->current_bss =NULL ;
@@ -116,7 +116,7 @@ void __cfg80211_send_deauth(struct net_device *dev, reason_code =le16_to_cpu (mgmt->u.deauth.reason_code); - from_ap =compare_ether_addr (mgmt->sa, dev->dev_addr) !=0 ; + from_ap = !ether_addr_equal (mgmt->sa, dev->dev_addr);__cfg80211_disconnected (dev,NULL ,0 , reason_code, from_ap); }else if (wdev->sme_state ==CFG80211_SME_CONNECTING ) { __cfg80211_connect_result(dev, mgmt->bssid, NULL, 0, NULL, 0,
@@ -155,7 +155,7 @@ void __cfg80211_send_disassoc(struct net_device *dev,return ;if (wdev->current_bss && -compare_ether_addr (wdev->current_bss->pub.bssid, bssid) ==0 ) { +ether_addr_equal (wdev->current_bss->pub.bssid, bssid)) {cfg80211_sme_disassoc (dev, wdev->current_bss);cfg80211_unhold_bss (wdev->current_bss);cfg80211_put_bss (&wdev->current_bss->pub);
@@ -166,7 +166,7 @@ void __cfg80211_send_disassoc(struct net_device *dev, reason_code =le16_to_cpu (mgmt->u.disassoc.reason_code); - from_ap =compare_ether_addr (mgmt->sa, dev->dev_addr) !=0 ; + from_ap = !ether_addr_equal (mgmt->sa, dev->dev_addr);__cfg80211_disconnected (dev,NULL ,0 , reason_code, from_ap); }EXPORT_SYMBOL (__cfg80211_send_disassoc);
@@ -286,7 +286,7 @@ int __cfg80211_mlme_auth(struct cfg80211_registered_device *rdev,return -EINVAL ;if (wdev->current_bss && -compare_ether_addr (bssid, wdev->current_bss->pub.bssid) ==0 ) +ether_addr_equal (bssid, wdev->current_bss->pub.bssid))return -EALREADY ;memset (&req,0 ,sizeof (req));
@@ -363,7 +363,7 @@ int __cfg80211_mlme_assoc(struct cfg80211_registered_device *rdev,memset (&req,0 ,sizeof (req));if (wdev->current_bss && prev_bssid && -compare_ether_addr (wdev->current_bss->pub.bssid, prev_bssid) ==0 ) { +ether_addr_equal (wdev->current_bss->pub.bssid, prev_bssid)) {/* * Trying to reassociate: Allow this to proceed and let the old * association to be dropped when the new one is completed.
@@ -447,8 +447,7 @@ int __cfg80211_mlme_deauth(struct cfg80211_registered_device *rdev,if (local_state_change) {if (wdev->current_bss && -compare_ether_addr (wdev->current_bss->pub.bssid, bssid) - ==0 ) { +ether_addr_equal (wdev->current_bss->pub.bssid, bssid)) {cfg80211_unhold_bss (wdev->current_bss);cfg80211_put_bss (&wdev->current_bss->pub); wdev->current_bss =NULL ;
@@ -497,7 +496,7 @@ static int __cfg80211_mlme_disassoc(struct cfg80211_registered_device *rdev, req.local_state_change = local_state_change; req.ie = ie; req.ie_len = ie_len; -if (compare_ether_addr (wdev->current_bss->pub.bssid, bssid) ==0 ) +if (ether_addr_equal (wdev->current_bss->pub.bssid, bssid)) req.bss = &wdev->current_bss->pub;else return -ENOTCONN ;
@@ -760,8 +759,8 @@ int cfg80211_mlme_mgmt_tx(struct cfg80211_registered_device *rdev,break ; } -if (compare_ether_addr (wdev->current_bss->pub.bssid, - mgmt->bssid)) { +if (!ether_addr_equal (wdev->current_bss->pub.bssid, + mgmt->bssid)) { err = -ENOTCONN ;break ; }
@@ -774,8 +773,8 @@ int cfg80211_mlme_mgmt_tx(struct cfg80211_registered_device *rdev,break ;/* for station, check that DA is the AP */ -if (compare_ether_addr (wdev->current_bss->pub.bssid, - mgmt->da)) { +if (!ether_addr_equal (wdev->current_bss->pub.bssid, + mgmt->da)) { err = -ENOTCONN ;break ; }
@@ -783,11 +782,11 @@ int cfg80211_mlme_mgmt_tx(struct cfg80211_registered_device *rdev,case NL80211_IFTYPE_AP :case NL80211_IFTYPE_P2P_GO :case NL80211_IFTYPE_AP_VLAN : -if (compare_ether_addr (mgmt->bssid, dev->dev_addr)) +if (!ether_addr_equal (mgmt->bssid, dev->dev_addr)) err = -EINVAL ;break ;case NL80211_IFTYPE_MESH_POINT : -if (compare_ether_addr (mgmt->sa, mgmt->bssid)) { +if (!ether_addr_equal (mgmt->sa, mgmt->bssid)) { err = -EINVAL ;break ; }
@@ -806,7 +805,7 @@ int cfg80211_mlme_mgmt_tx(struct cfg80211_registered_device *rdev,return err; } -if (compare_ether_addr (mgmt->sa, dev->dev_addr) !=0 ) +if (!ether_addr_equal (mgmt->sa, dev->dev_addr))return -EINVAL ;/* Transmit the Action frame as requested by user space */
net/wireless/scan.c +1 -1
@@ -281,7 +281,7 @@ static bool is_bss(struct cfg80211_bss *a, {const u8 *ssidie; -if (bssid &&compare_ether_addr (a->bssid, bssid)) +if (bssid && !ether_addr_equal (a->bssid, bssid))return false;if (!ssid)
net/wireless/util.c +2 -3
@@ -609,10 +609,9 @@ void ieee80211_amsdu_to_8023s(struct sk_buff *skb, struct sk_buff_head *list, payload = frame->data; ethertype = (payload[6 ] <<8 ) | payload[7 ]; -if (likely ((compare_ether_addr (payload, rfc1042_header) ==0 && +if (likely ((ether_addr_equal (payload, rfc1042_header) && ethertype !=ETH_P_AARP && ethertype !=ETH_P_IPX ) || -compare_ether_addr (payload, - bridge_tunnel_header) ==0 )) { +ether_addr_equal (payload, bridge_tunnel_header))) {/* remove RFC1042 or Bridge-Tunnel * encapsulation and replace EtherType */ skb_pull (frame,6 );
net/wireless/wext-sme.c +1 -1
@@ -276,7 +276,7 @@ int cfg80211_mgd_wext_siwap(struct net_device *dev,/* fixed already - and no change */ if (wdev->wext.connect.bssid && bssid && -compare_ether_addr (bssid, wdev->wext.connect.bssid) ==0 ) +ether_addr_equal (bssid, wdev->wext.connect.bssid)) goto out; err = __cfg80211_disconnect(rdev, dev,
net/wireless/wext-spy.c +1 -1
@@ -203,7 +203,7 @@ void wireless_spy_update(struct net_device * dev,/* Update all records that match */ for (i =0 ; i < spydata->spy_number; i++) -if (!compare_ether_addr (address, spydata->spy_address[i])) { +if (ether_addr_equal (address, spydata->spy_address[i])) {memcpy (&(spydata->spy_stat[i]), wstats,sizeof (struct iw_quality )); match = i;
Signature · 1 line
1.7.8.111.gad25c.dirty
PATCH 12/13 wireless: Convert compare_ether_addr to ether_addr_equal by hand
In reply to Joe Perchesspatch/coccinelle isn't perfect. It doesn't understand __aligned(x) and doesn't convert functions it can't parse.
Convert the remaining compare_ether_addr uses.
--- net/wireless/util.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
net/wireless/util.c +3 -3
@@ -370,7 +370,7 @@ int ieee80211_data_to_8023(struct sk_buff *skb, const u8 *addr, iftype !=NL80211_IFTYPE_P2P_CLIENT && iftype != NL80211_IFTYPE_MESH_POINT) || (is_multicast_ether_addr (dst) && - !compare_ether_addr(src, addr))) + ether_addr_equal(src, addr))) return -1;if (iftype ==NL80211_IFTYPE_MESH_POINT ) { struct ieee80211s_hdr *meshdr =
@@ -398,9 +398,9 @@ int ieee80211_data_to_8023(struct sk_buff *skb, const u8 *addr, payload = skb->data + hdrlen; ethertype = (payload[6 ] <<8 ) | payload[7 ]; -if (likely ((compare_ether_addr (payload, rfc1042_header) ==0 && +if (likely ((ether_addr_equal (payload, rfc1042_header) && ethertype !=ETH_P_AARP && ethertype !=ETH_P_IPX ) || -compare_ether_addr (payload, bridge_tunnel_header) ==0 )) { +ether_addr_equal (payload, bridge_tunnel_header))) {/* remove RFC1042 or Bridge-Tunnel encapsulation and * replace EtherType */ skb_pull (skb, hdrlen +6 );
Signature · 1 line
1.7.8.111.gad25c.dirty
PATCH 13/13 dsa: Convert compare_ether_addr to ether_addr_equal
In reply to Joe PerchesUse the new bool function ether_addr_equal to add
some clarity and reduce the likelihood for misuse
of compare_ether_addr for sorting.
Done via cocci script:
$ cat compare_ether_addr.cocci @@ expression a,b; @@ - !compare_ether_addr(a, b) + ether_addr_equal(a, b)
@@
expression a,b;
@@
- compare_ether_addr(a, b)
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) == 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !ether_addr_equal(a, b) != 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) == 0
+ !ether_addr_equal(a, b)
@@
expression a,b;
@@
- ether_addr_equal(a, b) != 0
+ ether_addr_equal(a, b)
@@
expression a,b;
@@
- !!ether_addr_equal(a, b)
+ ether_addr_equal(a, b)
--- net/dsa/slave.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-)
net/dsa/slave.c +5 -5
@@ -66,7 +66,7 @@ static int dsa_slave_open(struct net_device *dev)if (!(master->flags &IFF_UP ))return -ENETDOWN ; -if (compare_ether_addr (dev->dev_addr, master->dev_addr)) { +if (!ether_addr_equal (dev->dev_addr, master->dev_addr)) { err =dev_uc_add (master, dev->dev_addr);if (err <0 ) goto out;
@@ -89,7 +89,7 @@ clear_allmulti:if (dev->flags &IFF_ALLMULTI )dev_set_allmulti (master,-1 ); del_unicast: -if (compare_ether_addr (dev->dev_addr, master->dev_addr)) +if (!ether_addr_equal (dev->dev_addr, master->dev_addr))dev_uc_del (master, dev->dev_addr); out:return err;
@@ -107,7 +107,7 @@ static int dsa_slave_close(struct net_device *dev)if (dev->flags &IFF_PROMISC )dev_set_promiscuity (master,-1 ); -if (compare_ether_addr (dev->dev_addr, master->dev_addr)) +if (!ether_addr_equal (dev->dev_addr, master->dev_addr))dev_uc_del (master, dev->dev_addr);return 0 ;
@@ -146,13 +146,13 @@ static int dsa_slave_set_mac_address(struct net_device *dev, void *a)if (!(dev->flags &IFF_UP )) goto out; -if (compare_ether_addr (addr->sa_data, master->dev_addr)) { +if (!ether_addr_equal (addr->sa_data, master->dev_addr)) { err =dev_uc_add (master, addr->sa_data);if (err <0 )return err; } -if (compare_ether_addr (dev->dev_addr, master->dev_addr)) +if (!ether_addr_equal (dev->dev_addr, master->dev_addr))dev_uc_del (master, dev->dev_addr); out:
Signature · 1 line
1.7.8.111.gad25c.dirty
David Miller
maintainerFrom: Joe Perches <[email protected]>
Date: Tue, 8 May 2012 21:56:44 -0700
Quoted 2 lines
Add a boolean function to test 2 ethernet addresses for equality Convert
compare_ether_addruses toether_addr_equal
This series looks great, I'll apply all of it.
Thanks Joe.
That case you didn't convert in mac80211 is probably the bug Johannes was talking about which started this whole discussion.
Quoted 7 lines · David Miller
From: Joe Perches <[email protected]>
Date: Tue, 8 May 2012 21:56:44 -0700Quoted 2 lines
Add a boolean function to test 2 ethernet addresses for equality Convert
compare_ether_addruses toether_addr_equalThis series looks great, I'll apply all of it.
coccinelle is a nifty, better sed, tool. Thanks Julia et al.
Quoted 3 lines
That case you didn't convert in mac80211 is probably the bug Johannes was talking about which started this whole discussion.
Looks like it.
Do you want a similar patch/patches for drivers/net?
If I break it out by nominal driver/maintainer, it'll be a highish number of low density patches.
$ git grep -w compare_ether_addr drivers/net | wc -l 59 $ git grep -w -l compare_ether_addr drivers/net | wc -l 31
Maybe just a single patch?
Also the compare_ether_addr_64bits function is still used a couple dozen times. Maybe another patch for those? ether_addr_equal_64bits?
David Miller
maintainerFrom: Joe Perches <[email protected]>
Date: Wed, 09 May 2012 18:48:04 -0700
Quoted 1 line
Maybe just a single patch?
Yes, I think high density on this one, it's extremely mechanical.
Quoted 3 lines
Also the
compare_ether_addr_64bitsfunction is
still used a couple dozen times. Maybe another
patch for those?ether_addr_equal_64bits?
Use your best judgment.
Johannes Berg
maintainerQuoted 3 lines · David Miller
That case you didn't convert in mac80211 is probably the bug Johannes was talking about which started this whole discussion.
The bug case that started it all is in net/wireless/scan.c and Emmanuel has since changed it back to memcmp(). Not sure if that's the one you were referring to or not :-)
johannes
Quoted 9 lines · Johannes Berg
Quoted 3 lines · David Miller
That case you didn't convert in mac80211 is probably the bug Johannes was talking about which started this whole discussion.
The bug case that started it all is in
net/wireless/scan.cand Emmanuel has since changed it back tomemcmp(). Not sure if that's the one you were referring to or not :-)
That's the one that I left alone.
Post patch:
$ git grep -n -w compare_ether_addr net net/batman-adv/main.h:198: * note: can't use compare_ether_addr() as it requires aligned memory net/wireless/scan.c:381: return compare_ether_addr(a->bssid, b->bssid);
Johannes Berg
maintainerQuoted 11 lines · Joe Perches
Quoted 9 lines · Johannes Berg
Quoted 3 lines · David Miller
That case you didn't convert in mac80211 is probably the bug Johannes was talking about which started this whole discussion.
The bug case that started it all is in
net/wireless/scan.cand Emmanuel has since changed it back tomemcmp(). Not sure if that's the one you were referring to or not :-)
Quoted 6 lines
That's the one that I left alone.
Post patch:
$ git grep -n -w compare_ether_addr net net/batman-adv/main.h:198: * note: can't use compare_ether_addr() as it requires aligned memory net/wireless/scan.c:381: return compare_ether_addr(a->bssid, b->bssid);
Ok, great, then that means the fix from Emmanuel won't conflict when it gets in.
johannes
Quoted 11 lines
Quoted 11 lines
Quoted 8 lines
Quoted 4 lines
That case you didn't convert in mac80211 is probably the bug Johannes was talking about which started this whole discussion.
The bug case that started it all is in
net/wireless/scan.cand Emmanuel has since changed it back tomemcmp(). Not sure if that's the one you were referring to or not :-)That's the one that I left alone.
Quoted 8 lines
Quoted 4 lines
Post patch:
$ git grep -n -w compare_ether_addr net net/batman-adv/main.h:198: * note: can't use compare_ether_addr() as it requires aligned memory net/wireless/scan.c:381: return compare_ether_addr(a->bssid, b->bssid);Ok, great, then that means the fix from Emmanuel won't conflict when it gets in.
Thanks Joe - as Johannes said this won't conflict with my patch. And yes the code is now more clear.