etherdevice: Remove now unused compare_ether_addr_64bits
authorJoe Perches <joe@perches.com>
Fri, 11 May 2012 12:21:06 +0000 (12:21 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 13 May 2012 03:34:50 +0000 (23:34 -0400)
Move and invert the logic from the otherwise unused
compare_ether_addr_64bits to ether_addr_equal_64bits.

Neaten the logic in is_etherdev_addr.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/etherdevice.h

index afacf8576d0f67341741e59eda6370fbb1508d35..dc85c1d2173b6b1308956702713f6a012cbd13f7 100644 (file)
@@ -193,12 +193,12 @@ static inline unsigned long zap_last_2bytes(unsigned long value)
 }
 
 /**
- * compare_ether_addr_64bits - Compare two Ethernet addresses
+ * ether_addr_equal_64bits - Compare two Ethernet addresses
  * @addr1: Pointer to an array of 8 bytes
  * @addr2: Pointer to an other array of 8 bytes
  *
- * Compare two ethernet addresses, returns 0 if equal, non-zero otherwise.
- * Unlike memcmp(), it doesn't return a value suitable for sorting.
+ * Compare two ethernet addresses, returns true if equal, false otherwise.
+ *
  * The function doesn't need any conditional branches and possibly uses
  * word memory accesses on CPU allowing cheap unaligned memory reads.
  * arrays = { byte1, byte2, byte3, byte4, byte6, byte7, pad1, pad2}
@@ -206,44 +206,24 @@ static inline unsigned long zap_last_2bytes(unsigned long value)
  * Please note that alignment of addr1 & addr2 is only guaranted to be 16 bits.
  */
 
-static inline unsigned compare_ether_addr_64bits(const u8 addr1[6+2],
-                                                const u8 addr2[6+2])
+static inline bool ether_addr_equal_64bits(const u8 addr1[6+2],
+                                          const u8 addr2[6+2])
 {
 #ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
        unsigned long fold = ((*(unsigned long *)addr1) ^
                              (*(unsigned long *)addr2));
 
        if (sizeof(fold) == 8)
-               return zap_last_2bytes(fold) != 0;
+               return zap_last_2bytes(fold) == 0;
 
        fold |= zap_last_2bytes((*(unsigned long *)(addr1 + 4)) ^
                                (*(unsigned long *)(addr2 + 4)));
-       return fold != 0;
+       return fold == 0;
 #else
-       return compare_ether_addr(addr1, addr2);
+       return ether_addr_equal(addr1, addr2);
 #endif
 }
 
-/**
- * ether_addr_equal_64bits - Compare two Ethernet addresses
- * @addr1: Pointer to an array of 8 bytes
- * @addr2: Pointer to an other array of 8 bytes
- *
- * Compare two ethernet addresses, returns true if equal, false otherwise.
- *
- * The function doesn't need any conditional branches and possibly uses
- * word memory accesses on CPU allowing cheap unaligned memory reads.
- * arrays = { byte1, byte2, byte3, byte4, byte6, byte7, pad1, pad2}
- *
- * Please note that alignment of addr1 & addr2 is only guaranted to be 16 bits.
- */
-
-static inline bool ether_addr_equal_64bits(const u8 addr1[6+2],
-                                          const u8 addr2[6+2])
-{
-       return !compare_ether_addr_64bits(addr1, addr2);
-}
-
 /**
  * is_etherdev_addr - Tell if given Ethernet address belongs to the device.
  * @dev: Pointer to a device structure
@@ -252,23 +232,23 @@ static inline bool ether_addr_equal_64bits(const u8 addr1[6+2],
  * Compare passed address with all addresses of the device. Return true if the
  * address if one of the device addresses.
  *
- * Note that this function calls compare_ether_addr_64bits() so take care of
+ * Note that this function calls ether_addr_equal_64bits() so take care of
  * the right padding.
  */
 static inline bool is_etherdev_addr(const struct net_device *dev,
                                    const u8 addr[6 + 2])
 {
        struct netdev_hw_addr *ha;
-       int res = 1;
+       bool res = false;
 
        rcu_read_lock();
        for_each_dev_addr(dev, ha) {
-               res = compare_ether_addr_64bits(addr, ha->addr);
-               if (!res)
+               res = ether_addr_equal_64bits(addr, ha->addr);
+               if (res)
                        break;
        }
        rcu_read_unlock();
-       return !res;
+       return res;
 }
 #endif /* __KERNEL__ */