netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 3/3] eth: Rename and properly align br_reserved_address array
@ 2012-11-01 19:12 Ben Hutchings
  2012-11-02  0:33 ` John Fastabend
  2012-11-03  1:34 ` David Miller
  0 siblings, 2 replies; 4+ messages in thread
From: Ben Hutchings @ 2012-11-01 19:12 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, linux-net-drivers, John Fastabend, Stephen Hemminger

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>
---
 include/linux/etherdevice.h |    5 +++--
 net/bridge/br_device.c      |    2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h
index 7cf2516..243eea1 100644
--- a/include/linux/etherdevice.h
+++ b/include/linux/etherdevice.h
@@ -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;
diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c
index 4245e99..7c78e26 100644
--- a/net/bridge/br_device.c
+++ b/net/bridge/br_device.c
@@ -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;
-- 
1.7.7.6


-- 
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH net-next 3/3] eth: Rename and properly align br_reserved_address array
  2012-11-01 19:12 [PATCH net-next 3/3] eth: Rename and properly align br_reserved_address array Ben Hutchings
@ 2012-11-02  0:33 ` John Fastabend
  2012-11-04 20:42   ` Stephen Hemminger
  2012-11-03  1:34 ` David Miller
  1 sibling, 1 reply; 4+ messages in thread
From: John Fastabend @ 2012-11-02  0:33 UTC (permalink / raw)
  To: Ben Hutchings; +Cc: David Miller, netdev, linux-net-drivers, Stephen Hemminger

On 11/1/2012 12:12 PM, Ben Hutchings wrote:
> 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>
> ---

Thanks.

Acked-by: John Fastabend <john.r.fastabend@intel.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH net-next 3/3] eth: Rename and properly align br_reserved_address array
  2012-11-01 19:12 [PATCH net-next 3/3] eth: Rename and properly align br_reserved_address array Ben Hutchings
  2012-11-02  0:33 ` John Fastabend
@ 2012-11-03  1:34 ` David Miller
  1 sibling, 0 replies; 4+ messages in thread
From: David Miller @ 2012-11-03  1:34 UTC (permalink / raw)
  To: bhutchings; +Cc: netdev, linux-net-drivers, john.r.fastabend, shemminger

From: Ben Hutchings <bhutchings@solarflare.com>
Date: Thu, 1 Nov 2012 19:12:02 +0000

> 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>

Applied.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH net-next 3/3] eth: Rename and properly align br_reserved_address array
  2012-11-02  0:33 ` John Fastabend
@ 2012-11-04 20:42   ` Stephen Hemminger
  0 siblings, 0 replies; 4+ messages in thread
From: Stephen Hemminger @ 2012-11-04 20:42 UTC (permalink / raw)
  To: John Fastabend; +Cc: Ben Hutchings, David Miller, netdev, linux-net-drivers

On Thu, 01 Nov 2012 17:33:55 -0700
John Fastabend <john.r.fastabend@intel.com> wrote:

> On 11/1/2012 12:12 PM, Ben Hutchings wrote:
> > 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>
> > ---
> 
> Thanks.
> 
> Acked-by: John Fastabend <john.r.fastabend@intel.com>
> 

I wonder if aligning to 64 bit and doing 64 bit read
and mask would be trivially more efficient for this.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-11-04 20:42 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-01 19:12 [PATCH net-next 3/3] eth: Rename and properly align br_reserved_address array Ben Hutchings
2012-11-02  0:33 ` John Fastabend
2012-11-04 20:42   ` Stephen Hemminger
2012-11-03  1:34 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).