diff options
author | Matheos Worku <Matheos.Worku@Sun.COM> | 2008-02-20 00:18:09 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-02-20 00:18:09 -0800 |
commit | fa907895b7b776208a1406efe5ba7ffe0f49f507 (patch) | |
tree | 5f5665b64c007f40e89f47027bae080de69b0d7d /drivers/net/niu.c | |
parent | 7b33ed22194d8f0dbcf682f5cdf5b9c2ef551e7c (diff) |
[NIU]: More BMAC alt MAC address fixes.
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>
Diffstat (limited to 'drivers/net/niu.c')
-rw-r--r-- | drivers/net/niu.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/niu.c b/drivers/net/niu.c index e98ce1e4965b..d11ba61baa4f 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) |