diff options
author | Matheos Worku <Matheos.Worku@Sun.COM> | 2008-03-05 14:48:37 -0800 |
---|---|---|
committer | Chris Wright <chrisw@sous-sol.org> | 2008-03-24 11:47:04 -0700 |
commit | 958346d4b18fa1474a706a535396e94a6eaf5fb4 (patch) | |
tree | 822af8477c3dcdba6691be3584c4640119c6a29b | |
parent | beeb75e6ebc60fb4323f9ce5cfeffaea5ccffc36 (diff) |
NIU: More BMAC alt MAC address fixes.
Upstream commit: fa907895b7b776208a1406efe5ba7ffe0f49f507
From: Matheos Worku <Matheos.Worku@Sun.COM>
1) niu_enable_alt_mac() needs to be adjusted so that the mask
is computed properly for the BMAC case.
2) BMAC has 6 alt MAC addresses available, not 7.
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
-rw-r--r-- | drivers/net/niu.c | 9 | ||||
-rw-r--r-- | drivers/net/niu.h | 2 |
2 files changed, 6 insertions, 5 deletions
diff --git a/drivers/net/niu.c b/drivers/net/niu.c index 5f6beabf2d1..faf87a010a1 100644 --- a/drivers/net/niu.c +++ b/drivers/net/niu.c @@ -1616,12 +1616,13 @@ static int niu_enable_alt_mac(struct niu *np, int index, int on) if (index >= niu_num_alt_addr(np)) return -EINVAL; - if (np->flags & NIU_FLAGS_XMAC) + if (np->flags & NIU_FLAGS_XMAC) { reg = XMAC_ADDR_CMPEN; - else + mask = 1 << index; + } else { reg = BMAC_ADDR_CMPEN; - - mask = 1 << index; + mask = 1 << (index + 1); + } val = nr64_mac(reg); if (on) diff --git a/drivers/net/niu.h b/drivers/net/niu.h index 0e8626adc57..59dc05fcd37 100644 --- a/drivers/net/niu.h +++ b/drivers/net/niu.h @@ -499,7 +499,7 @@ #define BMAC_ADDR2 0x00110UL #define BMAC_ADDR2_ADDR2 0x000000000000ffffULL -#define BMAC_NUM_ALT_ADDR 7 +#define BMAC_NUM_ALT_ADDR 6 #define BMAC_ALT_ADDR0(NUM) (0x00118UL + (NUM)*0x18UL) #define BMAC_ALT_ADDR0_ADDR0 0x000000000000ffffULL |