etherdevice: introduce eth_broadcast_addr
authorJohannes Berg <johannes.berg@intel.com>
Tue, 10 Jul 2012 06:18:44 +0000 (06:18 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 11 Jul 2012 01:06:44 +0000 (18:06 -0700)
A lot of code has either the memset or an inefficient copy
from a static array that contains the all-ones broadcast
address. Introduce eth_broadcast_addr() to fill an address
with all ones, making the code clearer and allowing us to
get rid of some constant arrays.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/etherdevice.h

index 3d406e0ede6d831c9a0c9992b444b110e1e13d2d..98a27cccedfd7d79bee9eb8d067d14eb9f9a9eca 100644 (file)
@@ -137,6 +137,17 @@ static inline void random_ether_addr(u8 *addr)
        addr [0] |= 0x02;       /* set local assignment bit (IEEE802) */
 }
 
+/**
+ * eth_broadcast_addr - Assign broadcast address
+ * @addr: Pointer to a six-byte array containing the Ethernet address
+ *
+ * Assign the broadcast address to the given address array.
+ */
+static inline void eth_broadcast_addr(u8 *addr)
+{
+       memset(addr, 0xff, ETH_ALEN);
+}
+
 /**
  * eth_hw_addr_random - Generate software assigned random Ethernet and
  * set device flag