eth: Rename and properly align br_reserved_address array
authorBen Hutchings <bhutchings@solarflare.com>
Thu, 1 Nov 2012 09:12:02 +0000 (09:12 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 3 Nov 2012 01:34:05 +0000 (21:34 -0400)
Since this array is no longer part of the bridge driver, it should
have an 'eth' prefix not 'br'.

We also assume that either it's 16-bit-aligned or the architecture has
efficient unaligned access.  Ensure the first of these is true by
explicitly aligning it.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Acked-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/etherdevice.h
net/bridge/br_device.c

index 7cf2516ec74ce578687611801e950ea6186c85eb..243eea1e33d8021b685f46a736e726c74e083a22 100644 (file)
@@ -52,7 +52,8 @@ extern struct net_device *alloc_etherdev_mqs(int sizeof_priv, unsigned int txqs,
 #define alloc_etherdev_mq(sizeof_priv, count) alloc_etherdev_mqs(sizeof_priv, count, count)
 
 /* Reserved Ethernet Addresses per IEEE 802.1Q */
-static const u8 br_reserved_address[ETH_ALEN] = { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x00 };
+static const u8 eth_reserved_addr_base[ETH_ALEN] __aligned(2) =
+{ 0x01, 0x80, 0xc2, 0x00, 0x00, 0x00 };
 
 /**
  * is_link_local_ether_addr - Determine if given Ethernet address is link-local
@@ -64,7 +65,7 @@ static const u8 br_reserved_address[ETH_ALEN] = { 0x01, 0x80, 0xc2, 0x00, 0x00,
 static inline bool is_link_local_ether_addr(const u8 *addr)
 {
        __be16 *a = (__be16 *)addr;
-       static const __be16 *b = (const __be16 *)br_reserved_address;
+       static const __be16 *b = (const __be16 *)eth_reserved_addr_base;
        static const __be16 m = cpu_to_be16(0xfff0);
 
        return ((a[0] ^ b[0]) | (a[1] ^ b[1]) | ((a[2] ^ b[2]) & m)) == 0;
index 4245e991dd98e502f819ada3088a433eabf8e3c9..7c78e264019000fe48d4bed8c22a86f6b7b4131d 100644 (file)
@@ -358,7 +358,7 @@ void br_dev_setup(struct net_device *dev)
        br->bridge_id.prio[0] = 0x80;
        br->bridge_id.prio[1] = 0x00;
 
-       memcpy(br->group_addr, br_reserved_address, ETH_ALEN);
+       memcpy(br->group_addr, eth_reserved_addr_base, ETH_ALEN);
 
        br->stp_enabled = BR_NO_STP;
        br->group_fwd_mask = BR_GROUPFWD_DEFAULT;