* [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).