]> err.no Git - linux-2.6/commitdiff
[NIU]: More BMAC alt MAC address fixes.
authorMatheos Worku <Matheos.Worku@Sun.COM>
Wed, 20 Feb 2008 08:18:09 +0000 (00:18 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 20 Feb 2008 08:18:09 +0000 (00:18 -0800)
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>
drivers/net/niu.c
drivers/net/niu.h

index e98ce1e4965ba2443bfab1f25906abfe83f4761b..d11ba61baa4f1611a3de3afdf6513ca7b29ad10f 100644 (file)
@@ -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)
index 0e8626adc573e2a2ce3bdbf7e6c03bad40a5d3ee..59dc05fcd37191c94b717d21f5977feff2c3ca40 100644 (file)
 #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