aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authordhananjay@netxen.com <dhananjay@netxen.com>2007-12-26 13:23:56 -0500
committerJeff Garzik <jeff@garzik.org>2008-01-12 17:35:34 -0500
commit72b0a7a8a40a50cf2eab42fd6a56e04b05090434 (patch)
tree21855d0a2f6b733bf616b555b5694ed698c32144 /drivers/net
parent001a731ecfc2e5fdbb5022ad3708705d9edf801c (diff)
netxen: stop second phy correctly
This patch fixes bug that doesn't quiesce second port when interface is brought down, which could lead to unwarranted interrupt during rmmod / ifdown. Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/netxen/netxen_nic_main.c8
-rw-r--r--drivers/net/netxen/netxen_nic_niu.c8
2 files changed, 7 insertions, 9 deletions
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index 454226f7baa8..2d75c710f62a 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -732,11 +732,6 @@ static void __devexit netxen_nic_remove(struct pci_dev *pdev)
732 732
733 unregister_netdev(netdev); 733 unregister_netdev(netdev);
734 734
735 if (adapter->stop_port)
736 adapter->stop_port(adapter);
737
738 netxen_nic_disable_int(adapter);
739
740 if (adapter->is_up == NETXEN_ADAPTER_UP_MAGIC) { 735 if (adapter->is_up == NETXEN_ADAPTER_UP_MAGIC) {
741 init_firmware_done++; 736 init_firmware_done++;
742 netxen_free_hw_resources(adapter); 737 netxen_free_hw_resources(adapter);
@@ -919,6 +914,9 @@ static int netxen_nic_close(struct net_device *netdev)
919 netif_stop_queue(netdev); 914 netif_stop_queue(netdev);
920 napi_disable(&adapter->napi); 915 napi_disable(&adapter->napi);
921 916
917 if (adapter->stop_port)
918 adapter->stop_port(adapter);
919
922 netxen_nic_disable_int(adapter); 920 netxen_nic_disable_int(adapter);
923 921
924 cmd_buff = adapter->cmd_buf_arr; 922 cmd_buff = adapter->cmd_buf_arr;
diff --git a/drivers/net/netxen/netxen_nic_niu.c b/drivers/net/netxen/netxen_nic_niu.c
index 5b9e1b300fab..d04ecb77d08c 100644
--- a/drivers/net/netxen/netxen_nic_niu.c
+++ b/drivers/net/netxen/netxen_nic_niu.c
@@ -736,12 +736,12 @@ int netxen_niu_disable_xg_port(struct netxen_adapter *adapter)
736 __u32 mac_cfg; 736 __u32 mac_cfg;
737 u32 port = physical_port[adapter->portnum]; 737 u32 port = physical_port[adapter->portnum];
738 738
739 if (port != 0) 739 if (port > NETXEN_NIU_MAX_XG_PORTS)
740 return -EINVAL; 740 return -EINVAL;
741
741 mac_cfg = 0; 742 mac_cfg = 0;
742 netxen_xg_soft_reset(mac_cfg); 743 if (netxen_nic_hw_write_wx(adapter,
743 if (netxen_nic_hw_write_wx(adapter, NETXEN_NIU_XGE_CONFIG_0, 744 NETXEN_NIU_XGE_CONFIG_0 + (0x10000 * port), &mac_cfg, 4))
744 &mac_cfg, 4))
745 return -EIO; 745 return -EIO;
746 return 0; 746 return 0;
747} 747}