diff options
author | Dhananjay Phadke <dhananjay@netxen.com> | 2009-05-05 15:05:08 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-05-06 18:33:36 -0400 |
commit | 3d0a3cc9d72047e4baa76021c897f64fc84cc543 (patch) | |
tree | 121b07aa7e131380681659734d780042b9c776ca /drivers/net/netxen/netxen_nic_hw.c | |
parent | 5cf4d323f8864dab818d500ec74f2fcb9ad5bf89 (diff) |
netxen: fix bonding support
o Pause traffic during mac addr change.
o Enable setting mac address for NX3031.
Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/netxen/netxen_nic_hw.c')
-rw-r--r-- | drivers/net/netxen/netxen_nic_hw.c | 28 |
1 files changed, 7 insertions, 21 deletions
diff --git a/drivers/net/netxen/netxen_nic_hw.c b/drivers/net/netxen/netxen_nic_hw.c index be643ea35233..86c9e78ec39e 100644 --- a/drivers/net/netxen/netxen_nic_hw.c +++ b/drivers/net/netxen/netxen_nic_hw.c | |||
@@ -321,27 +321,6 @@ static unsigned crb_hub_agt[64] = | |||
321 | 321 | ||
322 | #define NETXEN_WINDOW_ONE 0x2000000 /*CRB Window: bit 25 of CRB address */ | 322 | #define NETXEN_WINDOW_ONE 0x2000000 /*CRB Window: bit 25 of CRB address */ |
323 | 323 | ||
324 | int netxen_nic_set_mac(struct net_device *netdev, void *p) | ||
325 | { | ||
326 | struct netxen_adapter *adapter = netdev_priv(netdev); | ||
327 | struct sockaddr *addr = p; | ||
328 | |||
329 | if (netif_running(netdev)) | ||
330 | return -EBUSY; | ||
331 | |||
332 | if (!is_valid_ether_addr(addr->sa_data)) | ||
333 | return -EADDRNOTAVAIL; | ||
334 | |||
335 | memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len); | ||
336 | |||
337 | /* For P3, MAC addr is not set in NIU */ | ||
338 | if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) | ||
339 | if (adapter->macaddr_set) | ||
340 | adapter->macaddr_set(adapter, addr->sa_data); | ||
341 | |||
342 | return 0; | ||
343 | } | ||
344 | |||
345 | #define NETXEN_UNICAST_ADDR(port, index) \ | 324 | #define NETXEN_UNICAST_ADDR(port, index) \ |
346 | (NETXEN_UNICAST_ADDR_BASE+(port*32)+(index*8)) | 325 | (NETXEN_UNICAST_ADDR_BASE+(port*32)+(index*8)) |
347 | #define NETXEN_MCAST_ADDR(port, index) \ | 326 | #define NETXEN_MCAST_ADDR(port, index) \ |
@@ -643,6 +622,13 @@ void netxen_p3_free_mac_list(struct netxen_adapter *adapter) | |||
643 | } | 622 | } |
644 | } | 623 | } |
645 | 624 | ||
625 | int netxen_p3_nic_set_mac_addr(struct netxen_adapter *adapter, u8 *addr) | ||
626 | { | ||
627 | /* assuming caller has already copied new addr to netdev */ | ||
628 | netxen_p3_nic_set_multi(adapter->netdev); | ||
629 | return 0; | ||
630 | } | ||
631 | |||
646 | #define NETXEN_CONFIG_INTR_COALESCE 3 | 632 | #define NETXEN_CONFIG_INTR_COALESCE 3 |
647 | 633 | ||
648 | /* | 634 | /* |